Linux配置网络分组

实现方式

  • Bonding
  • 网络组Network Teaming

环境

OS selinux firewalld 网卡
CentOS7 关闭 关闭 eth0、eth1

Bonding

https://www.kernel.org/doc/Documentation/networking/bonding.txt

简介

Linux bonding驱动程序提供了一种用于将多个网络接口聚合为单个逻辑“绑定”接口的方法。 绑定接口的行为取决于模式。 一般来说,模式提供热备用或负载平衡服务。此外,可以执行链路完整性监视

工作模式

共7种(0-6)模式。默认是balance-rr(循环)

Mode0(balance-rr)循环策略:从第一个可用的从属设备到最后一个从属设备按顺序传输数据包。 此模式提供负载平衡和容错能力。

Mode1(active-backup)主动-备份策略:绑定中只有一个从属处于活动状态。当且仅当活动的从站发生故障时,其他从站才变为活动状态。绑定的MAC地址在外部仅在一个端口(网络适配器)上可见,以避免混淆交换机。

Mode2(balance-xor):为容错和负载平衡设置XOR(异或)策略。 使用此方法,接口会将传入请求的MAC地址与其中一个从NIC的MAC地址进行匹配。 一旦建立了链接,便从第一个可用接口开始依次发出传输。

Mode3(broadcast)广播策略:在所有从属接口上传输所有内容。 此模式提供容错能力。

Mode4(802.3ad):设置IEEE802.3ad动态链接聚合策略。创建共享相同速度和双工设置的聚合组。在活动聚合器中的所有从属上发送和接收。需要符合802.3ad要求的开关

Mode5(balance-tlb):设置传输负载平衡(TLB)策略以实现容错和负载平衡。 根据每个从接口上的当前负载分配传出流量。 当前从站接收到传入流量。 如果接收方从站发生故障,则另一个从站将接管发生故障的从站的MAC地址。

Mode6(balance-alb):设置和活动负载平衡(ALB)策略用于容错和负载平衡。 包括IPV4流量的发送和接收以及负载平衡。 通过ARP协商实现接收负载平衡

配置

通过nmcli命令实现

查看已添加的eth0、eth1网卡状态

[[email protected] ~]# nmcli dev status
DEVICE  TYPE      STATE         CONNECTION
eth0    ethernet  disconnected  --
eth1    ethernet  disconnected  --

1)使用主备(active-backup)模式添加bonding接口

[[email protected] ~]# nmcli con add type bond con-name bond01 ifname bond0 mode active-backup
Connection ‘bond01‘ (ca0305ce-110c-4411-a48e-5952a2c72716) successfully added.

2)添加slave接口

[[email protected] ~]# nmcli con add type bond-slave con-name bond01-slave0 ifname eth0 master bond0
Connection ‘bond01-slave0‘ (5dd5a90c-9a2f-4f1d-8fcc-c7f4b333e3d2) successfully added.
[[email protected] ~]# nmcli con add type bond-slave con-name bond01-slave1 ifname eth1 master bond0
Connection ‘bond01-slave1‘ (a8989d38-cc0b-4a4e-942d-3a2e1eb8f95b) successfully added.
注:如果不为slave接口提供连接名,则该名称是类型加接口名称构成

3)启动slave接口

[[email protected] ~]# nmcli con up bond01-slave0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14)
[[email protected] ~]# nmcli con up bond01-slave1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/15)

4)启动bond接口

[[email protected] ~]# nmcli con up bond01
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/16)

5)查看bond状态

[[email protected] ~]# 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: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:08:2a:73
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:08:2a:7d
Slave queue ID: 0
可以从上面的结果中发现当前active slave是eth0

6)测试
在另一台Linux主机ping本机的bond0接口ip,然后人为地断掉eth0网卡,看是否会发生主备切换
查看本机bond0接口ip

[[email protected] ~]# ip ad show dev bond0|sed -rn ‘3s#.* (.*)/24.*#\1#p‘
192.168.8.129

[[email protected] ~]# ping 192.168.8.129
PING 192.168.8.129 (192.168.8.129) 56(84) bytes of data.
64 bytes from 192.168.8.129: icmp_seq=1 ttl=64 time=0.600 ms
64 bytes from 192.168.8.129: icmp_seq=2 ttl=64 time=0.712 ms
64 bytes from 192.168.8.129: icmp_seq=3 ttl=64 time=2.20 ms
64 bytes from 192.168.8.129: icmp_seq=4 ttl=64 time=0.986 ms
64 bytes from 192.168.8.129: icmp_seq=7 ttl=64 time=0.432 ms
64 bytes from 192.168.8.129: icmp_seq=8 ttl=64 time=0.700 ms
64 bytes from 192.168.8.129: icmp_seq=9 ttl=64 time=0.571 ms
^C
--- 192.168.8.129 ping statistics ---
9 packets transmitted, 7 received, 22% packet loss, time 8679ms
rtt min/avg/max/mdev = 0.432/0.887/2.209/0.562 ms

