在现代服务器架构中,配置和使用多网卡是一项基础且至关重要的技能,它不仅能实现网络流量的隔离,提升安全性,还能通过链路聚合增加带宽,或提供网络冗余以确保高可用性,在CentOS系统中,启用和配置多网卡主要涉及对网络配置文件的精确编辑和管理,本文将详细阐述在CentOS环境下启用多网卡的核心步骤与高级应用。
第一步:识别现有网卡
在进行任何配置之前,首先需要确认系统检测到了哪些网络接口,可以通过以下命令查看:
ip addr
或使用旧版命令(如果已安装):
ifconfig -a
命令的输出会列出所有网络设备,通常包括回环接口(lo
)以及一个或多个以太网接口(如 ens33
, ens37
, eno1
等),假设系统已有主网卡 ens33
,我们希望启用并配置第二块网卡 ens37
。
第二步:配置网络接口
CentOS的网络配置文件存放在 /etc/sysconfig/network-scripts/
目录下,每个网卡对应一个名为 ifcfg-[接口名]
的文件。
为第二网卡配置静态IP地址
这是最常见的场景,例如为内网通信或特定服务分配一个固定的IP地址。
创建或编辑配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens37
写入以下配置内容:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=ens37 UUID=[此处可留空或生成一个新的UUID] DEVICE=ens37 ONBOOT=yes IPADDR=192.168.20.10 NETMASK=255.255.255.0 GATEWAY=192.168.20.1 DNS1=8.8.8.8 DNS2=114.114.114.114
关键参数解释:
BOOTPROTO=static
:设置为静态IP模式。ONBOOT=yes
:确保系统启动时激活此网卡。IPADDR
,NETMASK
,GATEWAY
:分别定义IP地址、子网掩码和网关,注意,如果此网卡不需要访问外网,GATEWAY
可以省略,以避免与主网关冲突。DNS1
,DNS2
:指定DNS服务器。
为第二网卡配置DHCP获取地址
如果网络环境中存在DHCP服务器,配置会相对简单。
TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes NAME=ens37 DEVICE=ens37 ONBOOT=yes
只需将 BOOTPROTO
设置为 dhcp
,并确保 ONBOOT
为 yes
即可。
第三步:高级应用——网卡绑定
为了实现网络冗余和负载均衡,可以将多块物理网卡绑定成一个逻辑网卡。
绑定模式 | 名称 | 描述 |
---|---|---|
mode=0 | balance-rr | 平衡轮询模式,数据包依次在所有Slave网卡上发送,提供负载均衡和容错。 |
mode=1 | active-backup | 主备模式,只有一块网卡处于活动状态,其他作为备份,提供高可用性。 |
mode=6 | balance-alb | 自适应负载均衡模式,结合了mode=0的负载均衡和mode=1的容错能力。 |
配置示例(mode=1 主备模式):
创建绑定接口配置文件
ifcfg-bond0
:DEVICE=bond0 NAME=bond0 TYPE=Bond BONDING_OPTS=mode=1 miimon=100 BOOTPROTO=static IPADDR=192.168.10.100 NETMASK=255.255.255.0 GATEWAY=192.168.10.1 ONBOOT=yes
修改物理网卡配置文件(如
ifcfg-ens33
和ifcfg-ens37
):# /etc/sysconfig/network-scripts/ifcfg-ens33 DEVICE=ens33 NAME=ens33 TYPE=Ethernet ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none # /etc/sysconfig/network-scripts/ifcfg-ens37 DEVICE=ens37 NAME=ens37 TYPE=Ethernet ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none
第四步:应用并验证配置
完成配置文件的编辑后,需要重启网络服务以使更改生效。
systemctl restart network
对于CentOS 8/9,推荐使用 nmcli
命令:
nmcli connection reload nmcli connection up [接口名,如ens37或bond0]
使用 ip addr
检查网卡是否已成功获取IP地址并处于 UP
状态,可以使用 ping
命令测试连通性,特别是对于多网卡环境,可以使用 -I
参数指定从哪个网卡发出ICMP包:
ping -I 192.168.20.10 baidu.com
相关问答FAQs
问题1:配置第二块静态IP网卡后,服务器无法访问外网了,怎么办?
解答: 这是一个典型的路由冲突问题,当系统中有两个网卡都配置了网关时,默认路由可能会变得混乱,解决方法通常是:
- 检查默认路由:使用
ip route
或route -n
查看默认路由(0.0.0
)指向哪个网关,确保它指向正确的、能够连接外网的网关。 - 移除不必要的网关:如果第二块网卡仅用于内网通信,在其配置文件中删除或注释掉
GATEWAY
行,然后重启网络服务,这样系统只会保留一个通往外网的默认路由。 - 策略路由:如果需要两块网卡都能访问不同的网络,需要配置策略路由,为不同的源IP地址指定不同的路由表,这属于更高级的网络配置。
问题2:如何确认我的网卡绑定是否工作正常?
解答: 可以通过以下几种方式验证网卡绑定的状态:
- 查看绑定接口状态:执行
cat /proc/net/bonding/bond0
命令,输出信息会非常详细地显示Bonding Mode: active-backup
、Currently Active Slave: ens33
以及所有Slave网卡的状态(MII Status: up
),如果主网卡故障,你会看到Currently Active Slave
字段切换到备用网卡。 - 物理断开测试:这是最直接的测试方法,在主备模式下,拔掉活动网卡的网线,观察服务器网络是否中断,以及
cat /proc/net/bonding/bond0
的输出是否迅速切换到备用网卡,正常情况下,网络连接只会瞬间中断,然后迅速恢复。 - 查看系统日志:使用
journalctl -f
或dmesg
命令查看系统日志,在网卡状态发生变化时,内核会记录相关事件。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复