CentOS6系统下如何实现双网卡绑定同一IP详解-创新互联

下文给大家带来CentOS6系统下如何实现双网卡绑定同一IP详解,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用创新互联在行业内累计的经验来做一个解答。

创新互联建站-专业网站定制、快速模板网站建设、高性价比金牛网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式金牛网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖金牛地区。费用合理售后完善,10年实体公司更值得信赖。

前几天刚给大家分享过CentOS6系统下如何实现双网卡绑定同一IP以达到网络负载均衡以及高可用性。很多人肯定也在想,在CentOS7系统下如何实现了,那么今天就给大家大家分享一下如何使用CentOS7系统的网络组来实现同样的效果了。网络组是将多个网卡聚合在一起,从而实现冗错和提高吞吐量的一种技术手段,但它不同于旧版中bonding技术,提供更好的性能和扩展性,网络组由内核驱动和teamd守护进程实现。接下来就给大家展示一下如何实现。

CentOS6系统下如何实现双网卡绑定同一IP详解

交换机设备:两台支持动态链聚合功能的交换机或者一台普通交换机

网卡设备:两张网卡

操作操作:Centos7.2

broadcast — Simple runner which directs the team device to transmit packets via all ports.

roundrobin — Simple runner which directs the team device to transmits packets in a round-robin fashion.

activebackup — Watches for link changes and selects active port to be used for data transfers.

loadbalance — To do passive load balancing, runner only sets up BPF hash function which will  determine

       port for packet transmit. To do active load balancing, runner moves hashes among available ports trying

       to reach perfect balance.

lacp — Implements 802.3ad LACP protocol. Can use same Tx port selection  possibilities  as  loadbalance

       runner.

第一步:创建网络组文件team0

nmcli con add type team con-name team0 config '{"runner":{"name":"activebackup","hwaddr_policy":"by_active"}}'

[root@centos7 network-scripts]# nmcli dev status

DEVICE    TYPE    STATE    CONNECTION

virbr0    bridge   connected  virbr0

eno16777728  ethernet  connected  eno16777728

eno33554960  ethernet  connected  Wired connection 1

virbr0-nic  tap    connected  virbr0-nic

lo      loopback  unmanaged  --

[root@centos7 network-scripts]# nmcli con add type team con-name team0 config '{"runner":{"name":"activebackup","hwaddr_policy":"by_active"}}'

Connection 'team0' (527769ff-02de-411c-9b26-2725a74cd6e9) successfully added.

[root@centos7 network-scripts]#

我这里创建的是活动-备份策略,但我这里额外指定了一个"hwaddr_policy":"by_active",我也看过很多博主都写过这个活动备份策略,但从来没看到有人指出过这个选项,事实上要想得到双网卡其中之一故障热替换,不添加这个选项是实现不了的。所以能看到本人博文的同仁们,你们是幸福的(因为本人研究这个选项花了一天半的时间才得出这个结论)

第二步:给team0配置静态IP以及网关,开机自启动

[root@centos7 network-scripts]# nmcli con mod team0 connection.autoconnect yes ipv4.method manual ipv4.addresses "10.1.254.254/16" ipv4.gateway "10.1.0.1"

[root@centos7 network-scripts]# cat ifcfg-team0

nmcli的配置会在/etc/sysconfig/network-scripts下面生产配置文件ifcfg-team*文件,可以直接查看配置结果

[root@centos7 network-scripts]# cat ifcfg-team0

DEVICE=team0

TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\",\"hwaddr_policy\":\"by_active\"}}"

DEVICETYPE=Team

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

NAME=team0

UUID=c1726372-479f-4ebe-aa12-7e76d702ddd0

ONBOOT=yes

IPADDR=10.1.254.254

PREFIX=16

GATEWAY=10.1.0.1

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

[root@centos7 network-scripts]#

CentOS6系统下如何实现双网卡绑定同一IP详解

第三步:为team0创建两个端口文件

nmcli con add type team-slave con-name team0-port# ifname eno######## master team0

创建port1文件

[root@centos7 network-scripts]# nmcli con add type team-slave con-name team0-port1 ifname eno16777728 master team0

Connection 'team0-port1' (a88c6e0c-5f0c-4d24-a285-2089f7a6e68b) successfully added.

创建port2文件

[root@centos7 network-scripts]# nmcli con add type team-slave con-name team0-port2 ifname eno33554960 master team0

Connection 'team0-port2' (a103239b-0980-4e63-a465-bc90a8b0958b) successfully added.

[root@centos7 network-scripts]#

第四步:启动网络组 nmcli con up team#

nmcli con up team0——>nmcli con up team0-port1——>nmcli con up team0-port2

[root@centos7 network-scripts]# nmcli con up team0

[root@centos7 network-scripts]# nmcli con up team0

Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)

[root@centos7 network-scripts]# nmcli con up team0-port1

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)

[root@centos7 network-scripts]# nmcli con up team0-port2

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

[root@centos7 network-scripts]#

第五步:查看配置后的最终效果

查看网络组的当前运行状态

[root@centos7 Desktop]# teamdctl team0 state

setup:

 runner: activebackup

ports:

 eno16777728

  link watches:

   link summary: up

   instance[link_watch_0]:

    name: ethtool

    link: up

    down count: 0

 eno33554960

  link watches:

   link summary: up

   instance[link_watch_0]:

    name: ethtool

    link: up

    down count: 0

