我已经安装了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,
root@testPrx:~# pveversion pve-manager/3.2-4/e24a91c1 (running kernel: 2.6.32-29-pve)
通过networking界面添加的networking接口, 
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
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
-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的虚拟机和编辑桥模式。 现在一切正常。