在另一台主机ping的时候,断掉eth0网卡发现中间丢了两个包

[[email protected] ~]# 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: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 4
Permanent HW addr: 00:0c:29:08:2a:73
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: 00:0c:29:08:2a:7d
Slave queue ID: 0

查看当前的active slave是eth1,说明主备切换成功

MII Polling Interval (ms):指定(以毫秒为单位)MII链接监视发生的频率。如果需要高可用性,这很有用,因为MII用于验证NIC是否处于活动状态

nmcli命令配置完后自动生成的配置文件

[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# ls ifcfg-bond*
ifcfg-bond01  ifcfg-bond-slave-eth0  ifcfg-bond-slave-eth1

[[email protected] network-scripts]# cat ifcfg-bond01
BONDING_OPTS=mode=active-backup
TYPE=Bond
BONDING_MASTER=yes
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
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=bond01
UUID=e5369ad8-2b8b-4cc1-aca2-67562282a637
DEVICE=bond0
ONBOOT=yes

[[email protected] network-scripts]# cat ifcfg-bond-slave-eth0
TYPE=Ethernet
NAME=bond01-slave0
UUID=f6ed385e-e1ae-487d-b36a-43b13ac3f84f
DEVICE=eth0
ONBOOT=yes
MASTER_UUID=e5369ad8-2b8b-4cc1-aca2-67562282a637
MASTER=bond0
SLAVE=yes

bond01-slave1的配置文件和此文件基本一样

网络组Network Teaming

简介

  • network team以实现Linux服务器的高可用性
  • 链路聚合是将两个或多个网络接口组合为一个单元的过程。相对于旧版本bonding技术,team的两个主要优点如下:
    冗余:可提高网络可用性
    负载均衡:可提高网络效率
  • 网络组由内核驱动和teamd守护进程实现

Teaming的概念和术语

  • teamd:一个应用程序守护程序,它使用libteam库来实现负载平衡和循环逻辑。 它通过Unix域套接字监听和通信。
  • teamdctl:该实用程序用于控制使用D-bus的teamd的运行实例。 它可以在运行时用于读取配置,链接监视程序的状态,检查和更改端口的状态,添加和删除端口以及在活动状态和备份状态之间更改端口。
  • runners:单独的代码单元,可实现各种负载共享和备份方法所独有的功能,例如轮询。 用户在JSON格式配置文件中指定运行器,然后在创建实例时将代码编译为teamd实例。

Team运行模式

broadcast(广播):数据通过所有端口传输
active-backup(主动备份):使用一个端口或链接,而将其他端口或链接保留为备份
round-robin(轮询):数据依次在所有端口上传输
loadbalance(负载均衡):具有活动的Tx负载平衡和基于BPF的Tx端口选择器
lacp:实现802.3ad链路聚合控制协议

配置

通过nmcli命令实现

1)查看已添加的eth0、eth1网卡状态

[[email protected] ~]# nmcli dev status
DEVICE  TYPE      STATE         CONNECTION
eth0    ethernet  disconnected  --
eth1    ethernet  disconnected  --

2)使用主备(activebackup)模式添加名为team0的网络组接口

[[email protected] ~]# nmcli con add type team ifname team0 con-name team0 config ‘{"runner":{"name":"activebackup"}}‘
Connection ‘team0‘ (28b4e208-339f-4eb2-ae0f-6b07621e7685) successfully added.

3)添加从属网络到名为team0的网络组

[[email protected] ~]# nmcli con add type team-slave ifname eth0 con-name team0-slave0 master team0
Connection ‘team0-slave0‘ (3c1b3008-ebeb-4e2d-9790-30111f1e1271) successfully added.
[[email protected] ~]# nmcli con add type team-slave ifname eth1 con-name team0-slave1 master team0

4)启动网络组和从属网络

[[email protected] ~]# nmcli con up team0
[[email protected] ~]# nmcli con up team0-slave0
[[email protected] ~]# nmcli con up team0-slave1
[[email protected] ~]# nmcli dev status
DEVICE  TYPE      STATE      CONNECTION
team0   team      connected  team0
eth0    ethernet  connected  team0-slave0
eth1    ethernet  connected  team0-slave1 

5)查看网络组状态

[[email protected] ~]# teamdctl team0 state
setup:
  runner: activebackup
ports:
  eth0
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  eth1
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: eth0

6)测试

nmcli命令配置完后自动生成的配置文件

