linux网络管理(链路聚合、桥接网络、故障排查、常用工具)

bond的常用的2种模式:

  • bond0(balance-rr)

  • bond0用于负载轮询(2个网单独都是100MB,聚合为1个网络传输带宽为200MB)

  • bond1(active-backup)

  • bond1用于高可用,其中一条线若断线,其他线路将会自动备援

–> eth0 ----\

app --发送数据到–> bond0 <—> switch

–> eth1 ----/

桥接网络

桥接网络也即网桥,可基于MAC地址在网络间转发流量。网桥识别哪些主机连接到每个网络,构建MAC地址表,然后根据该表做出包转发决策。

软件网桥的最常见应用是在虚拟化应用程序中,用于在一个或多个虚拟NIC中共享一个硬件NIC。

链路聚合配置

Centos7/RHEL7配置bond聚合链路
Centos7/RHEL7配置bond0

准备两块网卡做链路聚合,其中ens33用来做远程连接的,实际上只有两块网卡

查看网络状态:

[root@localhost ~]# nmcli dev

设备 类型 状态 连接

ens38 ethernet 已断开 –

ens39 ethernet 已断开 –

ens33 ethernet 未托管 –

lo loopback 未托管 –

//创建bond0, 模式为balance-rr

[root@localhost ~]# nmcli connection add type bond mode balance-rr con-name bond0 ifname bond0 ipv4.method manual ipv4.addresses 192.168.100.68/24 ipv4.gateway 192.168.100.254 ipv4.dns 192.168.100.254

连接“bond0”(ae91ade2-b034-4e7a-84c0-b1992e96fc3b) 已成功添加。 //bond0已经添加

注释:

nmcli con add // 添加nmcli连接

type bond //类型为bond

mode balance-rr //模式为balance-rr(负载均衡)

con-name bond0 // 连接的名字为bond0

ifname bond0 //进来的网卡的名字bond0

ipv4.method manual //ipv4的方法为手动

ipv4.addresses 192.168.100.68/24 //ip地址为

ipv4.gateway 192.168.100.254 //网关为

ipv4.dns 192.168.100.254 //dns为

[root@localhost ~]# nmcli dev //查看状态bond0已连接

设备 类型 状态 连接

bond0 bond 连接的 bond0

ens38 ethernet 已断开 –

ens39 ethernet 已断开 –

ens33 ethernet 未托管 –

lo loopback 未托管 –

//添加物理网卡连接至bond0

[root@localhost ~]# nmcli connection add type bond-slave con-name bond-slave0 ifname ens38 master bond0

连接“bond-slave0”(dc02bacd-e9da-4f32-bf9d-1fc7994d88f9) 已成功添加。

[root@localhost ~]# nmcli connection add type bond-slave con-name bond-slave0 ifname ens39 master bond0

连接“bond-slave0”(da5a39cf-0c22-458f-b299-98f7fcd94950) 已成功添加。

注释:

nmcli connection add //添加nmcli连接

type bond-slave //类型为bond-slave

con-name bond-slave0 //连接的名字为bond-slave0

ifname ens38 //网卡的名字为ens38

master bond0 //添加到bond0里面去

查看状态

[root@localhost network-scripts]# nmcli de

设备 类型 状态 连接

bond0 bond 连接的 bond0

ens38 ethernet 连接的 bond-slave0

ens39 ethernet 连接的 bond-slave1

ens33 ethernet 未托管 –

lo loopback 未托管 –

//启用连接

[root@localhost network-scripts]# nmcli con up bond0

成功激活(主服务器等待从服务器)连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/10)

[root@localhost network-scripts]# nmcli con up bond-slave0

连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/13)

[root@localhost network-scripts]# nmcli con up bond-slave1

连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/14)

[root@localhost network-scripts]#

//验证

查看bond的配置信息

[root@localhost network-scripts]# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: ens38 //ens38为开启状态

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:0f:a6:6a

