Bridge网桥是Linux系统上用来做TCP/IP二层协议交换的设备,与现实世界中的交换机功能相似。Bridge设备实例可以和Linux上其他网络设备实例连接,既attach一个从设备,类似于现实世界中的交换机和一个用户终端之间连接一根网线。当有数据到达时,Bridge会根据报文中的MAC地址信息进行广播、转发、丢弃等处理。
Linux内核通过一个虚拟的网桥设备来实现桥接的,这个设备可以绑定若干个以太网接口设备,从而将它们桥接起来。例如,网桥设备br0既能绑定eth0这样的物理网络设备又能桥接虚拟机VM对应的虚拟设备vnet0,实现虚拟机网络与外部网络的连通。对于网络协议栈的上层来说,只看得到br0,因为桥接是在数据链路层实现的,上层不需要关心桥接的细节。于是协议栈上层需要发送的报文被送到br0,网桥设备的处理代码再来判断报文该被转发到eth0或是eth 1,或者两者皆是;反过来,从eth0或从eth1接收到的报文被提交给网桥的处理代码,在这里会判断报文该转发、丢弃,或提交到协议栈上层。图3-20中网桥br0实现VM1与物理网卡eth0的通信。当有数据到达eth0时,br0会将数据转发给vnet0,这样VM1就能接收到来自外网的数据;反过来,VM1发送数据给vnet0,br0也会将数据转发到eth0,从而实现了VM1与外网的通信。
图3-20 网桥br0桥接vnet0与eth0(www.xing528.com)
如图3-21所示,现在增加一个虚拟机VM2,将VM2的虚拟网卡vnet 1桥接到br0上,这样就可以实现VM1和VM2之间的网络通信,同时保证VM1、VM2和外部网络互通。
图3-21 网桥br0桥接vnet0、vnet1与eth0
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。