在 CentOS 7.x 中可以用 nmcli(Network Manager Command Line Interface:网络管理命令行接口)进行网卡绑定。
多网卡的7种bond模式原理请参考:http://support.huawei.com/huaweiconnect/enterprise/thread-282727.html
官方文档:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/sec-Network_Bonding_Using_the_NetworkManager_Command_Line_Tool_nmcli.html
nmcli需要NetworkManager服务,先启动:
~]# systemctl start NetworkManager
设备开机启动:
~]# systemctl enable NetworkManager
~]$ systemctl status NetworkManager
NetworkManager.service - Network Manager Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled) Active: active (running) since Fri, 08 Mar 2013 12:50:04 +0100; 3 days ago
增加设备: [root@localhost ~]# nmcli con add type bond con-name bond0 ifname bond0 mode balance-rr Connection 'bond0' (cfabe2d0-21e9-47e9-9286-c182659b8331) successfully added. 查看结果: [root@localhost ~]# nmcli con show NAME UUID TYPE DEVICE em3 6bcabcdd-656c-4db5-b5fe-6a62716e68f7 802-3-ethernet -- em2 e07ae4a6-19fd-4782-9dd9-87090ae00903 802-3-ethernet -- em4 e6cf4c05-f29a-4d3b-a550-b04878747362 802-3-ethernet -- bond0 cfabe2d0-21e9-47e9-9286-c182659b8331 bond bond0 em1 54bd8900-2e3b-4c69-a1cd-91366e88e0d3 802-3-ethernet em1 [root@localhost ~]# 增加网卡: [root@localhost ~]# nmcli con add type bond-slave ifname em3 master bond0 Connection 'bond-slave-em3' (92cb4f6e-74ee-48a9-8e56-9f83716e11cc) successfully added. [root@localhost ~]# nmcli con add type bond-slave ifname em4 master bond0 Connection 'bond-slave-em4' (3c1da71d-6608-41ff-82d4-2e2fd7582136) successfully added. 查看结果 [root@localhost ~]# nmcli con show NAME UUID TYPE DEVICE em3 6bcabcdd-656c-4db5-b5fe-6a62716e68f7 802-3-ethernet -- em2 e07ae4a6-19fd-4782-9dd9-87090ae00903 802-3-ethernet -- em4 e6cf4c05-f29a-4d3b-a550-b04878747362 802-3-ethernet -- bond-slave-em4 3c1da71d-6608-41ff-82d4-2e2fd7582136 802-3-ethernet em4 bond-slave-em3 92cb4f6e-74ee-48a9-8e56-9f83716e11cc 802-3-ethernet em3 bond0 cfabe2d0-21e9-47e9-9286-c182659b8331 bond bond0 em1 54bd8900-2e3b-4c69-a1cd-91366e88e0d3 802-3-ethernet em1 [root@localhost ~]# 激活网卡: [root@localhost ~]# nmcli con up bond-slave-em3 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/10) [root@localhost ~]# nmcli con up bond-slave-em4 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/11) 配置IP地址等信息: [root@localhost ~]# nmcli con mod bond0 ipv4.addresses "192.168.100.2/24" [root@localhost ~]# nmcli con mod bond0 ipv4.method manual 启动网卡: [root@localhost ~]# nmcli con down bond0 Connection 'bond0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/32) [root@localhost ~]# nmcli con up bond0 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/33) 查看结果: [root@localhost ~]# ifconfig bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500 inet 192.168.100.2 netmask 255.255.255.0 broadcast 192.168.100.255 ether 36:38:d7:a2:89:52 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.21.21.51 netmask 255.255.255.0 broadcast 172.21.21.255 inet6 fe80::92b1:1cff:fe47:2d15 prefixlen 64 scopeid 0x20<link> ether 90:b1:1c:47:2d:15 txqueuelen 1000 (Ethernet) RX packets 17026 bytes 1250498 (1.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1091 bytes 152043 (148.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 41 em2: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 90:b1:1c:47:2d:16 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 46 em3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 90:b1:1c:47:2d:17 txqueuelen 1000 (Ethernet) RX packets 9 bytes 2551 (2.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 47 em4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 90:b1:1c:47:2d:18 txqueuelen 1000 (Ethernet) RX packets 4 bytes 492 (492.0 B) RX errors 0 dropped 48 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 48 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 1 bytes 99 (99.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1 bytes 99 (99.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 TYPE=Bond BONDING_MASTER=yes BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=bond0 UUID=cfabe2d0-21e9-47e9-9286-c182659b8331 ONBOOT=yes BONDING_OPTS=mode=balance-rr IPADDR=192.168.100.2 PREFIX=24 IPV6_PEERDNS=yes IPV6_PEERROUTES=yes 帮助: [root@localhost ~]# nmcli con add help Usage: nmcli connection add { ARGUMENTS | help } ARGUMENTS := COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS IP_OPTIONS COMMON_OPTIONS: type <type> ifname <interface name> | "*" [con-name <connection name>] [autoconnect yes|no] [save yes|no] TYPE_SPECIFIC_OPTIONS: ethernet: [mac <MAC address>] [cloned-mac <cloned MAC address>] [mtu <MTU>] wifi: ssid <SSID> [mac <MAC address>] [cloned-mac <cloned MAC address>] [mtu <MTU>] [mode infrastructure|ap|adhoc] wimax: [mac <MAC address>] [nsp <NSP>] pppoe: username <PPPoE username> [password <PPPoE password>] [service <PPPoE service name>] [mtu <MTU>] [mac <MAC address>] gsm: apn <APN> [user <username>] [password <password>] cdma: [user <username>] [password <password>] infiniband: [mac <MAC address>] [mtu <MTU>] [transport-mode datagram | connected] [parent <ifname>] [p-key <IPoIB P_Key>] bluetooth: [addr <bluetooth address>] [bt-type panu|dun-gsm|dun-cdma] vlan: dev <parent device (connection UUID, ifname, or MAC)> id <VLAN ID> [flags <VLAN flags>] [ingress <ingress priority mapping>] [egress <egress priority mapping>] [mtu <MTU>] bond: [mode balance-rr (0) | active-backup (1) | balance-xor (2) | broadcast (3) | 802.3ad (4) | balance-tlb (5) | balance-alb (6)] [primary <ifname>] [miimon <num>] [downdelay <num>] [updelay <num>] [arp-interval <num>] [arp-ip-target <num>] [lacp-rate slow (0) | fast (1)] bond-slave: master <master (ifname, or connection UUID or name)> team: [config <file>|<raw JSON data>] team-slave: master <master (ifname, or connection UUID or name)> [config <file>|<raw JSON data>] bridge: [stp yes|no] [priority <num>] [forward-delay <2-30>] [hello-time <1-10>] [max-age <6-40>] [ageing-time <0-1000000>] [mac <MAC address>] bridge-slave: master <master (ifname, or connection UUID or name)> [priority <0-63>] [path-cost <1-65535>] [hairpin yes|no] vpn: vpn-type vpnc|openvpn|pptp|openconnect|openswan|libreswan|ssh|l2tp|iodine|... [user <username>] olpc-mesh: ssid <SSID> [channel <1-13>] [dhcp-anycast <MAC address>] adsl: username <username> protocol pppoa|pppoe|ipoatm [password <password>] [encapsulation vcmux|llc] IP_OPTIONS: [ip4 <IPv4 address>] [gw4 <IPv4 gateway>] [ip6 <IPv6 address>] [gw6 <IPv6 gateway>]