zoukankan      html  css  js  c++  java
  • Linux 路由 策略路由

    Linux 路由 策略路由

    注意:本文中使用;隔开的命令等价

    一、路由表

    从Linux-2.2开始,内核把路由归纳到许多路由表中,这些表都进行了编号,编号数字的范围是1到255。
    可以在路由表配置文件:/etc/iproute2/rt_tables 中为路由表命名。

    默认情况下,所有的路由都会被插入到表main(编号254)中。在进行路由查询时,内核只使用路由表main。

    编辑路由表配置文件:/etc/iproute2/rt_tables添加删除修改路由表

    [root@centos7 ~]# cat /etc/iproute2/rt_tables 
    #
    # reserved values
    #
    255	local
    254	main
    253	default
    0	unspec
    #
    # local
    #
    #1	inr.ruhep
    

    二、IP策略

    查看IP策略

    [root@centos7 ~]# ip ru ls
    0:	from all lookup local 
    32766:	from all lookup main 
    32767:	from all lookup default
    

    第一列:冒号之前的数字,表示该路由表被匹配的优先顺序,数字越小,越早被匹配。范围是0~32767。默认0、32766、32767三个优先级别已被占用。如果在添加规则时没有定义优先级别,那么默认的优先级别会从32766开始递减,可以通过prio ID参数在设置路由表时添加优先级。

    第二列:from,这里显示的是匹配规则,当前表示的是从哪里来的数据包,还有:
    From -- 源地址
    To -- 目的地址(这里是选择规则时使用,查找路由表时也使用)
      Tos -- IP包头的TOS(type of sevice)域
      Dev -- 物理接口
      Fwmark -- 防火墙参数

    第三段:loacl/main/default, 这些都是路由表名称,表示数据包要从那个路由表送出去。local表包含本机路由及广播信息,main表就是我们route -n看到的内容,default表,默认为空。

    添加IP策略规则

    在添加规则时,需要先定义好优先级、条件及路由表ID,然后才可以添加规则。

    根据源地址决定路由表

    ip rule add from 192.168.10.0/24 table 100
    ip rule add from 192.168.20.20   table 110
    

    根据目的地址决定路由表

    ip rule add to 192.168.30.0/24 table 120
    ip rule add to 192.168.40.0/24 table 130
    

    根据网卡设备决定路由表

    ip rule add dev eth0 table 140
    ip rule add dev eth1 table 150
    

    此外还可以根据其他条件进行设置,例如tos等等

    增加一条规则,到 dx 表,所有数据包默认使用源 IP 1.1.1.2 通过 eth1 走网关 1.1.1.1

    ip route add default via 1.1.1.1 dev eth1 src 1.1.1.2 dx
    

    增加一条规则,规则匹配的对象是所有的数据包,动作是选用路由表1的路由,这条规则的优先级是32800

    ip rule add [from 0/0] table 1 pref 32800
    

    增加一条规则,规则匹配的对象是IP为192.168.3.112, tos等于0x10的包,使用路由表2,这条规则的优先级是1500,动作是丢弃。

    ip rule add from 192.168.3.112/32 [tos 0x10] table 2 pref 1500 prohibit
    

    增加一条规则,规则匹配的对象是fwmark 标记3的数据包,使用路由表2

    ip rule add fwmark 3  table 3 
    

    需要使用iptables给相应的数据打上标记3

    iptables -A PREROUTING -t mangle -i eth0 -s 192.168.0.1 -192.168.0.100 -j MARK --set-mark 3  # 使用iptables给相应的数据打上标记3
    

    删除IP策略规则

    ip rule del from 192.168.10.10  # 根据明细条目删除
    ip rule del prio 32765          # 根据优先级删除
    ip rule del table wt            # 根据表名称来删除
    

    三、永久生效,写入配置文件: /etc/sysconfig/network-scripts/rule-ethX

  • 相关阅读:
    如何用ST-LINK给STM32下载HEX文件
    快恢复二极管和肖特基二极管的区别和是否能够替代使用?
    Python环境变量配置
    IAP笔记
    如何将24位RGB颜色转换16位RGB颜色
    内网外网同时使用
    bootstraptable 服务端分页问题
    weblogic奇葩问题
    SSM框架
    java通过poi操作excel
  • 原文地址:https://www.cnblogs.com/backups/p/linux_policy_route.html
Copyright © 2011-2022 走看看