Linux虚拟网络设备之bridge(桥)
继前两篇介绍了 tun/tap 和 veth 之后,本篇将介绍Linux下常用的一种虚拟网络设备,那就是bridge(桥)。 本篇将通过实际的例子来一步一步解释bridge是如何工作的。 什么是bridge? 首先,bridge是一个虚拟网络设备,所以具有网络设备的特征,可以配置IP、MAC地址等;其次,bridge是一个虚拟交换机,和物理交换机有类似的功能。 对于普通的网络设备来说,只有两端,从一端进来的数据会从另一端出去,如物理网卡从外面网络中收到的数据会转发给内核协议栈,而从协议栈过来的数据会转发到外面的物理网络中。 而bridge不同,bridge有多个端口,数据可以从任何端口进来,进来之后从哪个口出去和物理交换机的原理差不多,要看mac地址。 创建bridge 我们先用iproute2创建一个bridge: dev@debian:~$ sudo ip link add name br0 type bridge dev@debian:~$ sudo ip link set br0 up 当刚创建一个bridge时,它是一个独立的网络设备,只有一个端口连着协议栈,其它的端口啥都没连,这样的bridge没有任何实际功能,如下图所示: +----------------------------------------------------------------+ | | |