对于networking和开放的vswitch,我都很陌生,我不确定这个问题是否与打开vswitch(ovs)或gre更相关。
以下是ovs settint命令。 有两个主机。 每个主机都有两个桥接器br1和br2。 br2具有以br1的ip作为其远端点的gre隧道接口。
主机A
sudo ifconfig eth1 0 sudo ovs-vsctl add-br br1 sudo ovs-vsctl add-br br2 sudo ovs-vsctl add-port br1 eth0 sudo ifconfig br1 192.168.1.155 netmask 255.255.255.0 sudo ifconfig br2 10.1.1.1 netmask 255.255.255.0 sudo ovs-vsctl add-port br2 gre0 -- set interface gre0 type=gre options:remote_ip=192.168.1.152
hostB上
sudo ifconfig eth1 0 sudo ovs-vsctl add-br br1 sudo ovs-vsctl add-br br2 sudo ovs-vsctl add-port br1 eth0 sudo ifconfig br1 192.168.1.152 netmask 255.255.255.0 sudo ifconfig br2 10.1.1.2 netmask 255.255.255.0 sudo ovs-vsctl add-port br2 gre0 -- set interface gre0 type=gre options:remote_ip=192.168.1.155
GREstream量到达远程终点后如何发现? 看起来在同一主机上,br1和br2之间没有连接。 我可以理解主机A的br2上的stream量如何通过主机B上的br1。但是我无法理解主机B(gre目标)上的br1在主机B上的stream量发现方式。
你必须注意,在主机b你已经给了br1一个IP地址192.168.1.152。 所以,不pipe你喜不喜欢,你的隧道在br1终止。 在openvswitch中,桥本身就是一个接口。 这就解释了你的问题。
如果你没有这样做,只创build一个名为gre0的br2接口,并连接到remote_ip 192.168.1.155,你应该创build一个veth对并附加br1和br2。
请注意,使用gre时,您的机器中的任何一个接口都有一个IP地址就足够了。 该界面根本不需要添加到你的桥梁。 只要你的网桥有一个端点,他们将能够从该隧道接收数据包。
希望能帮助到你。