runner:

 active port: eno16777728

[root@centos7 Desktop]# ifconfig

查看网卡的配置详情

[root@centos7 Desktop]# ifconfig

eno16777728: flags=4163  mtu 1500

    ether 00:0c:29:06:f9:87  txqueuelen 1000  (Ethernet)

    RX packets 1463  bytes 105137 (102.6 KiB)

    RX errors 0  dropped 121  overruns 0  frame 0

    TX packets 79  bytes 5744 (5.6 KiB)

    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno33554960: flags=4163  mtu 1500

    ether 00:0c:29:06:f9:91  txqueuelen 1000  (Ethernet)

    RX packets 1510  bytes 108863 (106.3 KiB)

    RX errors 0  dropped 126  overruns 0  frame 0

    TX packets 214  bytes 17571 (17.1 KiB)

    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536

    inet 127.0.0.1  netmask 255.0.0.0

    inet6 ::1  prefixlen 128  scopeid 0x10

    loop  txqueuelen 0  (Local Loopback)

    RX packets 16  bytes 1072 (1.0 KiB)

    RX errors 0  dropped 0  overruns 0  frame 0

    TX packets 16  bytes 1072 (1.0 KiB)

    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

team0: flags=4163  mtu 1500

    inet 10.1.254.254  netmask 255.255.0.0  broadcast 10.1.255.255

    inet6 fe80::20c:29ff:fe06:f991  prefixlen 64  scopeid 0x20

    ether 00:0c:29:06:f9:87  txqueuelen 0  (Ethernet)

    RX packets 2000  bytes 117274 (114.5 KiB)

    RX errors 0  dropped 247  overruns 0  frame 0

    TX packets 293  bytes 22841 (22.3 KiB)

    TX errors 0  dropped 3 overruns 0  carrier 0  collisions 0

virbr0: flags=4099  mtu 1500

    inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

    ether 52:54:00:3a:39:12  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

[root@centos7 Desktop]#

第六步:随意禁用其中一块网卡,测试网络是否具有高可用性

禁用port1(网卡一),查看ping的过程中是否丢包(正常情况下会丢3-4包)

[root@centos7 network-scripts]# nmcli dev dis eno16777728

Device 'eno16777728' successfully disconnected.

[root@centos7 network-scripts]# teamdctl team0 state

setup:

 runner: activebackup

ports:

 eno33554960

  link watches:

   link summary: up

   instance[link_watch_0]:

    name: ethtool

    link: up

    down count: 0

runner:

 active port: eno33554960

[root@centos7 network-scripts]#

启用port1,禁用port2(网卡二),继续观察ping的过程(正常情况下会丢3-4包)

[root@centos7 network-scripts]# nmcli con up team0-port1

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/11)

[root@centos7 network-scripts]# nmcli dev dis eno33554960

Device 'eno33554960' successfully disconnected.

[root@centos7 network-scripts]# teamdctl team0 state

setup:

 runner: activebackup

ports:

 eno16777728

  link watches:

   link summary: up

   instance[link_watch_0]:

    name: ethtool

    link: up

    down count: 0

runner:

 active port: eno16777728

[root@centos7 network-scripts]#

第七步:如果要想更改用其它策略,直接去修改一下ifcfg-team0文件最为简单(注意TEAM_CONFIG=...一行的改变)

[root@centos7 network-scripts]# cat ifcfg-team0

DEVICE=team0

TEAM_CONFIG="{\"runner\":{\"name\":\"roundrobin\"}}"

DEVICETYPE=Team

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

NAME=team0

UUID=c1726372-479f-4ebe-aa12-7e76d702ddd0

ONBOOT=yes

IPADDR=10.1.254.254

PREFIX=16

GATEWAY=10.1.0.1

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

[root@centos7 network-scripts]#

禁用网卡一——>禁用网卡二——>关闭team0连接——>重新启用team0——>启用port1——>启用port2

查看更改后的效果(这里修改成了roundrobin轮转策略,需要两张网卡分别接在两台支持动态链聚合的交换机上才能体验得出来轮转的效果,虚拟机是无法验证的)

[root@centos7 network-scripts]# teamdctl team0 state

setup:

 runner: roundrobin

ports:

 eno16777728

  link watches:

   link summary: up

   instance[link_watch_0]:

    name: ethtool

    link: up

    down count: 0

 eno33554960

  link watches:

   link summary: up

   instance[link_watch_0]:

    name: ethtool

    link: up

    down count: 0

[root@centos7 network-scripts]#

  启动网络组接口不会自动启动网络组中的port接口

  启动网络组接口中的port接口不会自动启动网络组接口

  禁用网络组接口会自动禁用网络组中的port接口

  没有port接口的网络组接口可以启动静态IP连接

  启用DHCP连接时,没有port接口的网络组会等待port接口的加入

看了以上关于CentOS6系统下如何实现双网卡绑定同一IP详解,如果大家还有什么地方需要了解的可以在创新互联行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,创新互联技术工程师在行业内拥有十几年的经验了。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:CentOS6系统下如何实现双网卡绑定同一IP详解-创新互联
分享链接:http://pwwzsj.com/article/psogg.html