网卡绑定模式bond0_网卡做bond后一个网口不通「建议收藏」

网卡绑定模式bond0_网卡做bond后一个网口不通「建议收藏」Bonding是将多块网卡绑定同一ip地址对外提供服务,可以实现高可用或者负载均衡

Bonding是将多块网卡绑定同一ip地址对外提供服务,可以实现高可用或者负载均衡。默认情况下,无法给不同网卡配置同一个ip地址,通过bonding,创建一个虚拟网卡(Master角色)对外提供连接,然后在此虚拟机上绑定多块物理网卡(Slave角色),它们将共用MAC地址。这样一来,流量将以master虚拟网卡为导向分配给各slave物理网卡,从而实现流量的负载均衡或高可用。

参考文档:网卡绑定bond0的实现_51CTO博客_网卡绑定

1,双网卡绑定的三种实现方式

实验准备:

  1. 两台Linux虚拟机(实验机centos7.9.2009,测试机rocky9.0)
  2. VMware虚拟机上添加两个网卡,两个网卡的模式都为NAT 模式
  3. NAT的DHCP信息(网关:192.168.35.2;可以用来做虚拟网卡IP为:192.168.35.100)

网卡绑定模式bond0_网卡做bond后一个网口不通「建议收藏」

以下是网卡绑定的三种实现方法

方法1:采用配置文件的形式

①,查看网卡信息

[root@n72-1 ~]# 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: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:8e:20:6a brd ff:ff:ff:ff:ff:ff
    inet6 fe80::4b4a:a99b:19d1:af65/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:8e:20:60 brd ff:ff:ff:ff:ff:ff
    inet 192.168.35.4/24 brd 192.168.35.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::7adb:4027:5923:105e/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

 两张网卡名分别为ens32,ens33

②,切换到配置文件目录

[root@n72-1 ~]# cd /etc/sysconfig/network-scripts/

③,配置ifcfg-bond0文件

[root@n72-1 network-scripts]# cat > ifcfg-bond0 <<EOF
> NAME=bond0
> TYPE=bond
> DEVICE=bond0
> BOOTPROTO=none
> IPADDR=192.168.35.200
> PREFIX=24
> BONDING-OPTS="mode=1 miimon=100"
> EOF

④,配置网卡ifcfg-ens32和ifcfg-ens33文件

[root@n72-1 network-scripts]# cat > ifcfg-ens32 <<EOF
> NAME=ens32
> DEVICE=ens32
> BOOTPROTO=none
> MASTER=bond0
> SLAVE=yes
> ONBOOT=yes
> EOF
[root@n72-1 network-scripts]# cat > ifcfg-ens33 <<EOF
> NAME=ens33
> DEVICE=ens33
> BOOTPROTO=none
> MASTER=bond0
> SLAVE=yes
> ONBOOT=yes
> EOF

⑤,重启网络服务,使配置生效

[root@n72-1 network-scripts]# nmcli connection reload
[root@n72-1 network-scripts]# nmcli connection up bond0
[root@n72-1 network-scripts]# nmcli connection up ens32
[root@n72-1 network-scripts]# nmcli connection up ens33
[root@n72-1 ~]# nmcli connection
NAME        UUID                                  TYPE      DEVICE
ens33       220e27bc-abdb-4680-ba58-b398d19c4b49  ethernet  ens33
bond0       ad33d8b0-1f7b-cab9-9447-ba07f855b143  bond      bond0
ens32       152beb06-47c5-c5e8-95a9-385590654382  ethernet  ens32
有线连接 1  bc626687-ee0b-3919-afa9-e3e6f66e712c  ethernet   --
[root@n72-1 ~]# 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: ens32: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:8e:20:6a brd ff:ff:ff:ff:ff:ff
3: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:8e:20:6a brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:8e:20:6a brd ff:ff:ff:ff:ff:ff
    inet 192.168.35.100/24 brd 192.168.35.255 scope global noprefixroute bond0
       valid_lft forever preferred_lft forever

⑥,查看bond0的相关信息

