Linux Network bridge
作者:互联网
简介
- 网桥是一种软件配置,用于连结两个或更多个不同网段。网桥的行为就像是一台虚拟的网络交换机,工作于透明模式(即其他机器不必关注网桥的存在与否)。任意的真实物理设备(例如 eth0)和虚拟设备(例如 tap0)都可以连接到网桥。
- 桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。
如下图:主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、D
创建网桥
可以通过多种方式实现,这里介绍通过nmcli和bridge实现。
通过nmcli
1)添加一个名为br0的网桥,并且手工指定ip为192.168.8.100
[root@CentOS7 ~]# brctl show
bridge name bridge id STP enabled interfaces
[root@CentOS7 ~]# nmcli con add con-name br0 type bridge ifname br0
Connection 'br0' (77a81012-0760-441a-a90a-8f4b357c5dfb) successfully added.
[root@CentOS7 ~]# nmcli con modify br0 ipv4.addresses 192.168.8.100/24 ipv4.method m
anual
2)添加eth0、eth1设备到网桥br0
[root@CentOS7 ~]# nmcli con add con-name br0-port0 type bridge-slave ifname eth0 master br0
Connection 'br0-port0' (60961b5d-312c-49dd-b9ff-287f8236436b) successfully added.
[root@CentOS7 ~]# nmcli con add con-name br0-port1 type bridge-slave ifname eth1 master br0
Connection 'br0-port1' (e4b436f2-8bc5-4696-ad6d-bdcb3ec40a0f) successfully added.
3)启动网桥并且查看信息
[root@CentOS7 ~]# nmcli con up br0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/32
[root@CentOS7 ~]# nmcli device show br0
GENERAL.DEVICE: br0
GENERAL.TYPE: bridge
GENERAL.HWADDR: E6:CF:41:C0:93:74
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: br0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/32
IP4.ADDRESS[1]: 192.168.8.100/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 192.168.8.0/24, nh = 0.0.0.0, mt = 425
IP6.GATEWAY: --
4)查看其生成的配置文件
[root@CentOS7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
[root@CentOS7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
[root@CentOS7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0-port1
通过brctl
该工具需要安装bridge-utils包
[root@CentOS7 ~]# rpm -qf `which brctl`
bridge-utils-1.5-9.el7.x86_64
[root@CentOS7 ~]# yum -y install bridge-utils
1)新建一个名为br0的网桥
[root@CentOS7 ~]# brctl addbr br0
2)添加eth0、eth1设备到br0网桥
[root@CentOS7 ~]# brctl addif br0 eth0
[root@CentOS7 ~]# brctl addif br0 eth1
3)显示当前存在的网桥及其所连接的网络端口:
[root@CentOS7 network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29082a73 no eth0
eth1
4)启动网桥
[root@CentOS7 network-scripts]# ip link set up dev br0
5)删除网桥,需要先关闭它
[root@CentOS7 network-scripts]# ip link set dev br0 down
[root@CentOS7 network-scripts]# brctl delbr br0
[root@CentOS7 network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
标签:bridge,Network,br0,CentOS7,brctl,网桥,Linux,root 来源: https://blog.51cto.com/hexiaoshuai/2445733