[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# ls ifcfg-team0*

[[email protected] network-scripts]# grep -v "^IPV6" ifcfg-team0
TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=team0
UUID=28b4e208-339f-4eb2-ae0f-6b07621e7685
DEVICE=team0
ONBOOT=yes
DEVICETYPE=Team

[[email protected] network-scripts]# cat ifcfg-team0-slave0
NAME=team0-slave0
UUID=3c1b3008-ebeb-4e2d-9790-30111f1e1271
DEVICE=eth0
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort

[[email protected] network-scripts]# cat ifcfg-team0-slave1
NAME=team0-slave1
DEVICE=eth1
ONBOOT=yes
TEAM_MASTER=team0

原文地址:https://blog.51cto.com/hexiaoshuai/2445637

时间: 2024-08-25 17:21:06

Linux配置网络分组的相关文章

linux配置网络快速入门

linux配置网络的方式很多,以下我从四个方向介绍网络的配置方式.从简单到难1 图形界面方式 永久生效2 伪图形界面方式 永久生效3 命令行方式 临时生效4 配置文件方式 永久生效图形界面方式使用nm-connection-editor命令开启图形界面 删除系统网卡添加新网卡,选择以太网选择eht0物理网卡,更改网卡名称为eht0 设置ip,netmask,gateway,选择save 添加网卡成功 查询eth0网卡ip ? 伪图形界面方式nmtui使用命令nmtui进入伪图形界面删除系统网卡添

记录第一次给linux配置网络,在虚拟机中连接真实网络

第一步,给linux设置ip相关信息.使用setup进入ip设置界面,在后面的界面中选Device configuration设置ip,在设置ip界面中use DHCP中的*改成空格,其他ip正常配置,一定要记得配置DNS,不然上不了互联网.配置完成后保存. 第二步,打开vi /etc/sysconfig/network-scripts/ifcfg-eth0(其实这这个文件中也可以完成ip配置,里面有IP.DNS配置修改),将onboot=no改成yes来激活网卡,保存后使用service ne

linux配置网络详细解析,上外网

备注:具体操作详细解析见:http://www.wtoutiao.com/a/2362248.html 简要步骤: 一.在虚拟机选择网桥模式: 二.配制网络,使虚拟机和主机,虚拟机和虚拟机之间能够网络互通: 1.使用setup工具进行配置: 2.或者选择编辑文本进行配置: vi /etc/sysconfig/network-scripts/ifcfg-eth0 service network restart; //配置完成后,需重启网络才能生效: [[email protected] ~]$ c

Linux配置网络YUM源

配置网络yum源 RHEL6.5 1 [[email protected] ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 2 3 [[email protected] ~]# sed -i 's/$releasever/6.8/g' /etc/yum.repos.d/CentOS-Base.repo 4 5 [[email protected] ~]# yum

Linux配置网络IP地址、网关和DNS

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. Linux命令行永久修改IP地址.网关和DNS. 1.修改IP地址 首先检查一下你的主机网卡数量及名称,相关信息在 /etc/sysconfig/network-scripts/ 下. 从图中可以看到我有2块网卡,第一块为以太网物理网卡,编号为0,如果你有多个网卡,则编号为0.1.2.3...:第二块网卡为回环网卡,一般不需要设置. 使用vim编辑你需要设置IP的网卡,这里我只能修改if

linux配置网络,但无法与主机ping通

刚刚新建的虚拟机,打算配置个静态ip,便于管理.但是配置好ip发现竟然不能互相ping通! 本次使用nat模式! [[email protected] Desktop]# ping 10.0.0.1 PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. From 10.0.0.2 icmp_seq=11 Destination Host Unreachable From 10.0.0.2 icmp_seq=12 Destination Host Unrea

Linux 配置网络

1.vi  /etc/sysconfig/network-scripts/ifcfg-eth0 2. # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]DEVICE=eth0BOOTPROTO=noneTYPE=etherHWADDR=00:0C:29:3F:41:F2IPADDR=192.168.1.10NETMASK=255.255.255.0#BROADCAST=192.168.1.255#NETWORK=GATEWAY=192.16

linux配置网络参数

命令方式:修改ip地址---即时生效:# ifconfig eth0 192.168.1.155 netmask 255.255.255.0 #ifconfig eth0 192.168.1.109#route add default gw 192.168.1.99 #echo "nameserver XXX.XXX.XXX.XXX" >> /etc.resolv.conf 在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth

Linux配置网络IP

vi /etc/sysconfig/network-scripts/ifcfg-eth0 ONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticsIPADDR=192.168.1.200NETMASK=255.255.255.0GATEWAY=192.168.1.2 DNS1=114.114.114.114 DNS2=8.8.8.8 原文地址:https://www.cnblogs.com/lixu349/p/9565513.html