Eu tenho duas entradas padrão na minha tabela de rotas

2

Depois de se conectar ao meu servidor OpenVPN, vejo minha tabela de roteamento como:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         10.199.1.5      128.0.0.0       UG        0 0          0 tun0
default         192.168.1.1     0.0.0.0         UG        0 0          0 enp0s3
10.199.1.1      10.199.1.5      255.255.255.255 UGH       0 0          0 tun0
10.199.1.5      *               255.255.255.255 UH        0 0          0 tun0
104.156.228.133 192.168.1.1     255.255.255.255 UGH       0 0          0 enp0s3
128.0.0.0       10.199.1.5      128.0.0.0       UG        0 0          0 tun0
192.168.1.0     *               255.255.255.0   U         0 0          0 enp0s3

Estou confuso com as duas entradas padrão e como interpretá-lo.

Com um IP normal, o Genmask bitwise-AND com o destino para determinar qual entrada corresponde. Mas como Genmask trabalha com "default"?

No exemplo acima, quais pacotes seriam enviados para 10.199.1.5 e o que seria enviado para 192.168.1.1?

Estou tentando marcar os pacotes destinados à porta 22 (SSH) e, em seguida, forçar a rota padrão desses pacotes ao meu roteador padrão, em vez da minha VPN. Mas também gostaria de entender a tabela de roteamento antes de mexer nela.

    
por jkang 21.01.2016 / 19:18

2 respostas

2

o padrão é apenas um alias para 0.0.0.0. Você pode ver que se você entrar

$ route -n

Se eu editar isso na sua tabela e embaralhar as entradas um pouco, parece que:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.199.1.5      128.0.0.0       UG        0 0          0 tun0
128.0.0.0       10.199.1.5      128.0.0.0       UG        0 0          0 tun0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 enp0s3
10.199.1.1      10.199.1.5      255.255.255.255 UGH       0 0          0 tun0
10.199.1.5      *               255.255.255.255 UH        0 0          0 tun0
104.156.228.133 192.168.1.1     255.255.255.255 UGH       0 0          0 enp0s3
192.168.1.0     *               255.255.255.0   U         0 0          0 enp0s3

Aha! Então agora você tem 0.0.0.0 com uma máscara de rede de 128.0.0.0 e também 128.0.0.0 com uma máscara de rede de 128.0.0.0. Esses dois juntos mapeiam toda a internet. Mas, como a máscara de rede 128.0.0.0 é mais específica que a 0.0.0.0, ela tem precedência sobre a rota padrão 'padrão'.

Ergo todo o tráfego é encaminhado para tun0 (um túnel completo), com exceção de 104.156.228.133 (ponto de extremidade VPN) e 192.168.1.0/24 (sua rede local).

Este é um truque que o OpenVPN usa para substituir o gateway padrão sem realmente alterá-lo.

    
por 21.01.2016 / 21:11
0

Apenas os pacotes que usam a interface tun0 usarão o gateway padrão de 192.168.1.1 . Esse comportamento pode ser modificado alterando os "pesos" das diferentes rotas. Veja link para mais informação.

    
por 21.01.2016 / 19:44

Tags