Slave queue ID: 0

Slave Interface: ens39 //ens39也是开启状态

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:0f:a6:74

Slave queue ID: 0

//将ens38 down掉(断开)

[root@localhost ~]# nmcli device discon ens38

成功断开设备 ‘ens38’。

//网络状态中ens38已断开

[root@localhost ~]# nmcli dev

设备 类型 状态 连接

bond0 bond 连接的 bond0

ens39 ethernet 连接的 bond-slave1

ens38 ethernet 已断开 –

ens33 ethernet 未托管 –

lo loopback 未托管 –

//再次bond的配置信息

[root@localhost ~]# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: ens39 //ens38已经没了,只有ens39

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:0f:a6:74

Slave queue ID: 0

[root@localhost ~]#

//把ens38启动

[root@localhost ~]# nmcli dev con ens38

成功用 ‘ens38’ 激活了设备 ‘b6b4a54b-1a63-426d-a59a-c03a06231b68’。

//查看网络状态ens38已连接

[root@localhost ~]# nmcli dev

设备 类型 状态 连接

bond0 bond 连接的 bond0

ens38 ethernet 连接的 bond-slave0

ens39 ethernet 连接的 bond-slave1

//查看bond的配置信息

[root@localhost ~]# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: ens39 //ens39还在

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:0f:a6:74

Slave queue ID: 0

Slave Interface: ens38 //ens38已经起来了

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:0f:a6:6a

Slave queue ID: 0

Centos7/RHEL7配置bond1

//添加bond1模式为active-backup(高可用)

[root@localhost ~]# nmcli con add type bond mode active-backup con-name bond1 ifname bond1 ipv4.method manual ipv4.addresses 192.168.100.96/24 ipv4.gateway 192.168.100.254 ipv4.dns 192.168.100.254

连接“bond1”(fbf28be4-3db2-460c-9699-c7fce1f982e2) 已成功添加。

查看网络状态

[root@localhost ~]# nmcli dev

设备 类型 状态 连接

bond1 bond 连接的 bond1 //bond1已连接

ens38 ethernet 已断开 –

ens39 ethernet 已断开 –

ens33 ethernet 未托管 –

lo loopback 未托管 –

//添加物理网卡连接至bond1

[root@localhost ~]# nmcli con add type bond-slave con-name bond-a ifname ens38 master bond1 //添加ens38至bond1,连接的名字bond-a(配置文件的name) 网卡的名字ens38(配置文件的device)

连接“bond-a”(c528b036-8c9f-4459-8ab7-5604306a18e5) 已成功添加。

[root@localhost ~]# nmcli dev

设备 类型 状态 连接

bond1 bond 连接的 bond1

ens38 ethernet 连接的 bond-a

ens39 ethernet 已断开 –

ens33 ethernet 未托管 –

lo loopback 未托管 –

[root@localhost network-scripts]# nmcli con add type bond-slave con-name ens39 ifname ens39 master bond1 //添加ens39至bond1,类型为bond-slave,链接名字ens39,网卡名字ens39

连接“ens39”(f721d815-1a04-483d-a38d-4deaee156611) 已成功添加。

[root@localhost network-scripts]# nmcli dev

设备 类型 状态 连接

bond1 bond 连接的 bond1

ens38 ethernet 连接的 bond-a

ens39 ethernet 连接的 ens39

ens33 ethernet 未托管 –

lo loopback 未托管 –

//激活链接:

[root@localhost ~]# nmcli con up bond1

成功激活(主服务器等待从服务器)连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/4)

[root@localhost ~]# nmcli con up bond-a

连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)

[root@localhost ~]# nmcli con up ens39

连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/8)

//验证:

查看bond的配置信息 cat /proc/net/bonding/bond1

[root@localhost ~]# cat /proc/net/bonding/bond1

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)

Primary Slave: None

