Problema de rede Proxmox Nat

4

Definição

Instalei o Proxmox 3.2 e estou tentando configurar uma máquina virtual como um servidor de comunicação que lida com todo o tráfego e os encaminha para os nós com IP privado.

Eu configurei o servidor para rede NAT com duas máquinas virtuais CentOS que tem exatamente a mesma configuração.

O que eu faço

O wiki

Proxmox tem uma documentação de rede nat limitada e muito básica. Eu encontrei problemas semelhantes ( isso , this ) aqui e em fóruns proxmox. Eu tentei entender o básico do linux nat networking então eu completei este tutorial muito compreensível do começo ao fim. Eu li este artigo para regras iptables nat

Problemas

Após a instalação e configuração, quando faço ping do host para a VM ou da VM para o host, a saída é:

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

Quando eu tento uma conexão de telnet para o ip público do servidor de comunicação de um servidor na mesma rede que tem conexão com a internet e (192.168.0.3)     -bash-4.1 # telnet 192.168.0.2 2701     Tentando 192.168.0.2 ...     telnet: conectar-se ao endereço 192.168.0.2: Nenhuma rota para hospedar

Quando eu tento conexão telnet para localhost, 192.168.0.2 resulta mesmo,

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

Pergunta

Qual é o meu erro?

Configurações

Todas as configurações de host e máquinas virtuais são

Servidor Proxmox

Versão Proxmox

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

Interfaces de rede

Interfaces de rede adicionadas pela interface web,

  • 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
    

Regras de nat do firewall (não há filtros)

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

Tabela de roteamento

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

encaminhamento de IP

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

Máquinas Virtuais

versão do SO

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

Interfaces

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

Daemon SSH em execução e porta de escuta (22) com êxito

-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

Tabela de Roteamento

-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
    
por efesaid 06.08.2014 / 16:11

1 resposta

2

Eu encontrei meu erro quando estava dormindo, então acordei imediatamente e consertei isso. A interface que está fazendo a rede nat é vmbr1, mas quando eu configuro a máquina virtual, eu estava atribuindo o modo de ponte errado (vmbr0) ao dispositivo de rede.

Para corrigir isso, parei a máquina virtual e o modo de ponte editada de vmbr0 para vmbr1. Agora tudo funciona bem.

    
por 18.08.2014 / 19:18