Linux 多網卡多路由實現策略路由

  兩個不在一段的IP看成一個電信一個網通來設置 就可以了。centos無問題

  1. vi /etc/iproute2/rt_tables,增加網通和電信兩個路由表

  251 tel   電信路由表

  252 cnc 網通路由表

  2. 給網卡綁定兩個地址用於電信和網通兩個線路

  ip addr add 192.168.0.2/24 dev eth0

  ip addr add 10.0.0.2/24 dev eth1

  3、分別設置電信和網通的路由表

  電信路由表:

  #確保找到本地子網

  ip route add 192.168.0..0/24 via 192.168.0.2 dev eth0table tel

  #內部迴環網絡

  ip route add 127.0.0.0/8 dev lo table tel

  #192.168.0.1爲電信網絡默認網關地址

  ip route add default via 192.168.0.1 dev eth0 table tel

  網通線路路由表:

  #確保找到本地子網

  ip route add 10.0.0.0/24 via 10.0.0.2 dev eth1 table cnc

  #內部迴環網絡

  ip route add 127.0.0.0/8 dev lo table cnc

  #10.0.0.1是網通的默認網關

  ip route add default via 10.0.0.1 dev eth1 table cnc

  4、電信和網通各有自己的路由表,制定策略,讓192.168.0.2的迴應數據包走電信的路由表路由,10.0.0.2的迴應數據包走網通的路由表路由

  ip rule add from 192.168.0.1 table tel

  ip rule add from 10.0.0.1 table cnc

  最後考慮特殊情況的網管需要批量添加IP到路由才能過,簡化一下

  ip rule del from 192.168.0.0/24 table tel

  ip rule del from 10.0.0.0/24 table cnc

 

 

 

其二

網卡顯示名稱

IP地址

子網掩碼

網關

備註

ens4f0

172.31.192.201

255.255.255.0

172.31.192.254

服務器A

ens9f0

172.31.196.1

255.255.255.0

172.31.196.254

服務器A

ens4f0

172.31.192.202

255.255.255.0

172.31.192.254

服務器B

ens9f0

172.31.196.2

255.255.255.0

172.31.196.254

服務器B

/

172.25.168.44

255.255.255.0

172.25.168.254

接入測試

網絡配置,以服務器A爲例,注意註釋默認網關

cat/etc/sysconfig/network-scripts/ifcfg-ens4f0

 

DEVICE=ens4f0

ONBOOT=yes

BOOTPROTO=static

TYPE=Ethernet

IPADDR=172.31.192.201

NETMASK=255.255.255.0

#GATEWAY=172.31.192.254

 

cat/etc/sysconfig/network-scripts/ifcfg-ens9f0

 

DEVICE=ens9f0

ONBOOT=yes

BOOTPROTO=static

TYPE=Ethernet

IPADDR=172.31.196.1

NETMASK=255.255.255.0

#GATEWAY=172.31.196.254

 

策略路由配置

注意配置名稱一定要吻合

#編輯rt_tables

echo "192 net_192 " >>/etc/iproute2/rt_tables

echo "196 net_196 " >>/etc/iproute2/rt_tables

 

#清空net_192路由表

ip route flush table net_192

# 添加一個路由規則到 net_192 表,這條規則是 net_192 這個路由表中數據包默認使用源 IP 172.31.192.201 通過 ens4f0 走網關 172.31.192.254

ip route add default via 172.31.192.254 dev ens4f0 src172.31.192.201 table net_192

#來自 172.31.192.201 的數據包,使用 net_192 路由表的路由規則

ip rule add from 172.31.192.201 table net_192

 

#清空net_196路由表

ip route flush table net_196

#添加一個路由規則到 net_196 表,這條規則是 net_196 這個路由表中數據包默認使用源 IP 172.31.196.1 通過 ens9f0 走網關 172.31.196.254

ip route add default via 172.31.196.254 dev ens9f0 src172.31.196.1 table net_196

#來自 172.31.196.1 的數據包,使用 net_196 路由表的路由規則

ip rule add from 172.31.196.1 table net_196

 

#添加默認網關

route add default gw 172.31.192.254

 

#如果需要自啓動生效可以寫進配置文件也可以加入rc.local

vi /etc/rc.local

 

ip route flush table net_192

ip route add default via 172.31.192.254 dev ens4f0 src172.31.192.201 table net_192

ip rule add from 172.31.192.201 table net_192

ip route flush table net_196

ip route add default via 172.31.196.254 dev ens9f0 src172.31.196.1 table net_196

ip rule add from 172.31.196.1 table net_196

route add default gw 172.31.192.254

 

#查看路由表

route -n

 

Kernel IP routing table

Destination    Gateway         Genmask         Flags Metric Ref    Use Iface

169.254.0.0    0.0.0.0         255.255.0.0     U    1006   0        0 ens9f0

169.254.0.0    0.0.0.0         255.255.0.0     U    1008   0        0 ens4f0

169.254.0.0    0.0.0.0         255.255.0.0     U    1014   0        0 br-ex

169.254.0.0    0.0.0.0         255.255.0.0     U    1015   0        0 br-int

172.31.192.0   0.0.0.0         255.255.255.0   U    0      0        0 ens4f0

172.31.196.0   0.0.0.0         255.255.255.0   U    0      0        0 ens9f0

 

#在接入測試服務器上驗證連通性

ping 172.31.192.201

ping 172.31.196.1

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章