您现在的位置是:首页 >技术杂谈 >linux配置网络服务-绑定两块网卡网站首页技术杂谈
linux配置网络服务-绑定两块网卡
实验环境:centos7
类centos7的Linux中发行版,配置大同小异
1、使用Vim文本编辑器来配置网卡设备的绑定参数。对参与绑定的网卡设备逐个进行“初始设置”。需要注意的是,这些原本独立的网卡设备此时需要被配置成为一块“从属”网卡,服务于“主”网卡,不应该再有自己的IP地址等信息。在进行了初始设置之后,它们就可以支持网卡绑定。
[root@localhost]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=eno16777736
MASTER=bond0
SLAVE=yes
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno33554968
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=eno33554968
MASTER=bond0
SLAVE=yes
还需要将绑定后的设备命名为bond0并把IP地址等信息填写进去,这样当用户访问相应服务的时候,实际上就是由这两块网卡设备在共同提供服务。
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=bond0
IPADDR=192.168.1.1
PREFIX=24
DNS=192.168.1.1
NM_CONTROLLED=no
2、让Linux内核支持网卡绑定驱动。常见的网卡绑定驱动有三种模式——mode0、mode1和mode6。下面以绑定两块网卡为例,了解使用场景。
mode0(平衡负载模式):平时两块网卡均工作,且自动备援,但需要在与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技术。
mode1(自动备援模式):平时只有一块网卡工作,在它故障后自动替换为另外的网卡。
mode6(平衡负载模式):平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持。
使用Vim文本编辑器创建一个用于网卡绑定的驱动文件,使得绑定后的bond0网卡设备能够支持绑定技术(bonding);同时定义网卡以mode6模式进行绑定,且出现故障时自动切换的时间为100毫秒。
BONDING_OPTS 网卡绑定参数这个也可以卸载网卡配置文件里
BONDING_OPTS="bonding parameters separated by spaces"
[root@localhost ~]# vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=6
3、重启网络服务后网卡绑定操作即可成功。正常情况下只有bond0网卡设备才会有IP地址等信息:
这里注意centos中还有net-tools工具,所以还有network。但是现在的发行版大多已经是使用Networkmanager了。
[root@linuxprobe ~]# systemctl restart network
实验环境:openEuler
在欧拉环境中学习使用Networkmanager,绑定网卡
配置网络绑定
使用nmcli
创建名为mybond0的绑定,使用示例如下:
$ nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup
添加从属接口,使用示例如下:
$ nmcli con add type bond-slave ifname enp3s0 master mybond0
要添加其他从属接口,重复上一个命令,并在命令中使用新的接口,使用示例如下:
$ nmcli con add type bond-slave ifname enp4s0 master mybond0
Connection 'bond-slave-enp4s0' (05e56afc-b953-41a9-b3f9-0791eb49f7d3) successfully added.
要启动绑定,则必须首先启动从属接口,使用示例如下:
$ nmcli con up bond-slave-enp3s0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14)
$ nmcli con up bond-slave-enp4s0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/15)
现在可以启动绑定,使用示例如下:
$ nmcli con up mybond0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/16)
使用命令行
检查是否已安装Bonding内核模块
在系统中默认已加载相应模块。要载入绑定模块,可在root权限下使用如下命令:
# modprobe --first-time bonding
显示该模块的信息,可在root权限下使用如下命令:
# modinfo bonding
更多命令请在root权限下使用modprobe --help查看。
创建频道绑定接口
要创建绑定接口,可在root权限下通过在 /etc/sysconfig/network-scripts/ 目录中创建名为 ifcfg-bondN 的文件(使用接口号码替换 N,比如 0)。
根据要绑定接口类型的配置文件来编写相应的内容,比如网络接口。接口配置文件示例如下:
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.1.1
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="bonding parameters separated by spaces"
创建从属接口
创建频道绑定接口后,必须在从属接口的配置文件中添加 MASTER 和 SLAVE 指令。
例如将两个网络接口enp3s0 和 enp4s0 以频道方式绑定,其配置文件示例分别如下:
TYPE=Ethernet
NAME=bond-slave-enp3s0
UUID=3b7601d1-b373-4fdf-a996-9d267d1cac40
DEVICE=enp3s0
ONBOOT=yes
MASTER=bond0
SLAVE=yes
TYPE=Ethernet
NAME=bond-slave-enp4s0
UUID=00f0482c-824f-478f-9479-abf947f01c4a
DEVICE=enp4s0
ONBOOT=yes
MASTER=bond0
SLAVE=yes
激活频道绑定
要激活绑定,则需要启动所有从属接口。请在root权限下,运行以下命令:
# ifup enp3s0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
# ifup enp4s0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
说明:
对于已经处于“up”状态的接口,请首先使用“ifdown enp3s0 ”命令修改状态为down,其中 enp3s0 为实际网卡名称。
完成后,启动所有从属接口以便启动绑定(不将其设定为 “down”)。
要让 NetworkManager 感知到系统所做的修改,在每次修改后,请在root权限下,运行以下命令:
# nmcli con load /etc/sysconfig/network-scripts/ifcfg-device
查看绑定接口的状态,请在root权限下运行以下命令:
# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:aa:ad:4a brd ff:ff:ff:ff:ff:ff
3: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:aa:da:e2 brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
link/ether 86:a1:10:fb:ef:07 brd ff:ff:ff:ff:ff:ff
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:29:35:4c brd ff:ff:ff:ff:ff:ff
创建多个绑定
系统会为每个绑定创建一个频道绑定接口,包括 BONDING_OPTS 指令。使用这个配置方法可让多个绑定设备使用不同的配置。请按照以下操作创建多个频道绑定接口:
创建多个 ifcfg-bondN 文件,文件中包含 BONDING_OPTS 指令,让网络脚本根据需要创建绑定接口。
创建或编辑要绑定的现有接口配置文件,添加 SLAVE 指令。
使用 MASTER 指令工具在频道绑定接口中分配要绑定的接口,即从属接口。
以下是频道绑定接口配置文件示例:
DEVICE=bondN
NAME=bondN
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.1.1
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="bonding parameters separated by spaces"
在这个示例中,使用绑定接口的号码替换 N。例如要创建两个接口,则需要使用正确的 IP 地址创建两个配置文件 ifcfg-bond0 和 ifcfg-bond1。