linux 桥,Linux网桥

简单来说,桥接就是把一台机器上的若干个网络接口连接起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。类似交换机。

linux内核支持网口的桥接与交换机有一点点不同不同,交换机只是一个二层设备,对于接收到的报文,要么转发、要么丢弃。而运行着linux内核的机器本身就是一台主机,有可能就是网络报文的目的地。其收到的报文除了转发和丢弃,还可能被送到网络协议栈的上层(网络层),从而被自己消化。

网桥是工作在 TCP/IP 二层协议的虚拟网络设备,与现实世界中的交换机功能相似。与其他虚拟网络设备一样,可以配置 IP、MAC。Bridge 的主要功能是在多个接入 Bridge 的网络接口间转发数据包。

对于普通的网络设备,就像一个管道,只有两端,数据从一端进,从另一端出。而 Bridge 有多个端口,数据可以从多个端口进,从多个端口出。

如下图,Bridge (设备名 br0)充当主设备,连接了四个从设备,分别是 tap1,tap2,veth1,eth0。

8226d4bc5ba30d66c38b09b7b4c985c9.png

Bridge设备br0绑定了实际设备eth0与虚拟设备tap0、tap1、veth1,此时,对于Hypervisor的网络协议栈上层来说,只看得到br0,并不会关心网桥的细节。当这些从设备接收到数据包时,会将其提交给br0,它来决定数据包的去向,br0会根据MAC地址与端口的映射关系进行转发。

因为Bridge工作在第二层,所以绑定在br0上的从设备eth0、tap0、tap1、veth1均不需要再设置IP,对上层路由器来说,它们都位于同一子网,因此只需为br0设置IP,比如10.0.1.0/24,此时,eth0、tap0、tap1、veth1均通过br0出入10.0.1.0/24网段。

因为具有自己的IP,所以br0可以被加入到路由表,并利用它来发送数据,而最终实际的发送过程则是由某个从设备来完成。

如果eth0本身具有自己的IP,比如192.168.3.7,在绑定br0之后,它的IP会失效,用户程序不能接收到发送到这个IP的地址,只有目的地址为br0 IP的数据包才会被Linux接收。

桥的使用

ip命令建桥

ip link add br2 type bridge # 创建网桥

ip link set dev eth0 master br2 # 为网桥添加物理接口

ip link del br2 type bridge # 删除网桥

ip link set dev eth0 nomaster # 删除网桥接口

ip addr show type bridge # 显示网桥列表信息

ip addr show type bridge br2 # 显示网桥br2的信息

如果需要查看网卡挂载桥信息,可以采用ip addr命令实现,如下图所示,master后面表示挂载得网桥名称。

桥的持久化

对于centos而言,如果重启网络服务,则所有的配置则会消失,所以我们需要修改配置文件,才能永久保存网桥配置;

配置文件如下:

cd /etc/sysconfig/network-scripts/

cp ifcfg-enp1s0 ifcfg-br0#编辑配置文件

vim ifcfg-br0

TYPE=Bridge  #注意,这个地方一点要大写

BOOTPROTO=none

DEVICE=br0  #指定设备名称,一定要与文件名中ifcfg-br0后的"br0"相同

ONBOOT=yes  #开机启动

IPADDR=192.168.1.1  #配置网桥的地址

NETMASK=255.255.255.0

GATEWAY=192.168.238.1  #指定网关

:wq

vim ifg-enp1s0

TYPE=Ethernet

BOOTPROTO=none

NM_CONIROLLED=no

NAME=enp1s0

DEVICE=enp1s0

ONBOOT=yes

BRIDGE=br0  #将该网卡桥接到br0上面去

:wq

systemctl restart network #重启网络服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值