[root@n72-1 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens32
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens32
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:8e:20:6a
Slave queue ID: 0

Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:8e:20:60
Slave queue ID: 0

⑦,另外一台电脑验证网络配置情况

[root@rocky9-1 ~]# ping 192.168.35.100
64 bytes from 192.168.35.100: icmp_seq=172 ttl=64 time=1.08 ms
64 bytes from 192.168.35.100: icmp_seq=173 ttl=64 time=0.479 ms
64 bytes from 192.168.35.100: icmp_seq=174 ttl=64 time=0.837 ms
64 bytes from 192.168.35.100: icmp_seq=175 ttl=64 time=0.534 ms

方法2:用命令行的形式

①,配置mybond0

[root@n72-1 ~]# nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.35.100/24
连接 "mybond0" (f831a667-075e-4260-88d9-28d05a12aaa9) 已成功添加。
[root@n72-1 network-scripts]# ll ifcfg-mybond0
-rw-r--r--. 1 root root 361 12月  3 17:31 ifcfg-mybond0
[root@n72-1 network-scripts]# cat ifcfg-mybond0
BONDING_OPTS=mode=active-backup
TYPE=Bond
BONDING_MASTER=yes
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.35.100
PREFIX=24
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=mybond0
UUID=f831a667-075e-4260-88d9-28d05a12aaa9
DEVICE=bond0
ONBOOT=yes

②,将ens32和ens33网卡进行绑定

[root@n72-1 network-scripts]# nmcli con add type bond-slave ifname ens32 master bond0
连接 "bond-slave-ens32" (25db0d4f-aed8-471e-b736-fc8718241b5d) 已成功添加。
[root@n72-1 network-scripts]# nmcli con add type bond-slave ifname ens33 master bond0
连接 "bond-slave-ens33" (009c7033-7b3a-4db4-85db-2ad1b62a0a6a) 已成功添加。
[root@n72-1 network-scripts]# nmcli connection
NAME              UUID                                  TYPE      DEVICE
ens33             220e27bc-abdb-4680-ba58-b398d19c4b49  ethernet  ens33
mybond0           f831a667-075e-4260-88d9-28d05a12aaa9  bond      bond0
bond-slave-ens32  25db0d4f-aed8-471e-b736-fc8718241b5d  ethernet  ens32
bond-slave-ens33  009c7033-7b3a-4db4-85db-2ad1b62a0a6a  ethernet  --
有线连接 1        bc626687-ee0b-3919-afa9-e3e6f66e712c  ethernet  --

③,启动服务

[root@n72-1 network-scripts]# nmcli connection up bond-slave-ens32
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/36)
[root@n72-1 network-scripts]# nmcli connection up bond-slave-ens33
[root@n72-1 network-scripts]# nmcli connection up mybond0
连接已成功激活(master waiting for slaves)(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/38)

④,验证

[root@rocky9-1 ~]# ping 192.168.35.100
PING 192.168.35.100 (192.168.35.100) 56(84) bytes of data.
64 bytes from 192.168.35.100: icmp_seq=1 ttl=64 time=0.489 ms
64 bytes from 192.168.35.100: icmp_seq=2 ttl=64 time=0.565 ms

方法3:使用network teaming的方式

①,配置myteam0

[root@n72-1 ~]# nmcli con add type team con-name myteam0 ifname team0 config '{"runner":{"name":"activebackup"}}' ipv4.addresses 192.168.35.100/24 ipv4.method manual
连接 "myteam0" (2b7e2725-5296-4235-8c9a-52f77f21ca1c) 已成功添加。
[root@n72-1 ~]# nmcli con
NAME        UUID                                  TYPE      DEVICE
有线连接 1  bc626687-ee0b-3919-afa9-e3e6f66e712c  ethernet  ens32
ens33       220e27bc-abdb-4680-ba58-b398d19c4b49  ethernet  ens33
myteam0     2b7e2725-5296-4235-8c9a-52f77f21ca1c  team      team0

②,网卡绑定

[root@n72-1 ~]# nmcli con add con-name team0-ens32 type team-slave ifname ens32 master team0
连接 "team0-ens32" (7468ec53-a088-426d-9c07-49c3ef4289bf) 已成功添加。
[root@n72-1 ~]# nmcli con add con-name team0-ens33 type team-slave ifname ens33 master team0
连接 "team0-ens33" (d716a38b-25d8-48db-8758-cb9753803af7) 已成功添加。
[root@n72-1 ~]# nmcli con
NAME         UUID                                  TYPE      DEVICE
ens33        220e27bc-abdb-4680-ba58-b398d19c4b49  ethernet  ens33
myteam0      2b7e2725-5296-4235-8c9a-52f77f21ca1c  team      team0
team0-ens32  7468ec53-a088-426d-9c07-49c3ef4289bf  ethernet  ens32
team0-ens33  d716a38b-25d8-48db-8758-cb9753803af7  ethernet  --
有线连接 1   bc626687-ee0b-3919-afa9-e3e6f66e712c  ethernet  --

