Por que não funciona sem o disfarce?

0

Eu tenho roteador - G, meu desktop - D, laptop - L. Eu quero conectar L à internet via D.

G em 192.168.1.1

D: enp1s0 - 192.168.1.2/24, gw G, eno1 - 10.0.0.1/16, serve como roteador para L

L: enp1s0 - 10.0.0.2, gw 10.0.0.1. Tabelas de roteamento em L:

netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG        0 0          0 enp1s0
10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 enp1s0
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0

Encaminhamento de pacotes em D ativado:

sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

No entanto, L não se conecta à internet:

traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  10.0.0.1 (10.0.0.1)  0.346 ms  0.339 ms *
 2  10.0.0.1 (10.0.0.1)  0.370 ms !X * *

É óbvio que os pacotes de L podem alcançar D, mas não poderiam passar mais longe.

No entanto, L se conecta quando eu habilito o mascaramento em D:

firewall-cmd --zone=public --add-masquerade=yes
success

Você pode explicar por que o L se conecta à Internet somente quando o mascaramento na interface do D (que está conectado diretamente ao L) está habilitado?

    
por Bulat M. 05.01.2017 / 17:11

1 resposta

1

O motivo pelo qual você precisa do MASQUERADE é devido ao modo como o NAT funciona.

Considere o seu roteador, G. Ele obtém um IP do provedor de serviços de Internet. Esse endereço IP é o que todos os sistemas por trás do roteador vão até a Internet, então todos os sistemas estão se disfarçando como aquele endereço IP. (Que é como os roteadores funcionam, em configurações básicas residenciais).

Seu computador D, agindo como um gateway NAT para seu laptop, L, está vinculado às mesmas regras de funcionamento da Internet. Idealmente, o que você estaria fazendo seria ter pelo menos um endereço IP interno e, quando solicitasse um recurso diferente dos outros computadores dessa sub-rede, exigiria a capacidade de mascarar os pacotes de L como o endereço IP interno de D, a fim de encaminhar corretamente pacotes através de G.

Este também é o caso de usar um computador como um servidor VPN; para ir para o resto da rede ou especificamente para uma rede externa, você precisa se disfarçar como o endereço IP do servidor.

É assim que o NAT funciona. O mesmo se aplica aos proxies, etc.

    
por Thomas Ward 06.01.2017 / 00:05