网桥的个人疑问和解释

  • Post author:
  • Post category:其他





如下问题是自己工作中遇到的疑问。解释也纯属个人理解。不知道是否完全正确。如有问题请帮忙指出,谢谢!!!




网桥是二层交换设备吗?为什么网桥可以配制ip地址?为什么要给网桥配制ip地址?

网桥是二层交换设备吗?
网桥可以是硬件物理设备,也可以是软件(如linux内核虚拟出来的网桥),网桥工作在 OSI模型的第二层,数据链路层(也会包含第一层物理层了,这里就不纠结这个了)。
为什么网桥可以配制ip地址?为什么要给网桥配制ip地址?
网桥工作在第二层,数据链路层,不包含网络功能,所以不能给网桥配制ip地址。但是网桥设备需要管理,可以给该设备配制ip方便对其进行管理。这个ip可称为网桥的网管ip。换句话说,网桥本身是没有ip的。它和网络层无关。所以给网桥配制的ip,并不是网桥本身的功能。在linux虚拟网桥上配制ip,也是一样,可以给虚拟网桥配制ip,但这并不是网桥本身的功能,好别扭啊啊啊~~~哈哈哈。


————————–

————–相关的零星理解——————–


———————————-

——–

网桥是在内核中虚拟出来的,可以将主机上真实的物理网卡(如eth0,eth1)桥接在上面,也可以将虚拟的网卡(tap0,tap1,vnet0,vnet1)桥接上来。那么这些桥接上来的网卡是工作在链路层的,不能分配ip地址,其实这时候桥接上来的网卡就相当于网桥上的



端口






端口收到的数据包都提交给这个虚拟的”网桥“,让其进行转发。

网桥其实也是不用配置ip的,这样它完全可以正常转发包,但是,你若想要远程管理你的网桥主机,这当然可以在网桥上面配置ip,不过这个功能和转发毫无关系,只是让主机接入到互联网(也可是局域网)。



在给linux创建虚拟机时,为了方便主机与其虚拟机进行通信,常用到网桥,并且常给网桥配制ip地址。




在linux上还可以通过如下方式创建tap:


添加虚拟网卡tap






tunctl -b



tap0 ——-> 执行上面使命就会生成一个tap,后缀从0,1,2依次递增



激活创建的tap



ip link set tap0 up


这里tap可以桥接到网桥上,成为网桥的一个端口。


显示网桥信息

brctl show


添加网桥

brctl addbr virbr0

激活网桥

ip link set virbr0 up

将tap0虚拟网卡添加到指定网桥上。

brctl addif br0 tap0

在创建kvm虚拟机时,可以指定虚拟机连接在哪个端口上。请看如下举例:

qemu-kvm -m 4096 -smp 4 -hda /home/linux_hzhsan.qcow2 -net nic,model=e1000,macaddr=53:02:43:BC:F8:C1




-net tap,ifname=tap0




,script=no,downscript=no &
就像一台物理主机(对应这里的虚拟主机)用网线直接连接到交换机的一个网口上(这网口就对应上面的tap0)
这个tap0在创建的虚拟机中,会有对应的一个虚拟物理网卡(在虚拟客户机中可以看到eth0)




给网桥配制ip地址,是为了方便网桥所在的主机和网桥所桥接的网卡(包括虚拟网卡)进行通信。一般会配成同一个网段的ip。桥接在网桥上的网卡(包括物理网卡和虚拟网卡)不能配制ip地址。但是其对应的虚拟机可以配制ip地址,如果和网桥的ip是同一个网段的话,网桥所在的物理主机和这个网桥上桥接的网卡所对应的虚拟主机就可以进行通信了(能够ping通)。


注意:必须给网桥br0配制IP地址,且保持和tap0所对应的虚拟机网卡上配制的ip地址在同一网段,这样才能从主机中直接访问到虚拟机。



版权声明:本文为hzhsan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。