linux增加路由多网卡,Linux 多网卡多路由实现策略路由

一、原理说明

1、路由表(table)从0到255进行编号,每个编号可以对应一个别名,编号和别名的对应关系在linux下放在/etc/iproute2/rt_tables这个文件里,一般0编号的table对应的别名为upspec,255编号对应的别名为local,254和253对应的别名分别为main和default。

表255 本地路由表(Local table) 本地接口地址,广播地址,已及NAT地址都放在这个表。该路由表由系统自动维护,管理员不能直接修改。

表254 主路由表(Main table) 如果没有指明路由所属的表,所有的路由都默认都放在这个表里,一般来说,旧的路由工具(如route)所添加的路由都会加到这个表。一般是普通的路由。

表253 默认路由表 (Default table) 一般来说默认的路由都放在这张表,但是如果特别指明放的也可以是所有的网关路由。

2、传统的路由算法是仅使用一张路由表的。但是在有些情形底下,我们是需要使用多路由表的。例如一个子网通过一个路由器与外界相连,路由器与外界有两条线路相连,其中一条的速度比较快,一条的速度比较慢。策略性路由的路由规则负责定义路由策略,它定义来源哪里的IP需要查询哪个路由表(使用别名)。路由规则的查看使用ip rule sh路由规则也从0开始编号,可以自由添加,来源相同IP的路由规则选择根据规则编号的大小确定优先级,编号越小优先级越高。

规则包含3个要素:

什么样的包,将应用本规则(所谓的SELECTOR,可能是filter更能反映其作用);

符合本规则的包将对其采取什么动作(ACTION),例如用那个表;

本规则的优先级别。优先级别越高的规则越先匹配(数值越小优先级别越高)。

# ip rule sh

0:from all lookup local

32766:from all lookup main

32767:from all lookup default

优先级最高的规则是0,要查询的路由表名称是local,其次是32766,要查询的路由表名称是main,后面依此类推。

3、操作系统在选路时首先根据路由规则选取table,然后再从table里选取相应路由,如果同一table里不同接口使用相同的网关,选路时会默认选择第一条路由,所以当有两个网络接口卡时,如果目标网络在同一网段,那么由于选路时按第一条路由出口出去,所以会导致所有的流量都会从第一个网卡上出去。

二、配置

1、查看路由表配置,默认为main的路由表,通常的格式如下:

route [-nNvee] [-FC] [] :         用来列出路由表记录

route [-v] [-FC] {add|del|flush} ... :   用来修改路由表记录

示例:

# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 192.168.1.2 0.0.0.0 UG 100 0 0 ens33

192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33

其它命令:

route del default 删除main路由表里的默认路由

route add default gw 192.168.1.1 在main路由表里添加默认路由记录192.168.1.1

2、添加其他编号的路由table时,我们需要使用ip route命令,通常的格式为:

ip route { list | flush | show } SELECTOR:                         用来显示指定table的路由表记录

ip route { add | del | change | append | replace | monitor } ROUTE:用来修改指定table的路由表记录

3、示例

3.1.网卡绑定地址

ip addr add 192.168.1.2/24 dev ens33

ip addr add 172.16.1.2/24 dev ens32

3.2. 修改 /etc/iproute2/rt_tables,增加联通和电信两个路由表

电信路由表

# echo "192 telecom" >> /etc/iproute2/rt_tables

联通路由表

# echo "172 unicom" >> /etc/iproute2/rt_tables

3.3. 电信网络

#清空 telecom 路由表

ip route flush table telecom

# 添加一个路由规则到 telecom 表

ip route add 192.168.1.0/24 via 192.168.1.1 dev ens33 table telecom

# 电信网络默认网关地址

ip route add default via 192.168.1.1 dev ens33 table telecom

# 内部回环网络

ip route add 127.0.0.0/8 dev lo table telecom

# 让192.168.1.2的回应数据包走电信的路由表路由

ip rule add from 192.168.1.1 table telecom

3.4.联通网络

# 清空 unicom 路由表

ip route flush table unicom

# 添加一个路由规则到 unicom 表

ip route add 172.16.1.0/24 via 172.16.1.1 dev ens32 table unicom

# 联通网络默认网关地址

ip route add default via 172.16.1.1 dev ens32 table unicom

# 内部回环网络

ip route add 127.0.0.0/8 dev lo table unicom

# 让172.16.1.2的回应数据包走电信的路由表路由

ip rule add from 172.16.1.1 table unicom

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值