sintaxe adequada para excluir rota padrão para uma interface específica?

6

resumo:

me@client:~$ sudo route del default ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del default dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default gw 10.144.15.234 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default netmask 128.0.0.0 gw 10.144.15.234 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default gw 0.0.0.0 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default netmask 255.255.255.255 gw 0.0.0.0 dev ppp0
SIOCDELRT: No such process

detalhes:

Eu estou tentando depurar uma configuração incorreta relacionada à VPN em um laptop (chamá-lo de "cliente") que está sendo executado

me@client:~$ cat /etc/debian_version
jessie/sid
me@client:~$ uname -rv
3.11-2-amd64 #1 SMP Debian 3.11.8-1 (2013-11-13)
me@client:~$ gcc --version | head -n 1
gcc (Debian 4.8.2-1) 4.8.2
me@client:~$ sudo route --version
[sudo] password for tlroche: 
net-tools 1.60
route 1.98 (2001-04-15)
+NEW_ADDRT +RTF_IRTT +RTF_REJECT +I18N
AF: (inet) +UNIX +INET +INET6 +IPX +AX25 +NETROM +X25 +ATALK +ECONET +ROSE 
HW:  +ETHER +ARC +SLIP +PPP +TUNNEL -TR +AX25 +NETROM +X25 +FR +ROSE +ASH +SIT +FDDI +HIPPI +HDLC/LAPB +EUI64 

Neste cliente, iniciei um cliente OpenVPN (depois de iniciar anteriormente um servidor OpenVPN na nuvem), conectado a um site de acesso remoto e usei a UI da Web desse site para me conectar a uma VPN SSL (proprietária) F5 ( qual eu quero tunelar através do OpenVPN). (Mais detalhes sobre o objetivo do projeto aqui e a configuração do problema here .) Isso produz

me@client:~$ date ; sudo ifconfig
Thu Jan 22 11:48:43 EST 2015
eth0      Link encap:Ethernet  HWaddr <omitted/>
          inet addr:192.168.1.142  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: <omitted/>
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10224715 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6011530 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12886933501 (12.0 GiB)  TX bytes:677423768 (646.0 MiB)
          Interrupt:20 Memory:f2600000-f2620000 

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:65536  Metric:1
          RX packets:497 errors:0 dropped:0 overruns:0 frame:0
          TX packets:497 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:51273 (50.0 KiB)  TX bytes:51273 (50.0 KiB)

# Note I get slightly different IP#s for interface=ppp0 each time I run this scenario.

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.144.15.234  P-t-P:10.144.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:56 (56.0 B)  TX bytes:2418 (2.3 KiB)

tun0      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.6  P-t-P:10.8.0.5  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:304 (304.0 B)  TX bytes:304 (304.0 B)

me@client:~$ date ; sudo route -n
Thu Jan 22 11:48:48 EST 2015
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.144.15.100   128.0.0.0       UG    1      0        0 ppp0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
10.144.0.1      0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
128.0.0.0       10.144.15.100   128.0.0.0       UG    1      0        0 ppp0
134.67.15.30    10.8.0.5        255.255.255.255 UGH   1      0        0 tun0

Uma vez nesse ponto, eu sou direcionado (IIUC) para deletar a rota padrão que está sendo definida pelo F5VPN (na interface = ppp0 , para depuração. Além disso, eu preciso fazer isso rapidamente, porque (e isso é o problema com a configuração incorreta atual) o erro de configuração faz com que o túnel OpenVPN falhe rapidamente, o que quebra a situação que eu quero depurar.

Por isso, é bastante irritante que eu não consiga encontrar a sintaxe correta de route para fazer isso:

me@client:~$ sudo route del default ppp0
SIOCDELRT: No such process

me@client:~$ sudo route del default dev ppp0
SIOCDELRT: No such process

me@client:~$ sudo route del -net default dev ppp0
SIOCDELRT: No such process

me@client:~$ sudo route del -net default gw 10.144.15.234 dev ppp0
SIOCDELRT: No such process

me@client:~$ sudo route del -net default netmask 128.0.0.0 gw 10.144.15.234 dev ppp0
SIOCDELRT: No such process

me@client:~$ sudo route del -net default gw 0.0.0.0 dev ppp0
SIOCDELRT: No such process

me@client:~$ sudo route del -net default netmask 255.255.255.255 gw 0.0.0.0 dev ppp0
SIOCDELRT: No such process

info route não está ajudando, nem minhas pesquisas na web estão encontrando documentos úteis. (Ambos os casos provavelmente devido à minha falta de experiência em rede.) O que estou fazendo errado?

    
por TomRoche 23.01.2015 / 01:11

1 resposta

15

De acordo com a tabela de roteamento incluída na sua pergunta, você não tem uma rota padrão apontando para ppp0 , e é por isso que não é possível excluí-la. ("Nenhum tal processo" aqui significa "Nenhuma tal rota").

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.144.15.100   128.0.0.0       UG    1      0        0 ppp0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

Essa é uma rota para 0.0.0.0/1 (NÃO é uma rota padrão, uma rota padrão é 0.0.0.0/0) apontando para 10.144.15.100 que usa ppp0 , além de uma rota padrão apontando para 192.168.1.1 que vai out eth0 .

A propósito, no Linux, você deve usar o comando ip em vez de ifconfig , route e outros. Os formatos de sintaxe e saída usados por ip são muito mais intuitivos e fáceis de entender e usar.

Você deve poder ver as duas rotas acima (e todas as outras) com ip route e excluí-las com, respectivamente:

ip route del 0.0.0.0/1 via 10.144.15.100
ip route del default via 192.168.1.1
    
por 23.01.2015 / 03:08