Proxmox Natnetworking问题

定义

我已经安装了Proxmox 3.2,并试图将虚拟机configuration为通信服务器,处理所有stream量并将其转发给具有私有IP的节点。

我configuration了具有完全相同configuration的两个CentOS虚拟机的NATnetworking服务器。

我做的事

Proxmox wiki有一个非常有限和基本的natnetworking文档。 我在这里和proxmox论坛上发现了类似的问题( this , this )。 我试图了解Linux natnetworking的基础知识,所以我从头到尾完成这个非常容易理解的教程。 我读这篇文章为iptables NAT规则

问题

安装和configuration后,当我ping主机到虚拟机或从虚拟机到主机的输出是;

root@testPrx:~# ping 10.0.4.2 PING 10.0.4.2 (10.0.4.2) 56(84) bytes of data. From 10.0.4.1 icmp_seq=2 Destination Host Unreachable 

当我尝试一个telnet连接到通信服务器的公共ip从一个服务器在具有互联网连接的同一networking和(192.168.0.3)-bash-4.1#telnet 192.168.0.2 2701尝试192.168.0.2 … telnet:连接到地址192.168.0.2:没有路由到主机

当我尝试telnet连接到本地,192.168.0.2结果相同,

 root@testPrx:~# telnet localhost 2701 Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused 

我的错误是什么?

configuration

所有的主机和虚拟机configuration,

Proxmox服务器

Proxmox版本

 root@testPrx:~# pveversion pve-manager/3.2-4/e24a91c1 (running kernel: 2.6.32-29-pve) 

networking接口

通过networking界面添加的networking接口, 在这里输入图像说明

  • net0 – > vmbr0
  • net1 – > vmbr1

    root @ testPrx:〜#cat / etc / network / interfaces自动循环

     auto vmbr0 iface vmbr0 inet static address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1 bridge_ports eth0 bridge_stp off bridge_fd 0 auto vmbr1 iface vmbr1 inet static address 10.0.4.1 netmask 255.255.255.0 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.0.4.0/24' -o vmbr0 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '10.0.4.0/24' -o vmbr0 -j MASQUERADE #these rules forward traffic on port 2701 to port 22 on the VM at IP 10.0.4.2 post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 2701 -j DNAT --to 10.0.4.2:22 post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 2702 -j DNAT --to 10.0.4.2:22 

NAT的防火墙规则(没有任何filter)

 root@testPrx:~# iptables -L -t nat Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- anywhere anywhere tcp dpt:2701 to:10.0.4.2:22 Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 10.0.4.0/24 anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination 

路由表

 root@testPrx:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.4.0 * 255.255.255.0 U 0 0 0 vmbr1 192.168.0.0 * 255.255.255.0 U 0 0 0 vmbr0 default 192.168.0.1 0.0.0.0 UG 0 0 0 vmbr0 

IP转发

 root@testPrx:~# cat /proc/sys/net/ipv4/ip_forward 1 

虚拟机

OS版本

 -bash-4.1# cat /etc/redhat-release CentOS release 6.4 (Final) 

接口

为eth0

 -bash-4.1# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none IPADDR=192.168.0.3 GATEWAY=192.168.0.1 NETMASK=255.255.255.0 

ETH1

 -bash-4.1# cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none IPADDR=10.0.4.2 GATEWAY=10.0.4.1 NETMASK=255.255.255.0 

SSH守护进程运行和侦听端口(22)成功

 -bash-4.1# netstat -puntl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:85 0.0.0.0:* LISTEN 1100/sshd 

路由表

 -bash-4.1# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.4.0 * 255.255.255.0 U 0 0 0 eth1 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 1002 0 0 eth0 link-local * 255.255.0.0 U 1003 0 0 eth1 default 10.0.4.1 0.0.0.0 UG 0 0 0 eth1 

我在睡觉的时候发现了自己的错误,于是我立即醒来,并解决了这个问题。 正在做natnetworking的接口是vmbr1,但是当我安装虚拟机时,我将错误的网桥模式(vmbr0)分配给networking设备。

为了解决这个问题,我停止了从vmbr0到vmbr1的虚拟机和编辑桥模式。 现在一切正常。

在这里输入图像说明