什么叫做网桥
下面简述的只是linux下的brctl创建出来的玩意,和网桥的学术定义什么的没有关系。
想像你有一块网卡,接上网线,OK,能上网了。
现在,你有一台物理的机器,和一台虚拟机,都需要上网。但是网卡和网线只有一块,怎么办?
如果你能够物理的触摸到虚拟机,你也许会这么干。
找一个交换机来,把物理设备的网卡用网线连接到上面,把虚拟机的网卡连接到上面,再把外网网线接上去,OK,齐活了。
brctl创立出来的网桥就是这么工作的。
你原本的物理网卡,例如eth0,我们直接为他分配IP,进行通讯。结构大概是这个样子的。
system -- eth0 -- network
接入网桥这个假的交换机后,eth0依然负责向外通讯,但是没有自己的IP了。网桥和宿主所在的机器的连接叫做br0(或者br1,以此类推)。
system -- br0 -- eth0 -- network
然后,我们可以为这个交换机接入很多的设备。
system -- br0 -- eth0 -- network
|
vethXX
|
virtual -- eth0 /
其中,eth0和vethXX是一对设备。一个在宿主里,一个在虚拟机里。互相连通。
所以,当虚拟机发生通讯时,eth0上可以看到数据流,但是br0上看不到。而如果虚拟机和宿主通讯时,eth0看不到数据流,br0上可以。