Currently Active Slave: ens38 //当前活动的是ens38

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: ens38

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:0f:a6:6a

Slave queue ID: 0

Slave Interface: ens39

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:0f:a6:74

Slave queue ID: 0

//down掉ens38

[root@localhost ~]# nmcli dev discon ens38

成功断开设备 ‘ens38’。

[root@localhost ~]# nmcli dev

设备 类型 状态 连接

bond1 bond 连接的 bond1

ens39 ethernet 连接的 ens39

ens38 ethernet 已断开 –

ens33 ethernet 未托管 –

lo loopback 未托管 –

//再次查看bond配置文件信息

[root@localhost ~]# cat /proc/net/bonding/bond1

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)

Primary Slave: None

Currently Active Slave: ens39 //当前活跃的是ens39这块网卡

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: ens39 //而ens38这块网卡断掉后信息就没了

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:0f:a6:74

Slave queue ID: 0

//再次启用ens38这块网卡的链接

[root@localhost ~]# nmcli con up bond-a

连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/9)

[root@localhost ~]# nmcli dev

设备 类型 状态 连接

bond1 bond 连接的 bond1

ens38 ethernet 连接的 bond-a

ens39 ethernet 连接的 ens39

ens33 ethernet 未托管 –

lo loopback 未托管 –

//再次查看bond的配置信息

[root@localhost ~]# cat /proc/net/bonding/bond1

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)

Primary Slave: None

Currently Active Slave: ens39 //ens39是活跃的

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: ens39

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:0f:a6:74

Slave queue ID: 0

Slave Interface: ens38 //ens38回来了

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:0f:a6:6a

Slave queue ID: 0

Centos6/RHEL6配置bond聚合链路

适用于RedHat6以及CentOS6

| 系统 | 网卡 | bond地址 | bond模式 | bond功能 |

| :-- | :-- | :-- | :-- | :-- |

| Centos6.5 | eth0: 172.16.12.128 eth1: 172.16.12.129 | 172.16.12.250 | 模式0 | 负载均衡 |

//1.创建绑定网卡配置文件