③,启动服务

[root@n72-1 ~]# nmcli con up team0-ens32
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/55)
[root@n72-1 ~]# nmcli con up team0-ens33
[root@n72-1 ~]# 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: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP group default qlen 1000
    link/ether 00:0c:29:8e:20:6a brd ff:ff:ff:ff:ff:ff
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP group default qlen 1000
    link/ether 00:0c:29:8e:20:6a brd ff:ff:ff:ff:ff:ff
6: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:8e:20:6a brd ff:ff:ff:ff:ff:ff
    inet 192.168.35.100/24 brd 192.168.35.255 scope global noprefixroute team0
       valid_lft forever preferred_lft forever
    inet6 fe80::458:a33b:94b5:3fc9/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

④,查看myteam0

[root@n72-1 ~]# teamdctl team0 state
setup:
  runner: activebackup
ports:
  ens32
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens33
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens32

⑤,验证

[root@rocky9-1 ~]# ping 192.168.35.100
PING 192.168.35.100 (192.168.35.100) 56(84) bytes of data.
64 bytes from 192.168.35.100: icmp_seq=1 ttl=64 time=0.626 ms
64 bytes from 192.168.35.100: icmp_seq=2 ttl=64 time=0.687 ms
64 bytes from 192.168.35.100: icmp_seq=3 ttl=64 time=0.536 ms

以上方法不能连外网,双网卡绑定的情况下,bond0或myteam0需要配置网关和dns为192.168.35.2

[root@n72-1 network-scripts]# nmcli con modify myteam0 ipv4.gateway 192.168.35.2 ipv4.dns 192.168.35.2
[root@n72-1 network-scripts]# nmcli con reload
[root@n72-1 network-scripts]# nmcli con up myteam0
连接已成功激活(master waiting for slaves)(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/57)
[root@n72-1 network-scripts]# ping baidu.com
PING baidu.com (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=1 ttl=128 time=58.1 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=2 ttl=128 time=57.3 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=3 ttl=128 time=63.5 ms

PS:如何在一个机子完整所有实验

1,实验之前给VMware虚拟机做个快照,每做完一个实验就恢复一次

2,删除所有刚才新生成的配置文件,然后手动编辑网卡配置文件

2,下边分享centos7、rocky9和Ubuntu22.04如何静态配置IP

2.1 给centos7配置静态ip

#centos7.9.2009配置静态网卡IP的办法
[root@n72 network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
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
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=4c273dd2-5a35-412b-954b-e66b4c13446c
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.88.128
PREFIX=24
GATEWAY=192.168.88.2
DNS1=114.114.114.114

2.2 给rocky9配置静态ip

#rocky9配置静态网卡IP的办法
[root@rocky9-1 ~]# cat /etc/NetworkManager/system-connections/ens160.nmconnection 
[connection]
id=ens160
uuid=6c9543f3-8629-393d-b891-e00da98a80a3
type=ethernet
autoconnect-priority=-999
interface-name=ens160

[ethernet]

[ipv4]
address1=192.168.35.150/24,192.168.35.2
dns=114.114.114.114
method=manual

[ipv6]
addr-gen-mode=eui64
method=auto

[proxy]

2.3 给Ubuntu22.04配置静态ip

#ubuntu 2204配置静态网卡IP的办法
root@ubuntu2202-1:~# cat /etc/netplan/00-installer-config.yaml 
# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      addresses:
      - 192.168.35.151/24
      gateway4: 192.168.35.2
      nameservers:
        addresses: [114.114.114.114,8.8.8.8]
        search: []
  version: 2

注意:yaml格式文件讲究一个格式一致,如果缩进对齐不对,yaml文件无效,会报错。

在双网卡实验中,如果没有涉及到对应配置文件的修改,那只需把绑定实验过程中配置的文件清除,然后重启网络服务,即可恢复原来的状态。

实验中网络层联通了,xshell才可以连虚拟机,网络层有三次握手和四次分手的概念。这里分享两个问题的理解:

1,为什么是三次握手,而不是两次或四次握手?

TCP/IP协议是可靠传输协议,确保双方都收到握手请求的确认。

2,为什么四次分手里面超时等待之后才关闭连接?

因为每个网络数据包可能会按照不同的网络路径进行传输,先发出去的不一定会先到目的地址,等待时间是尽最大可能来确保数据传输完成。

今天的文章网卡绑定模式bond0_网卡做bond后一个网口不通「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/83699.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注