centos7配置多网卡
前言:由于服务器A需要访问特定的服务器B 但是A目前所在的网络与服务器B是不同的,所以目前从B服务器的交换机上拉一条网线到A服务器上,因为服务器都是多网卡的,所以需要进行配置,并且配置完毕之后想要达到的效果为,只有访问B服务器的IP才会走另一张网卡,其余的网络还是走原来的网卡。另外我们的这个网络是服务器的专属网段,所以没有启用DHCP,全部都是静态IP的配置,如果是DHCP的,那么需要进行在路由端绑定mac地址,要不然服务器的IP变了可不是闹着玩的。
我目前centos的版本信息如下[root@l92 ~]# cat /etc/centos-release CentOS Linux release 7.4.1708 (Core) [root@l92 ~]#
前提配置
A服务器有四张网卡,名称为em1 em2 em3 em4 目前只有em1网卡在用,现在将能联通B服务器的网线插入em2,所以目前的话就是两张网卡在用,分别为em1,em2
开始配置
首先配置em1网卡的IP。(其实已经配置好了的,这里主要是看一下)
[root@l92 ~]# cd /etc/sysconfig/network-scripts/
[root@l92 network-scripts]# ls
ifcfg-em1 ifcfg-em4 ifdown-eth ifdown-post ifdown-Team ifup-aliases ifup-ipv6 ifup-post ifup-Team init.ipv6-global
ifcfg-em1.bak ifcfg-lo ifdown-ippp ifdown-ppp ifdown-TeamPort ifup-bnep ifup-isdn ifup-ppp ifup-TeamPort network-functions
ifcfg-em2 ifdown ifdown-ipv6 ifdown-routes ifdown-tunnel ifup-eth ifup-plip ifup-routes ifup-tunnel network-functions-ipv6
ifcfg-em3 ifdown-bnep ifdown-isdn ifdown-sit ifup ifup-ippp ifup-plusb ifup-sit ifup-wireless route-em2
[root@l92 network-scripts]#
通过上面命令就可以看到一堆的文件信息,重要主要看以下几个
其中咱们得A服务器有4张网卡,那么这里面就有对应4个网卡的配置文件,分别为ifcfg-em1,ifcfg-em2,ifcfg-em3,ifcfg-em4。另外前言已经介绍了,咱们目前只用到了em1以及em2。
首先看一下em1的配置信息
[root@l92 network-scripts]# cat ifcfg-em1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO=dhcp
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=em1
UUID=1e242b71-a89c-4e80-8255-17613f3082d3
DEVICE=em1
ONBOOT=yes
ZONE=public
IPADDR=192.168.10.26
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=8.8.8.8
[root@l92 network-scripts]#
下面是每个参数的详细解释:
TYPE=Ethernet
:指定网络接口的类型,这里是以太网。PROXY_METHOD=none
:指定代理方法,这里没有使用代理。BROWSER_ONLY=no
:是否只用于浏览器,设置为否。BOOTPROTO=static
:注释掉了dhcp
,并将BOOTPROTO
设置为静态,表示使用静态 IP 地址而不是 DHCP 动态获取。DEFROUTE=yes
:指定是否使用此接口作为默认路由,设置为是。IPV4_FAILURE_FATAL=no
:IPv4 配置失败是否致命,设置为否。IPV6INIT=yes
:是否初始化 IPv6,设置为是。IPV6_AUTOCONF=yes
:是否使用自动配置 IPv6 地址,设置为是。IPV6_DEFROUTE=yes
:是否使用此接口作为 IPv6 默认路由,设置为是。IPV6_FAILURE_FATAL=no
:IPv6 配置失败是否致命,设置为否。IPV6_ADDR_GEN_MODE=stable-privacy
:指定 IPv6 地址生成模式,使用稳定隐私地址。NAME=em1
:接口的名称。UUID=1e242b71-a89c-4e80-8255-17613f3082d3
:接口的唯一标识符 (UUID)。DEVICE=em1
:设备名称。ONBOOT=yes
:系统启动时是否启用此接口,设置为是。ZONE=public
:接口所属的网络区域,这里是公共区域。
与静态 IP 配置相关的参数:
IPADDR=192.168.1.226
:接口的静态 IP 地址。NETMASK=255.255.255.0
:子网掩码,定义网络部分和主机部分的分界。GATEWAY=192.168.1.1
:默认网关的 IP 地址。DNS1=8.8.8.8
:指定第一个 DNS 服务器的 IP 地址(这里使用的是 Google 的公共 DNS 服务器)。
这些参数一起配置了一个以太网接口,使其在系统启动时启用,使用静态 IP 地址,并具有特定的路由和 DNS 配置。
看一下em2的配置信息
[root@l92 network-scripts]# cat ifcfg-em2
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO=dhcp
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=em2
UUID=4894799d-a8ae-4b79-a26d-ab703cd6d84e
DEVICE=em2
ONBOOT=yes
ZONE=public
IPADDR=192.168.10.25
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=114.114.114.114
[root@l92 network-scripts]#
具体的参数意义在参考接口1
配置完毕之后需要进行重启网络服务
[root@l92 network-scripts]# systemctl restart network
查看接口的IP地址
[root@l92 network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether dc:f4:01:e6:d3:70 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.26/24 brd 192.168.10.255 scope global em1
valid_lft forever preferred_lft forever
inet6 fe80::f6ea:3333:b4de:6fff/64 scope link
valid_lft forever preferred_lft forever
3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether dc:f4:01:e6:d3:71 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.25/24 brd 192.168.10.255 scope global em2
valid_lft forever preferred_lft forever
inet6 fe80::35bc:bb39:45c9:b541/64 scope link
valid_lft forever preferred_lft forever
4: em3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether dc:f4:01:e6:d3:72 brd ff:ff:ff:ff:ff:ff
5: em4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether dc:f4:01:e6:d3:73 brd ff:ff:ff:ff:ff:ff
[root@l92 network-scripts]#
那么我们可以看到,我们的IP配置成功了
配置路由信息
让目标为B服务器的流量,通过em2网卡进行发送,这样B服务器解析到的IP就是192.168.10.25 而不是 192.168.10.26
开始配置
B服务器的IP地址为 11.12.13.14
[root@l92 network-scripts]# ip route add 11.12.13.14/32 dev em2
参数解释:
dev 后面的参数就是选择物理网卡 其余的都应该能看得懂了
查看路由配置信息
[root@l92 network-scripts]# ip route show
default via 192.168.10.1 dev em1 proto static metric 100
default via 192.168.10.1 dev em2 proto static metric 101
192.168.10.0/24 dev em1 proto kernel scope link src 192.168.10.26 metric 100
192.168.10.0/24 dev em2 proto kernel scope link src 192.168.10.25 metric 101
11.12.13.14 via 192.168.1.1 dev em2 proto static metric 100
[root@l92 network-scripts]#
下面是这五条路由的详细解释:
-
default via 192.168.10.1 dev em1 proto static metric 100
- default:这是默认路由,用于所有未明确指定的目的地。
- via 192.168.10.1:表示下一跳的网关地址是 192.168.10.1。
- dev em1:使用网络接口
em1
。 - proto static:路由是静态配置的。
- metric 100:路由的度量值(优先级),值越小优先级越高,这里是 100。
-
default via 192.168.10.1 dev em2 proto static metric 101
- default:同样是默认路由。
- via 192.168.10.1:下一跳的网关地址仍然是 192.168.10.1。
- dev em2:使用网络接口
em2
。 - proto static:静态配置。
- metric 101:路由的度量值为 101,比
em1
上的默认路由优先级低。
-
192.168.10.0/24 dev em1 proto kernel scope link src 192.168.10.26 metric 100
- 192.168.10.0/24:这是一个子网路由,表示 192.168.10.0 到 192.168.10.255 的地址范围。
- dev em1:通过网络接口
em1
。 - proto kernel:路由由内核自动生成。
- scope link:路由的作用域为链路级,表示直接连接的网络。
- src 192.168.10.26:源地址为 192.168.10.26。
- metric 100:度量值为 100。
-
192.168.10.0/24 dev em2 proto kernel scope link src 192.168.10.25 metric 101
- 192.168.10.0/24:同样是一个子网路由,表示 192.168.10.0 到 192.168.10.255 的地址范围。
- dev em2:通过网络接口
em2
。 - proto kernel:由内核自动生成。
- scope link:链路级作用域。
- src 192.168.10.25:源地址为 192.168.10.25。
- metric 101:度量值为 101,比
em1
的优先级低。
-
11.12.13.14 via 192.168.1.1 dev em2 proto static metric 100
- 11.12.13.14:这是一个具体的目标 IP 地址。
- via 192.168.1.1:通过 192.168.1.1 作为下一跳网关。
- dev em2:使用网络接口
em2
。 - proto static:静态配置。
- metric 100:度量值为 100。
总结:
- 有两个默认路由(第一条和第二条),都指向 192.168.10.1,但使用不同的接口(
em1
和em2
),em1
的优先级较高。 - 第三条和第四条是子网路由,分别通过
em1
和em2
访问 192.168.10.0/24 子网,em1
优先级较高。 - 第五条是一个静态路由,指向特定 IP 地址 11.12.13.14,通过网关 192.168.1.1 和接口
em2
,优先级为 100。
那么下面我们就可以进行测试了。
注意:这里不要重启网络服务,因为重启完毕之后自己添加的路由信息就会没,先不用担心,继续跟着往下做
通过测试到达指定IP地址可以看具体的路由信息
[root@l92 network-scripts]# ip route get 11.12.13.14
11.12.13.14 via 192.168.1.1 dev em2 src 192.168.10.25
cache
[root@l92 network-scripts]#
通过这个测试信息,其实我们也就看到了,只要是B服务器11.12.13.14对我们的192.168.10.25是开放的,那么我们就肯定能联通了
永久路由保存
如果在做完上面的配置之后,进行重启网络服务,那么在进行查看路由信息就发现不存在了。那么这条的路由信息肯定要进行永久保存的
首先,我们来到文件夹
[root@l92 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@l92 network-scripts]#
查看文件信息
[root@l92 network-scripts]# ls
ifcfg-em1 ifcfg-em4 ifdown-eth ifdown-post ifdown-Team ifup-aliases ifup-ipv6 ifup-post ifup-Team init.ipv6-global
ifcfg-em1.bak ifcfg-lo ifdown-ippp ifdown-ppp ifdown-TeamPort ifup-bnep ifup-isdn ifup-ppp ifup-TeamPort network-functions
ifcfg-em2 ifdown ifdown-ipv6 ifdown-routes ifdown-tunnel ifup-eth ifup-plip ifup-routes ifup-tunnel network-functions-ipv6
ifcfg-em3 ifdown-bnep ifdown-isdn ifdown-sit ifup ifup-ippp ifup-plusb ifup-sit ifup-wireless route-em2
[root@l92 network-scripts]#
其实如果比较细心的就会看到,我这里多了一个配置文件 route-em2
的文件,没错,这就是配置路由的永久保存方法,如果没有这个文件的话就直接新建一个。新建的规则为 route-网卡名称
里面的文件信息如下
[root@l92 network-scripts]# cat route-em2
11.12.13.14/32 via 192.168.1.1 dev em2
[root@l92 network-scripts]#
这个就不用我解释了吧。
现在开始重启网络服务,查看路由信息还在不在
[root@l92 network-scripts]# systemctl restart network
[root@l92 network-scripts]# ip route show
default via 192.168.10.1 dev em1 proto static metric 100
default via 192.168.10.1 dev em2 proto static metric 101
192.168.10.0/24 dev em1 proto kernel scope link src 192.168.10.26 metric 100
192.168.10.0/24 dev em2 proto kernel scope link src 192.168.10.25 metric 101
11.12.13.14 via 192.168.1.1 dev em2 proto static metric 100
[root@l92 network-scripts]# ip route get 11.12.13.14
11.12.13.14 via 192.168.1.1 dev em2 src 192.168.10.25
cache
[root@l92 network-scripts]#
通过上面我们可以看到保存的信息还是存在的。
上面的一些配置使我实际当中用到的,当然也只是冰山一角,关于路由的只是还需要多多补充,如果文档中存在错误的地方,欢迎指正