我有几个使用vxlan连接的Linux主机。让我们称它们为主机A、主机B和主机C。每个主机上的配置类似于以下内容:
# Define a bridge:
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-cloudbr0
DEVICE=cloudbr0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPV6INIT=no
IPV6_AUTOCONF=no
DELAY=5
STP=no
USERCTL=no
NM_CONTROLLED=no
IPADDR=192.168.200.1
NETMASK=255.255.255.0
DNS1=10.10.0.2
EOF
# Read the above config file and create the bridge
systemctl restart network
# VXLAN
ip link add vxlan100 type vxlan id 100 dstport 4789 local 10.10.128.84 group 224.10.0.1 dev eth0 ttl 5
brctl addif cloudbr0 vxlan100
ip link set up dev vxlan100结果是主机A、B和C各有两个IP地址,一个公共地址(10.0.0/16子网)和一个私有地址( 192.168.200.0/24子网)。私有地址仅对配置有vxlan的其他主机可见。主机A、B和C都可以交换对方的公共和私人地址。
接下来,我需要让一些额外的主机(主机D、E和F)访问vxlan子网,而不实际将它们连接到子网。所以,我正在寻找某种第三层路由解决方案。
我在主机A上启用了IP转发,然后更新了适当的路由表,以便通过主机A将主机D、E和F路由给主机D、E和F至192.168.200.0/24,从而允许主机D、E和F使用主机A的公共地址或私有地址进行ping,但它们无法到达任何其他vxlan地址。由于某种原因,主机A没有将流量转发到vxlan子网(否则响应不会返回)。
在vxlan子网中设置第三层路由的最佳方法是什么?
发布于 2022-01-28 17:30:30
我找到的解决办法是:
route add 192.168.200.0/24 via 10.10.128.84结果是,与主机A不同的物理子网上的所有主机都可以访问vxlan子网(假设所有必需的路由器都有适当的路由表条目)。与主机A位于同一物理子网上的任何主机都必须加入vxlan子网才能访问它。
https://serverfault.com/questions/1091374
复制相似问题