RRAS NAT não encaminhado para VMs do Hyper-V específicas

1

Eu tenho uma instalação do Windows Server 2012 R2, com configuração de Hyper-V, RRAS e NAT.

Estou tendo um problema com dois dos meus VMs e RRAS NAT:

Essencialmente, essas duas VMs não se comunicam fora da sub-rede local. Eles podem se comunicar com tudo dentro da rede local (outras VMs, o gateway), mas nada além disso. A única diferença entre essas duas e as outras VMs é que elas são sistemas baseados em Linux. Todas as outras VMs são sistemas baseados no Windows Server 2012 R2.

Existe algo específico para o Linux que estaria causando esse problema? Uma é uma instalação do CentOS e a outra é uma instalação do Debian.

Se eu designar uma das caixas do Linux como uma interface voltada para o público, elas terão conectividade externa. Obviamente, eu não quero fazer isso, pois desperdiça meu espaço de endereçamento IP.

Anote: o servidor pode executar ping no Gateway padrão (10.0.0.1) sem problemas. O tempo geralmente é em torno de 0,450 ms.

Por enquanto, eu só quero resolver o problema com a instalação do debian, então aqui está um pouco dos dados:

# ifconfig
eth0    Link encap:Ethernet  HWaddr 00:15:5d:91:82:07
        inet addr:10.0.4.0  Bcast:10.0.255.255  Mask:255.255.0.0
        inet6 addr: fe80::215:5dff:fe91:8207/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:1842 errors:0 dropped:0 overruns:0 frame:0
        TX packets:7245 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:119697 (116.7 KiB)  TX bytes:701216 (684.7KiB)

(Loopback não incluído)

# route
Kernel IP routing table
Destination    Gateway        Genmask        Flags Metric Ref    Use Iface
default        10.0.0.1       0.0.0.0        UG    0      0        0 eth0
localness      *              255.255.0.0    U     0      0        0 eth0

# ip route
default via 10.0.0.1 dev eth0
10.0.0.0/16 dev eth0  proto kernel  scope link  src 10.0.4.0

O arquivo /etc/network/interfaces é o seguinte:

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
        address 10.0.4.0
        netmask 255.255.0.0
        network 10.0.0.0
        broadcast 10.0.255.255
        gateway 10.0.0.1

Mais algumas informações:

# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

# iptables -L
Chain INPUT (policy ACCEPT)
target     port opt source           destination

Chain INPUT (policy ACCEPT)
target     port opt source           destination

Chain OUTPUT (policy ACCEPT)
target     port opt source           destination

A rede é basicamente configurada da seguinte maneira: o Hyper-V Windows Server tem uma porta de rede, que é conectada à Internet. O host, em seguida, tem RRAS e NAT instalado e usa todo o meu espaço IP público para traduzir NAT para as VMs. Cada VM obtém um bloco /24 diferente de endereços IP do intervalo 10.0.0.0/16 , mas eles mantêm a máscara de sub-rede /16 . A VM do Debian, por exemplo, é 10.0.4.0 - 10.0.4.255 .

    
por 202_accepted 09.04.2016 / 23:34

1 resposta

1

Então, como acontece, o problema é devido ao descarregamento da soma de verificação.

Por algum motivo, os convidados do Linux não trabalham com NAT quando o Descarregamento de Checksum IPv4 está ativado. (Eles trabalham sem NAT muito bem, o que é bizarro.)

Assim, depois de desabilitar o IPv4 Checksum Offload na interface física e virtual e reinicializar o servidor, tudo funciona conforme o esperado.

    
por 10.04.2016 / 19:52