linux下的高级网络配置(bond,team,网桥)

本文详细介绍了Linux系统下的网络接口绑定(bond)和团队(team)技术,以及网络桥接的基本原理和配置方法。涵盖了多种绑定模式,如轮循、主备、广播等,并演示了如何使用nmcli命令和配置文件进行设置。此外,还解析了桥接模式的工作机制,以及如何在物理机和虚拟机上实现网络桥接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.bond网络接口

         Bond 就是将多块网卡虚拟成为一块网卡的技术,通过 bond 技术让多块网卡看起来是一个单独的以太网接口设备并具有相同的 IP 地址  Red Hat Enterprise Linux 允许管理员使用,bonding内核模块和称为通道绑定接口的特殊网络接口将多个网络接口绑定到一个通道上。根据选择的绑定模式,通道绑定使两个或更多个网络接口作为一个网络接口,从而增加带宽,提供冗余性。

选择 Linux 以太网绑定模式

目前网卡绑定mode共有七种(0~6):bond0、bond、bond1、bond2、bond3、bond4、bond5、bond6

  • 模式 0 balance-rr ( 平衡轮循 ) - 轮循策略 , 网卡轮流接收数据包

  • 模式 1 active-backup ( 主动备份 ) - 容错。一次只能使用一个 Slave 接口, 但是如果该接口出现故障 , 另一个 Slave 将 接替它。本次实验中主要用该模式进行实验,正常情况下只有主网卡 eth0 工作,eth1 作为备份网卡是不工作的,只有当一个网络接口失效时 ( 例如主交换机掉电等 ),为了不会出现网络中断,系统会按照配置指定的网卡顺序启动工作,保证机器仍能对外服务,起到了失效保护的功能。

  • 模式 3 broadcast ( 广播 ) - 容错。所有封包都通过所有 Slave 接口广播

实验环境:至少有两块网卡的主机

1)添加双网卡

在物理机上执行virt-manager命令,再添加一块网卡eth1

点击左下角 add hardware--->选择添加network--->选择bridge br0--->选择virto--->finish

重新查看可以看出网卡配置成功

在该主机上ifconfig也可以看出网卡添加成功了

2)重新打开一个shell监控所配置的bond接口的状态

watch -n 1 cat /proc/net/bonding/bond0     //bond0当前的状态

bond网络接口的配置

1.nmcli命令方式配置bond接口

nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.181/24    ##建立一个bond连接

注:以上命令只是建立了bond,还没有添加真实的网卡设备,这时这个bond连接虽然有IP,但是实际上是不能用的。可以通过ping真机ip地址进行测试

检测之后发现网络是不通,因为此时并没有给bond添加网络接口

nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0       ##添加第一块eth0网卡作为bond网络接口

重新检测,可以发现网络是通的

nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0        ##添加第二块eth1网卡作为bond网络接口

监控shell查看bond0的状态可以看出当前eth0正在工作,eth1处于闲置状态。

ifconfig eth0 down                                                       #####断开eth0

检测网络是否通畅

这是由于我们建立的bonding工作在主备模式,关闭eth0后eth1立即工作,网络不受到影响

ifconfig eth0 up                ####重新开启eth0网络接口

此时的eth0将作为闲置网卡,一旦eth1损坏之后,eth0将会代替工作


2.配置文件方式配置bond接口

在/etc/sysconfig/network-scripts/目录下,编辑bond网络接口配置文件及网卡配置文件

vim ifcfg-bond0     ###编辑bond网络接口配置文件

vim ifcfg-eth0                                                                    #编辑eth0网卡配置文件

vim ifcfg-eth1                                                                    #编辑eth1网卡配置文件

systemctl  restart  network          ###重启网络服务

监控shell查看bond0的状态,可以发现配置是否成功。其他测试同上。

删除bond网络接口

nmcli connection delete eth0            ##删除连接eth0

nmcli connection delete eth1            ##删除连接eth1

nmcli connection delete bond0        ##删除bond0

二.team网络接口

什么是team

team是链路聚合的一种方式,最多支持8块网卡工作。

