我正在尝试在 Azure 上部署集线器和辐条拓扑。我有 VNet:hub,spoke1 和 amp;spoke2,分别具有以下 3 个地址空间:10.0.0.0/16
,10.1.0.0/16
& amp;10.2.0.0/16
。并且每个在/24
地址空间上只有一个子网。
我已将每个辐条对等到集线器,并在集线器子网中部署了一台 Linux 计算机。现在,我想将该 Linux 计算机用作路由器,以将来自10.1.0.0/16
和目标10.2.0.0/16
的流量转发到 spoke2 VNet,反之亦然。
我在每个辐条上添加了一个User Defined Route
,以便在将另一个辐条作为目标时使用 Linux 路由器 IP地址(10.0.0.5
)作为下一跳。
我已在 Linux 计算机上启用ip_forwarding
:echo 1 > /proc/sys/net/ipv4/ip_forward
并添加了 2 条路由ip route add 10.1.0.0/24 via 10.0.0.1 dev eth0
和ip route add 10.2.0.0/24 via 10.0.0.1 dev eth0
,因为10.0.0.1
是我的路由器上的网关,eth0
是我的 NIC。我还在 Azure 中的路由器的 NIC 上启用了IP Forwarding
。
但是...这不起作用。数据包没有转发到适当的网络,我不明白为什么。
如果你们中的任何一个有一个提示,甚至是解决方案来实现这一点,我将不胜感激。谢谢。
您应该将 linux 机器配置为路由器。
创建一个 linux 桥,并附加eth0
。
将网桥 ip 设置为10.0.0.1/24
,并在其上设置 dhcp 服务器。
在每个辐条上,将10.0.0.1
设置为目标网络的下一跳。
在 linux 机器上,通过10.0.0.1
将路由器条目添加到10.1.0.0/24
和10.2.0.0/24
。
好的.
我不知道在我的第一次尝试中到底出了什么问题。
我只是简单地删除了资源组,并在Microsoft tutorial之后使用 Windows VM 从头开始重新启动。
然后,我一步一步地将 Windows VM 替换为 Linux VM...并且一切正常。在 NVA 上,您只需:
在 Azure 中的 VM 的网络接口上启用IP Forwarding
,
在VM 中启用IP Forwarding
:
sudo sed -i 's/#net.ipv4.ip_forward=/net.ipv4.ip_forward=/' /etc/sysctl.conf
sudo sed -i 's/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sudo sed -i 's/#net.ipv6.conf.all.forwarding=/net.ipv6.conf.all.forwarding=/' /etc/sysctl.conf
sudo sed -i 's/net.ipv6.conf.all.forwarding=0/net.ipv6.conf.all.forwarding=1/' /etc/sysctl.conf
sudo sysctl -p
然后在每个分支中定义 Azure 中的路由 (Route table
+Routes
),以将流量转发到 NVA IP。
仅此而已。开箱即用。
我甚至在HA-Ports
的内部Load Balancer
后面的Virtual Machine Scale Set
中创建了我的 NVA,因此我的 NVA 高度可用。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(37条)