网桥
桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网
口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互
相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来
的。与网桥相连的主机就能通过交换机的报文转发而互相通信。
Linux网桥百度百科解释
Linux网桥是一种以同种协议连接两个局域网的产品。可以把它看成是一个决定发送的包是到自己的局域网还是到另一个局域网的设备。linux网桥检查局域网上所有的包,在同一个局域网中传送它,如果不是同一个网中的,就将它发到别的网上。
图解
主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、D
使用场景
Bridge(网桥)是 Linux 上用来做 TCP/IP 二层协议交换的设备,与现实的交换机功能相似。网桥设备实例可以和 Linux 上其他网络设备实例连接。当有数据到达时,网桥会根据报文中的 MAC 信息进行广播、转发、丢弃处理。比如服务器安装CentOS操作系统,想在这台机器安装KVM虚拟机。需要配置网桥,以方便虚拟机能够和局域网中的其他机器处于同一网段相通。
安装过docker的老师应该知道,安装完docker以后会有一个docker0网桥的网卡。
下面方便大家理解准备3个机器,网络拓扑见下图。为了方便管理网桥设备,也方便更好的理解,所以给其加上了静态ip。
MAC地址:br0网络的MAC地址,当不开启br0时mac地址默认为全0,当br0开启时,使用桥接的内网口和外网口中小的mac地址,并且不会改变内外网卡的mac地址。
centos多网卡网桥配置,修改配置文件方法:
修改原有网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
DEVICE=eth0
#IPADDR=192.168.36.36
#PREFIXO=24
BRIDGE=br0
vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
DEVICE=eth1
#IPADDR=192.168.56.36
#PREFIXO=24
#GATEWAY=192.168.56.2
#DNS1=180.76.76.76
NAME=eth1
BRIDGE=br0
创建网桥配置文件,并设置静态地址
vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
DEVICE=br0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.36.36
NETMASK=255.255.255.0
GATEWAY=192.168.36.2
重启 network 服务生效
service network restart ##centos6及以下重启网络
systemctl restart network ##centos7及以上重启网络
通过以下命令可以查看网桥有没有加载成功
lsmod | grep br ##查看网桥模块有没有加载
nmcli connection ##查看网卡连接信息
实现仅主机模式VMnet36段和仅主机模式VMnet56的同一网段的互通
如果想详细查看网桥信息,需要安装bridge-utils包
yum install bridge-utils -y
brctl show ##查看网桥信息
brctl br0 stp on ##开启br0上的stp
brctl 常用命令,如果是手动改的网卡配置文件,使用 brctl 删除网桥后,还需要自己删除网桥的网卡配置文件,以及修改网卡的配置文件
brctl addbr | delbr br0 ##添加或删除网桥br0
brctl addif | delif br0 eth0 ##添加或删除网桥br0中网卡eth0
rmmod bridge ##删除网桥加载模块
centos7及以上多网卡网桥配置,使用 nmcli 命令方法:
新建网桥,名字为mybr0,并指定静态ip为192.168.36.36
nmcli connection add type bridge ifname br0 con-name mybr0 ipv4.method manual ipv4.addresses 192.168.36.36/24
加入eth0到br0中,命名为br0-port0
nmcli connection add type bridge-slave con-name br0-port0 ifname eth0 master br0
加入eth1到br0中,命名为br0-port1
nmcli connection add type bridge-slave con-name br0-port1 ifname eth1 master br0
启用br0-port0 br0-port1 重启网络
nmcli connection up br0-port0
nmcli connection up br0-port1
systemctl restart network
此时网桥已经实现,仅主机模式VMnet36段和仅主机模式VMnet56的同一网段可互通
cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
TYPE=Ethernet
NAME=br0-port0
UUID=932106e1-3943-4051-a0ce-03c92784eb5b
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
cat /etc/sysconfig/network-scripts/ifcfg-br0-port1
TYPE=Ethernet
NAME=br0-port1
UUID=e768dd95-fa73-4d48-974a-44b57bcc1cf4
DEVICE=eth1
ONBOOT=yes
BRIDGE=br0
cat /etc/sysconfig/network-scripts/ifcfg-br0
STP=yes
BRIDGING_OPTS=priority=32768
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.36.36
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=mybr0
UUID=3853e0bf-44d3-4798-882e-242c21e98b4f
DEVICE=br0
ONBOOT=yes
bond网卡聚合与网桥br0结合
bond网卡聚合配置参考:https://blog.csdn.net/weixin_45548465/article/details/122625777?spm=1001.2014.3001.5502
比如服务器配置bond多网卡聚合,然后KVM需要使用到网桥,那么需要做到网桥绑定到bond网卡上。
只要把bond网卡的配置指定为br即可,其余的不用改变:屏蔽静态IP,并增加BRIDGE为br0。
vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=yes
BONDING_OPTS="miimon=100 mode=0"
#IPADDR=192.168.190.111
#NETMASK=255.255.255.0
#GATEWAY=192.168.190.2
#DNS1=114.114.114.114
BRIDGE=br0
网桥的配置
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.190.111
NETMASK=255.255.255.0
GATEWAY=192.168.190.2
重启网络
systemctl restart network
ubuntu 18.04多网卡网桥配置,yaml文件有严格的缩进格式,需要注意
sudo vim /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
#addresses: [192.168.56.36/24]
#gateway4: 192.168.56.2
#nameservers:
# addresses: [180.76.76.76]
eth1:
dhcp4: no
#addresses: [192.168.36.36/24]
bridges:
br0:
dhcp4: no
dhcp6: no
addresses: [192.168.36.36/24]
gateway4: 192.168.36.2
nameservers:
addresses: [180.76.76.76]
interfaces:
- eth0
- eth1
重启网络服务
sudo netplan apply
如果有同学想直接复制我的配置文件进行修改,可能在vim里面格式会错乱,需要进入 paste 模式:
:set paste
进入 paste 模式后,按 i 键进入插入模式,然后再粘帖,文本格式不会错乱了。但粘帖后还需要按 <ESC> 进入普通模式并执行如下命令结束 paste 模式:
:set nopaste
ubuntu 18.04多网卡绑定加桥接配置
sudo vim /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
#addresses: [192.168.56.36/24]
#gateway4: 192.168.56.2
#nameservers:
# addresses: [180.76.76.76]
eth1:
dhcp4: no
#addresses: [192.168.36.36/24]
bonds:
bond0:
interfaces:
- eth0
- eth1
parameters:
mode: active-backup
mii-monitor-interval: 100
bridges:
br0:
dhcp4: no
dhcp6: no
addresses: [192.168.36.36/24]
gateway4: 192.168.36.2
nameservers:
addresses: [180.76.76.76]
interfaces:
- bond0
重启网络服务
sudo netplan apply