[root@wyh ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

TYPE=Ethernet

ONBOOT=yes

USERCTL=no

BOOTPROTO=static

IPADDR=172.16.12.250

NETMASK=255.255.255.0

GATEWAY=172.16.12.2

DNS1=172.16.12.2

BONDING_OPTS=“mode=0 miimon=50” //如果使用模式1将mode修改为1即可

//2.修改eth0和eth1网卡配置文件

[root@wyh ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

USERCTL=no

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

[root@wyh ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

TYPE=Ethernet

ONBOOT=yes

USERCTL=no

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

//3.添加驱动支持bond0

[root@wyh ~]# vim /etc/modprobe.d/bonding.conf

alias bond0 bonding

Centos7/RHEL7配置team聚合链路

centos/rhce7使用teaming实现聚合链路,能够提供网卡绑定之后的网络吞吐性能,并且提供网卡的故障切换处理能力。

Team是基于一个小型内核驱动实现聚合链路,在用户层提供teamd命令实现链路管理。

teamd可以实现以下模式的聚合链路

broadcast 广播容错

roundrobin 负载轮询

activebackup 主备(必考)

loadbalance 负载均衡

lacp 需要交换机支持lacp协议

//创建team0:

[root@localhost ~]# nmcli con add type team con-name team0 ifname team0 config ‘{“runner”:{“name”:“activebackup”}}’ ipv4.addresses 192.168.100.250/24 ipv4.gateway 192.168.100.254 ipv4.dns 114.114.114.114 ipv4.method manual

连接“team0”(cae0a7dc-c9db-473b-bf5d-b6a9de8ade1b) 已成功添加。

//将物理网卡加入team0中:

[root@localhost ~]# nmcli con add type team-slave con-name ens38 ifname ens38 master team0

连接“ens38”(5e38d849-9783-445e-9498-35ba76c947fa) 已成功添加。

[root@localhost ~]# nmcli con add type team-slave con-name ens39 ifname ens39 master team0

连接“ens39”(3e5af9e6-a9b3-41ea-afeb-2c8180fecf90) 已成功添加。

[root@localhost ~]# nmcli dev

设备 类型 状态 连接

ens38 ethernet 连接的 ens38

ens39 ethernet 连接的 ens39

team0 team 连接的 team0

ens33 ethernet 未托管 –

lo loopback 未托管 –

//将其中一块网卡断掉后测试:

[root@localhost ~]# nmcli dev discon ens39

成功断开设备 ‘ens39’。

[root@localhost ~]# teamdctl team0 state

setup:

runner: activebackup //高可用模式

ports:

ens38

link watches:

link summary: up

instance[link_watch_0]:

name: ethtool

link: up

down count: 0

runner:

active port: ens38 //正在使用的是ens38

//把ens39网卡起来,然后查看team0的配置信息

[root@localhost ~]# nmcli dev con ens39

成功用 ‘ens39’ 激活了设备 ‘3e5af9e6-a9b3-41ea-afeb-2c8180fecf90’。

[root@localhost ~]# teamdctl team0 state

setup:

runner: activebackup //使用的是高可用模式

ports:

ens38

link watches:

link summary: up

instance[link_watch_0]:

name: ethtool

link: up

down count: 0

ens39 //起来了ens39

link watches:

link summary: up

instance[link_watch_0]:

name: ethtool

link: up

down count: 0

runner:

active port: ens38 //目前用的还是ens38

动态修改team模式

// 导出配置进行修改 (man teamd.conf)

[root@wangqing ~]# teamdctl team0 config dump > /tmp/team.conf

[root@wangqing ~]# vim /tmp/team.conf

{

“device”: “team0”,

“hwaddr”: “1A:E1:49:D1:02:AF”,

“mcast_rejoin”: {

“count”: 1

},

“notify_peers”: {

“count”: 1

},

“ports”: {

“ens38”: {

“link_watch”: {

“name”: “ethtool”

}

},

“ens39”: {

“link_watch”: {

“name”: “ethtool”

}

}

},

“runner”: {

“name”: “loadbalance”, //此处将avtivebackup改为loadbalance

“tx_hash”: [

“eth”,

“ipv4”,

“ipv6”

]

}

}

//以最新修改的配置选项修改team0属性

[root@wyh ~]# nmcli con mod team0 team.config /tmp/team.conf

//修改之后需要重启team0

[root@wyh ~]# nmcli connection down team0;nmcli connection up team0

[root@wyh ~]# nmcli connection up ens38

[root@wyh ~]# nmcli connection up ens39

[root@localhost ~]# teamdctl team0 stat

setup:

runner: loadbalance //现在使用的是loadbalance负载均衡模式

ports:

ens38

link watches:

link summary: up

instance[link_watch_0]:

name: ethtool

link: up

down count: 0

ens39

link watches:

link summary: up

instance[link_watch_0]:

name: ethtool

link: up

down count: 0

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
d team0 team.config /tmp/team.conf

//修改之后需要重启team0

[root@wyh ~]# nmcli connection down team0;nmcli connection up team0

[root@wyh ~]# nmcli connection up ens38

[root@wyh ~]# nmcli connection up ens39

[root@localhost ~]# teamdctl team0 stat

setup:

runner: loadbalance //现在使用的是loadbalance负载均衡模式

ports:

ens38

link watches:

link summary: up

instance[link_watch_0]:

name: ethtool

link: up

down count: 0

ens39

link watches:

link summary: up

instance[link_watch_0]:

name: ethtool

link: up

down count: 0

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-bNzrrXg2-1715825174341)]

[外链图片转存中…(img-xqCi3dS2-1715825174342)]

[外链图片转存中…(img-x12z3Wnj-1715825174342)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值