Configurando a rota padrão para o tun1: RTNETLINK responde: Nenhum processo

1

No momento, estou tentando rotear todo o tráfego de entrada e saída da rede para / de aplicativos que estão ouvindo em um túnel tunel OpenVPN através do dito túnel.

Aqui estão os meus dispositivos: tun0 é um servidor OpenVPN em execução na máquina que fornece acesso à rede local da máquina para máquinas remotas. tun1 é um cliente OpenVPN para um servidor remoto.

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1c:c0:d7:98:1c  
          inet addr:192.168.178.9  Bcast:192.168.178.255  Mask:255.255.255.0
          inet6 addr: fe80::21c:c0ff:fed7:981c/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:103987444 errors:0 dropped:0 overruns:0 frame:0
          TX packets:161412265 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:583178850 (556.1 MiB)  TX bytes:1006632339 (959.9 MiB)
          Interrupt:43 Base address:0x8000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:505197 errors:0 dropped:0 overruns:0 frame:0
          TX packets:505197 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:91836367 (87.5 MiB)  TX bytes:91836367 (87.5 MiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.9.8.1  P-t-P:10.9.8.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:272 (272.0 B)  TX bytes:960 (960.0 B)

tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.10  P-t-P:10.8.0.9  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:588 (588.0 B)  TX bytes:588 (588.0 B)

Aqui estão as rotas atualmente ativas:

# ip route show table main
default via 192.168.178.1 dev eth0 
10.8.0.1 via 10.8.0.9 dev tun1 
10.8.0.9 dev tun1  proto kernel  scope link  src 10.8.0.10 
10.9.8.0/24 via 10.9.8.2 dev tun0 
10.9.8.2 dev tun0  proto kernel  scope link  src 10.9.8.1 
192.168.178.0/24 dev eth0  proto kernel  scope link  src 192.168.178.9 

Após algumas pesquisas, descobri que precisava usar o "roteamento de políticas" para direcionar todo o tráfego no tun1 através de outro gateway (10.8.0.1). Então criei uma nova tabela "tun1" e tentei configurá-la.

# echo "1 tun1tbl" >> /etc/iproute2/rt_tables
# ip route add 10.8.0.0/24 dev tun1 src 10.8.0.10 table tun1tbl
# ip route add default via 10.8.0.1 dev tun1 table tun1tbl
RTNETLINK answers: No such process

Por que não posso definir a rota padrão para este dispositivo / tabela?

edit: Acabei de encontrar outra solução potencial, usando apenas route , mas falha com um erro semelhante:

# route add default gw 10.8.0.1 dev tun1
SIOCADDRT: No such process
    
por jbaiter 11.10.2012 / 12:06

1 resposta

1

Em seu comando, você solicita o envio de pacotes via tun1 através do próximo salto 10.8.0.1 :

ip route add default via 10.8.0.1 dev tun1 table tun1tbl

Mas essa interface de rede não está em uma sub-rede, que conteria o endereço de destino:

tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.10  P-t-P:10.8.0.9  Mask:255.255.255.255

Assim, os comandos se recusam a adicionar tal rota.

Como tun1 é uma interface ponto-a-ponto, você não precisa de um gateway para enviar pacotes. Basta remover a parte via do seu comando:

ip route add default dev tun1 table tun1tbl
    
por 12.05.2015 / 11:45