CentOS为双网卡配置静态路由

CentOS为双网卡配置静态路由

背景及需求

因项目需求,需要配置一台Nginx反向代理服务器,为运行在不同网段的机器提供代理转发服务。见下图

因此,此台Nginx服务器需要配置双网卡,以访问不同网段的机器。

问题

虽然配置了10和20的双网卡,但是服务器无法自动选择哪个网关与不同网段进行通信。假设服务器默认网关为10网段,虽然配置了双网卡,当服务器ping20网段时,也默认走10网段的网关。因此,需要设置静态路由,指定服务器访问20网段时走20网关。

解决方法

此处贴了其他人的代码段,仅为说明操作流程

查看ip地址
root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
     valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host 
     valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  link/ether 00:0c:29:d3:6c:ea brd ff:ff:ff:ff:ff:ff
  inet 192.168.37.128/24 brd 192.168.37.255 scope global noprefixroute ens33
     valid_lft forever preferred_lft forever
  inet 192.168.37.130/24 brd 192.168.37.255 scope global secondary dynamic ens33
     valid_lft 1233sec preferred_lft 1233sec
  inet6 fe80::20c:29ff:fed3:6cea/64 scope link 
     valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  link/ether 00:0c:29:d3:6c:f4 brd ff:ff:ff:ff:ff:ff
  inet 192.168.37.129/24 brd 192.168.37.255 scope global noprefixroute ens34
     valid_lft forever preferred_lft forever
  inet 192.168.206.138/24 brd 192.168.206.255 scope global dynamic ens34
     valid_lft 1336sec preferred_lft 1336sec
  inet6 fe80::20c:29ff:fed3:6cf4/64 scope link 
     valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
  link/ether 52:54:00:9b:e4:3c brd ff:ff:ff:ff:ff:ff
  inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
     valid_lft forever preferred_lft forever
5: virbr0-nic: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
  link/ether 52:54:00:9b:e4:3c brd ff:ff:ff:ff:ff:ff

查看路由表

注:如此命令无法运行,则需安装 net-tools包,yum install net-tools.x86_64

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.37.254  0.0.0.0         UG    0      0        0 ens33
0.0.0.0         192.168.206.254  0.0.0.0         UG    101    0        0 ens34
192.168.37.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.206.0   0.0.0.0         255.255.255.0   U     0      0        0 ens34

Flags:总共有多个旗标,代表的意义如下:
U (route is up):该路由是有效的;
H (target is a host):目标是一部主机 (IP) 而非网域;
G (use gateway):需要透过外部的主机 (gateway) 来转递封包(一般指向默认网关)

添加静态路由

添加静态路由有多种方法。在编辑ip地址时,我个人习惯编辑 /etc/sysconfig/network-script/里的文件,因此在编辑路由表的时候,我个人也倾向于通过编辑该文件夹下的文件,实行路由表的永久添加。通过查看路由表 route -n 或者 查看ip地址 ip addr ,我们得知,网卡名称为ens33和ens34。则可通过编写 route-ens33文件,实现路由的永久添加。

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
vim route-ens33
192.168.20.0/24 via 192.168.37.254 dev ens33
192.168.37.0/24 via 192.168.37.254 dev ens33
:wq!

此步骤,dev ens33 可以忽略

重启网络 查看路由表是否更新
[root@localhost ~]# systemctl restart network
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 ens33
default         gateway         0.0.0.0         UG    0      0        0 ens34
192.168.20.0    192.168.37.254  255.255.255.0   UG    0      0        0 ens33
192.168.37.0    192.168.37.254  255.255.255.0   UG    0      0        0 ens33

发现显示的默认网关同时走ens33和ens34,接下来需要配置ens33的网卡,把之前配置的ens33网卡的网关禁用

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.37.128
NETMASK=255.255.255.0
#GATEWAY=192.168.37.254
DNS=8.8.8.8
:wq!

重启网卡 再次检查
[root@localhost network-scripts]# systemctl restart network
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 ens34
192.168.20.0    192.168.37.254  255.255.255.0   UG    0      0        0 ens33
192.168.37.0    192.168.37.254  255.255.255.0   UG    0      0        0 ens33

posted on 2022-04-27 16:51  Allen158  阅读(2432)  评论(0编辑  收藏  举报

导航