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

 




本文转自 freeterman 51CTO博客,原文链接:http://blog.51cto.com/myunix/1789842,如需转载请自行联系原作者

相关文章
|
13天前
|
监控 网络协议 Linux
Linux多路转接or多路复用模型
【2月更文挑战第5天】
37 1
|
8月前
|
网络协议 Linux 开发工具
Linux|麒麟操作系统实现多路RTMP|RTSP播放
无论是Windows平台还是Linux,多路播放诉求非常普遍,比如针对智慧工地、展馆、教育等宏观场景下的摄像头展示,关于RTSP或RTMP直播播放器开发需要注意的点,可参考之前博客,总的来说有以下一些点:
186 0
|
13天前
|
Linux API
Linux网络编程(多路IO复用poll)
Linux网络编程(多路IO复用poll)
32 0
|
13天前
|
Linux
Linux网络编程(多路IO复用select函数使用)
Linux网络编程(多路IO复用select函数使用)
37 0
|
7月前
|
消息中间件 网络协议 安全
【Hello Linux】多路转接之 epoll
【Hello Linux】多路转接之 epoll
33 0
|
7月前
|
Linux
【Hello Linux】多路转接之 poll
【Hello Linux】多路转接之 poll
29 0
|
缓存 监控 Linux
Android C++系列:Linux Socket编程(四)多路IO转接服务器
select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开 的文件描述符个数并不能改变select监听文件个数
95 0
|
关系型数据库 MySQL Linux
Linux下C语言实现MySQL操作——连接、查询、插入与客户端打造
Linux下C语言实现MySQL操作——连接、查询、插入与客户端打造
349 0
Linux下C语言实现MySQL操作——连接、查询、插入与客户端打造
|
Linux 开发者 Perl
zynq操作系统:Linux驱动开发AXIDMA补充篇 多路DMA
Linux驱动开发AXIDMA补充篇 多路DMA
963 0
|
缓存 监控 Linux
linux网络编程(四)多路I/O转接服务器
linux网络编程(四)多路I/O转接服务器
97 1
linux网络编程(四)多路I/O转接服务器