本文首发于我的公众号码农之屋(id: Spider1818),专注于干货分享,包含但不限于Java编程、网络技术、Linux内核及实操、容器技术等。欢迎大家关注,二维码文末可以扫。
导读:云化场景到处都是虚拟机和容器,它们背后的网络管理都离不开虚拟网络设备,了解虚拟网络设备将有助于我们更好地理解云化场景的网络架构。本篇文章将对Linux的bridge进行介绍。
一、bridge设备
bridge是一种虚拟网络设备,具备网络设备的特征,可以配置IP、MAC地址等。如果从功能归类考虑,可以把bridge当成是交换机。对于普通的网络设备来说,通常只有两端,从一端进来的数据会从另一端出去,如物理网卡从外面网络收到的数据会转发给内核协议栈,而从协议栈过来的数据会转发到外面网络。
而bridge不同,bridge有多个端口,数据可以从任何端口进来,进来之后从哪个口出去和物理交换机的原理差不多(根据MAC地址表寻址)。
其他的网络设备都可以接入到bridge,比如物理网卡、虚拟网络设备等。bridge充当主设备,其他接入设备为从设备,等同于物理交换机的端口连接了一根网线(之所以说是一根网线,是因为从设备收到的数据包无条件的转发给了bridge)。比如下图中,bridge连接了veth设备和物理网卡eth0。