Проблема с сетью Proxmox Nat
Определение
Я установил Proxmox 3.2 и пытаюсь настроить виртуальную машину в качестве сервера связи, который обрабатывает весь трафик и перенаправляет их на узлы с частным IP-адресом.
Я настроил сервер для работы в сети NAT с двумя виртуальными машинами CentOS, которые имеют точно такую же конфигурацию.
Что я делаю
Proxmox Wiki имеет очень ограниченную и базовую сетевую документацию. Я нашел похожие проблемы ( это, это) здесь и на форумах Proxmox. Я попытался понять основы работы с сетью Linux, поэтому я завершил этот очень понятный урок от начала до конца. Я читаю эту статью для правил iptables nat
Проблемы
После установки и настройки, когда я пинг с хоста на виртуальную машину или с виртуальной машины на хост, вывод:
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 сервера связи с сервера в той же сети, где есть подключение к Интернету, и (192.168.0.3) -bash-4.1# telnet 192.168.0.2 2701, пытающегося 192.168.0.2... telnet: подключиться к адресу 192.168.0.2: нет маршрута к хосту
Когда я пытаюсь подключиться через telnet к localhost, результаты 192.168.0.2 такие же,
root@testPrx:~# telnet localhost 2701
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
Вопрос
В чем моя ошибка?
Конфигурации
Все конфигурации хоста и виртуальных машин
Proxmox Server
Версия Proxmox
root@testPrx:~# pveversion
pve-manager/3.2-4/e24a91c1 (running kernel: 2.6.32-29-pve)
Сетевые интерфейсы
Сетевые интерфейсы, добавленные веб-интерфейсом,
- net0 -> vmbr0
net1 -> vmbr1
root @ testPrx: ~ # cat / etc / network / interfaces auto lo iface lo inet loopback
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 (фильтров нет)
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
1 ответ
Я обнаружил свою ошибку, когда спал, поэтому сразу проснулся и исправил это. Интерфейс, который выполняет сетевое соединение, vmbr1, но когда я настраивал виртуальную машину, я назначал неправильный режим моста (vmbr0) для сетевого устройства.
Чтобы это исправить, я остановил виртуальную машину и отредактировал режим моста с vmbr0 на vmbr1. Теперь все работает отлично.