Skip to main content

单路由双网关双外网双网卡的配置 - 鸡爷云的网络配置

鸡爷云目前使用的是 dell 服务器,网卡的名字叫做 em1 em2 em3 em4,不同于普通的系统叫做 eth0 啥的。

我这里子网掩码都是 24255.255.255.0)根据您的环境进行调整。系统Centos7

 

假定  网卡 1 的 内网 IP 地址是 10.1.1.241 ,网卡 2 的内网 IP 地址是 10.1.2.241
网关1 的内网 IP 地址是 10.1.1.2,网关2 的内网 IP 地址是 10.1.2.2

1.增加网关地址
route add -net 10.1.1.0 netmask 255.255.255.0 gw 10.1.1.2
route add -net 10.1.2.0 netmask 255.255.255.0 gw 10.1.2.2

#route add 添加静态路由
#route add -net 10.1.1.0 netmask 255.255.255.0 gw 10.1.1.2   把所有 10.1.1.0 网段的数据包的网关指定为 10.1.1.2子网掩码设置为 255.255.255.0


根据你的实际情况填写
如果你的路由支持绑定,好像不添加也行?

因为我发现鸡爷云的路由表是:(使用route -n查看路由表)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface                                               
0.0.0.0         10.1.1.2        0.0.0.0         UG    100    0        0 em1                                                 
0.0.0.0         10.1.2.2        0.0.0.0         UG    101    0        0 em2                                                 
10.1.1.0        0.0.0.0         255.255.255.0   U     100    0        0 em1                                                 
10.1.2.0        0.0.0.0         255.255.255.0   U     101    0        0 em2 

忘了啥时候搞的了,在路由器配置过上面那个不加也能正常用就是了

增加网关地址后:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.1.2        0.0.0.0         UG    100    0        0 em1
0.0.0.0         10.1.2.2        0.0.0.0         UG    101    0        0 em2
10.1.1.0        10.1.1.2        255.255.255.0   UG    0      0        0 em1
10.1.1.0        0.0.0.0         255.255.255.0   U     100    0        0 em1
10.1.2.0        10.1.2.2        255.255.255.0   UG    0      0        0 em2
10.1.2.0        0.0.0.0         255.255.255.0   U     101    0        0 em2

#Destination 目标网络或目标主机。Destination 默认是0.0.0.0,表示这个是默认网关,所有地址的数据都发到这个网关。
#Gateway 网关地址。0.0.0.0 表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关。
#Genmask Destination的网络掩码,也就是你常听到的子网掩码。Destination 是主机时需要设置为 255.255.255.255,是默认路由时会设置为 0.0.0.0
#Flags 标记,含义见下表
#Metric 路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的。Linux 内核路由表此项无效
#Use 此路由项被路由软件查找的次数,没啥用?
#Iface 网卡名字,em 是 dell 服务器专用的名字,其他的一般是 eth0 之类的

                     Flags 标记含义表
U 路由是活动/激活的
H 目标是个主机
G 需要经过网关
R 恢复动态路由产生的表项
D 由路由的后台程序动态安装
M 由路由的后台程序修改
! 拒绝路由
 
2.添加策略路由表
vim /etc/iproute2/rt_tables

#修改/etc/iproute2/rt_table,添加策略路由表

根据里面的顺序添加2行(添加2个路由表)

默认:

255     local
254     main
253     default
0       unspec

添加后:

255     local
254     main
253     default
252     net_nem2
251     net_nem1
0       unspec

#前面的数字其实是优先级来着,一般都当做序号用了。数值越小优先级别越高。
#net_nem1 net_nem2 是策略名字,可以自己选择
#255路由表 本地路由表(Local table) 本地接口地址,广播地址,以及NAT地址都放在这个表。该路由表由系统自动维护,管理员不能直接修改。
#254路由表 主路由表(Main table) 如果没有指明路由所属的表,所有的路由都默认都放在这个表里,一般来说,旧的路由工具(如route)所添加的路由都会加到这个表。一般是普通的路由。
#253路由表 默认路由表 (Default table) 一般来说默认的路由都放在这张表,但是如果特别指明放的也可以是所有的网关路由。
#0路由表 保留路由表,一般没用。

 

3.添加原路返回策略路由

让指定网关发来的数据回到指定的网关.

vim /etc/rc.local

#修改/etc/rc.local,让它每次开机都执行

ip route flush table net_nem1
ip route add default via 10.1.1.2 dev em1 src 10.1.1.241 table net_nem1
ip rule add from 10.1.1.241 table net_nem1
ip route flush table net_nem2
ip route add default via 10.1.2.2 dev em2 src 10.1.2.241 table net_nem2
ip rule add from 10.1.2.241 table net_nem2

#ip    iproute工具,一个网络管理工具包合集
#router    路由管理
#rule    路由策略
#ip route flush table net_nem1   刷新/清空路由表 net_nem1
#ip route add default via 10.1.1.2 dev em1 src 10.1.1.241 table net_nem1      添加一条路由规则到 net_nem1 路由表,et_nem1 这个路由表中数据包默认使用源 IP 10.1.1.241 通过网口 em1 走网关 10.1.1.2
#ip rule add from 10.1.1.241 table net_nem1      把来自 10.1.1.241 的数据包都交给路由表 net_nem1 处理

这里面的内容要根据你实际内容填写,比如 IP 地址和策略路由表名称啥的。
然后运行一遍这些命令,不要断开 ssh,以防不测。

 

systemctl restart network

#重启网卡

然后 ping 服务器并马上再开几个 ssh 连接上去试试,服务器有几个 IP 都试试,如果能上说明网络没有问题。
不能上说明你哪里搞错了,赶快用还连着的 ssh 补救。