team 和 bond 功能类似,较bond的主要优点有三点:

  • team支持负载均衡模式
  • team支持hash加密
  • team有更强的扩展性,而bond对ipv6较弱

team支持四种工作模式:

    broadcast 广播容错 

    roundrobin 平衡轮循

    activebackup 主备

    loadbalance 负载均衡

team网络接口的配置

1.nmcli命令方式配置team接口

nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}' ip4 172.25.254.181/24        //新建team0接口

 

检测之后发现网络是不通,因为此时并没有给team添加网络接口

nmcli connection add con-name eth0 ifname eth0 type team-slave master team0               //设定eth0网卡作为team0网络接口

nmcli connection add con-name eth1 ifname eth1 type team-slave master team0 //设定eth1网卡作为team0网络接口,但此时活跃的是eth0,eth1作为备份

teamdctl   team0  stat  查看team0的状态   可以看出当前eth0正在工作,eth1处于闲置状态。

2.配置文件方式配置team接口

在/etc/sysconfig/network-scripts/目录下,编辑team网络接口配置文件及网卡配置文件

vim ifcfg-team0     ###编辑team网络接口配置文件

vim ifcfg-eth0                                                                    #编辑eth0网卡配置文件

vim ifcfg-eth1                                                                    #编辑eth1网卡配置文件

systemctl  restart  network          ###重启网络服务

查看team0的状态,可以发现配置是否成功。

查看连接是否成功

删除team网络接口

nmcli connection delete team0                                                  #删除team网络接口team0

nmcli connection delete eth0                                                      #删除网络接口eth0

nmcli connection delete eth1                                                      #删除网络接口eth1

三.网络桥接

虚拟机的网络连接提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。

1.bridged模式:当虚拟机系统的网络连接模式为桥接模式时,相当于在主机系统和虚拟机系统之间连接了一个网桥,而网桥两端的网络都属于同一网络,主机和虚拟机是处于同一网络中的对等主机。使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。

如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式

2.NAT模式:NAT即Network Address Translation,网络地址转换是虚拟专用网和全球IP地址之间的转换,虚拟专用网是企业,政府部门的内部网络,在虚拟专用网中主机的IP地址是虚 拟专用地址,它不能被互联网中的路由器所识别,因此,在企业接入互联网的默认网关(接入路由器)中,需要地址转换NAT软件使得虚拟专用网内部的主机可以 连接到互联网。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。

 

3.host-only模式在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。

注:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。

什么是网络桥接模式

        桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。

网络桥接模式的功能

        在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚 拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式 下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致。

配置网络桥接

实验环境:物理机

实验准备:

备份网络配置文件:  cp  ifcfg-br0 ifcfg-enp2s0   /opt

手动删除所有ethernet、wifi所有的选项以及系统原有的bridge    nm-connection-editor

配置过程

vim ifcfg-enp2s0            ###编辑网卡配置文件,enp2s0为物理网卡

文件内容:

vim ifcfg-br0        ###编辑桥接配置文件

文件内容:

systemctl restart network      ####重启网络

brctl show    ####查看桥接接口是否存在

检测网络桥接的影响:
安装2个虚拟机(一种网络连接设置为bridge方式;另一种网络连接设置为NAT方式)
同时执行命令ping 172.25.254.74,比较两者的时间;(网桥连接的网络连接较快)

临时桥接接口配置

实验环境:虚拟机

brctl show    ###查看是否存在有桥接接口

新建桥接接口:

brctl addbr br0   ###建立桥接接口br0

brctl show    ###查看桥接接口是否建立成功

ifconfig br0 172.25.254.181/24    ###配置br0

ping 172.25.254.81        ###查看网络是否通畅,由于br0是没有网络接口的,所以ping不通

配置桥接接口的网卡信息:

brctl addif br0 eth0    ###添加桥接接口的网卡

ping 172.25.254.81    ####检测网络是否通

注:若是reboot之后,该桥接临时设置会失效

删除桥接接口:

ifconfig br0 down        ###停止桥接接口工作

brctl delif br0 eth0     ####删除桥接接口的网卡

