考虑到iptables规则,通过主机访问其他来宾

时间:2019-12-27 01:45:58

标签: routing ip iptables nat proxmox

假设我在主机的/ etc / network / interfaces文件中具有以下内容,并且没有其他路由条目或iptables规则:

auto lo
iface lo inet loopback

iface ens3 inet manual

auto vmbr0
iface vmbr0 inet static
        address 1.2.3.4
        netmask 255.255.255.0
        gateway 1.2.3.1
        bridge_ports ens3
        bridge_stp off
        bridge_fd 0

auto vmbr1
iface vmbr1 inet static
        address 10.10.10.1
        netmask 255.255.255.0
        network 10.10.10.0
        broadcast 10.10.10.255
        bridge_ports none
        bridge_stp off
        bridge_fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
        post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 25 -j DNAT --to 10.10.10.101:25
        post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 25 -j DNAT --to 10.10.10.101:25

我还有两个来宾系统作为主机上的LXC容器运行:

  • 来宾1使用专用IP地址10.10.10.101
  • 来宾2使用专用IP地址10.10.10.102

服务在端口1的来宾1上运行。

现在,我希望访客2与访客1的服务联系。为此,我可以使用10.10.10.101:25,它也可以正常工作。

但是,我希望将呼叫发送给主机,并且主机决定将请求转发给哪个来宾。但是通过带有1.2.3.4:25的公共IP地址的呼叫无法正常工作。通过IP地址可以访问主机,但是显然不会将请求转发给来宾1。由于主机系统的端口25上没有服务,因此答案为“连接被拒绝”。

0 个答案:

没有答案