虚拟机与docker组成网络之间的UDP端口转发

虚拟机与docker组成网络之间的UDP端口转发

目前我正在部署一个虚拟化系统,在转发 UDP 端口时遇到问题。我尝试了很多教程,但一定出了问题,我不知道为什么连接总是被拒绝。所有使用的机器上的防火墙都已禁用。

我的设置如下:

我有一个带有 kvm 的 debian 服务器,可托管 2 个虚拟机。

VM1 192.168.122.215/24 位于 enp1s0(ubuntu 18.04)VM2 192.168.122.104/24 位于 ens2(ubuntu 16.04)

在 VM1 上,docker 部署正在运行:192.168.70.129/26 at docker-adp-1

目标是通过端口 2152 上的 UDP 从 VM2 连接到 docker 部署(从 192.168.122.104 到 192.168.70.129:2152)。

该docker部署由多个微服务组成,运行正常(VM2可以通过TCP与VM1 docker部署上的各种服务进行通信)。

在 VM2 上我使用以下路由:

sudo ip route add 192.168.70.128/26 via 192.168.122.215 dev ens2

在 VM1 上我使用以下规则:

sudo sysctl net.ipv4.conf.all.forwarding=1

sudo iptables -P FORWARD ACCEPT

从现在的教程中,我在 VM1 上尝试了几次 PRE-/POSTROUTING,例如(但没有成功):

sudo iptables -t nat -A PREROUTING -p udp -i enp1s0 -d 192.168.122.215 --dport 2152 -j DNAT --to-destination 192.168.70.129:2152

sudo iptables -A FORWARD -i enp1s0 -p udp -d 192.168.122.215 --dport 2152 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

sudo iptables -A FORWARD -i demo-oai -p udp -d 192.168.70.129 --dport 2152 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

希望有人能帮忙。谨致问候

相关内容