brctl delbr br0           ####删除桥接接口

 

 

### Linux 系统中用于网络配置的所有命令列表 以下是 Linux 系统中常用的网络配置相关命令,涵盖网络状态查询、网卡配置、路由设置、DNS 配置等多个方面: #### 一、网络状态查询 1. **`ifconfig`** 用于查看或配置网络接口的状态,包括 IP 地址、子网掩码等信息。可以临时修改网卡的 IP 地址和子网掩码[^3]。 ```bash ifconfig eth0 ``` 2. **`ip`** 替代 `ifconfig` 的现代工具,功能更强大且支持 IPv6。可用于显示或配置网络设备、地址、路由等信息[^3]。 ```bash ip addr show ip route show ``` 3. **`netstat`** 显示网络连接、路由表、接口统计信息等内容。常用选项包括 `-tuln` 查看监听端口等。 ```bash netstat -tuln ``` 4. **`ss`** 替代 `netstat` 的工具,提供更快的性能和更丰富的功能。可以查看套接字统计信息[^3]。 ```bash ss -tuln ``` 5. **`nmcli`** NetworkManager 的命令行工具,用于管理网络连接,支持有线、无线和移动网络的配置。 ```bash nmcli device status ``` 6. **`ping`** 测试主机之间的连通性,发送 ICMP 回显请求并接收响应[^2]。 ```bash ping -c 4 example.com ``` 7. **`traceroute`** 显示数据包到达目标主机所经过的路由节点[^2]。 ```bash traceroute example.com ``` 8. **`arp`** 显示或操作 ARP 缓存中的条目,用于查看局域网内 MAC 地址与 IP 地址的映射关系[^3]。 ```bash arp -a ``` 9. **`route`** 显示或操作内核路由表,用于配置静态路由。 ```bash route -n ``` #### 二、网卡配置 1. **`ifup` 和 `ifdown`** 启用或禁用指定的网络接口。 ```bash ifup eth0 ifdown eth0 ``` 2. **`ethtool`** 显示或更改以太网设备的设置,如速度、双工模式等。 ```bash ethtool eth0 ``` #### 三、DNS 配置 1. **`dig`** 查询 DNS 服务器以获取域名解析信息[^3]。 ```bash dig example.com ``` 2. **`nslookup`** 查询 DNS 服务器以获取域名对应的 IP 地址。 ```bash nslookup example.com ``` 3. **`host`** 简单的 DNS 查询工具,用于将主机名解析为 IP 地址或反之[^3]。 ```bash host example.com ``` #### 四、网络文件配置 1. **`/etc/hosts`** 配置本地主机名解析规则,优先于 DNS 解析。 ```bash cat /etc/hosts ``` 2. **`/etc/resolv.conf`** 配置 DNS 服务器地址,用于域名解析[^3]。 ```bash cat /etc/resolv.conf ``` 3. **`/etc/network/interfaces`**(Debian/Ubuntu) 配置网络接口的静态或动态 IP 地址。 ```bash cat /etc/network/interfaces ``` 4. **`/etc/sysconfig/network-scripts/ifcfg-eth0`**(Red Hat/CentOS) 配置网卡的 IP 地址、子网掩码、网关等信息。 ```bash cat /etc/sysconfig/network-scripts/ifcfg-eth0 ``` #### 五、高级网络配置 1. **`bonding`** 配置多网卡绑定(Bonding),提高带宽或实现冗余[^3]。 ```bash cat /proc/net/bonding/bond0 ``` 2. **`bridge-utils`** 配置网桥,用于虚拟化环境中的网络桥接。 ```bash brctl show ``` 3. **`teamd`** 替代传统 Bonding 的工具,提供更灵活的网络团队配置[^3]。 ```bash teamdctl team0 state ``` #### 六、系统监控工具 1. **`glances`** 实时监控系统资源使用情况,包括 CPU、内存、网络等信息[^4]。 ```bash glances -b ``` 2. **`vmstat`** 显示虚拟内存统计信息,包括 CPU 使用率、内存使用情况等[^4]。 ```bash vmstat -s ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值