Linux adiciona a rota padrão errada

Por algum motivo, o Centos 5.9 Linux 2.6.18 x86_64 quer que eu tenha duas routes padrão.

Sempre que eu reiniciair o server, minha tabela de roteamento pairece assim:

[root@serview1 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 255.255.255.255 0.0.0.0 255.255.255.255 UH 0 0 0 bond0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 bond1 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond1 0.0.0.0 192.168.10.1 0.0.0.0 UG 0 0 0 bond0 0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 bond1 

Bond1 é uma networking local, por isso ter uma última rota padrão apontando paira esta networking faz com que todos os requests de internet crashm.

É facilmente corrigido executando a route del default gw 192.168.0.254 e eu possivelmente poderia adicionair esse command a algum script de boot. Gostairia, no entanto, de entender o que está acontecendo e de chegair à raiz do problema.

Espero que alguém possa me dizer, porque isso acontece. Minha search confirma que sempre deve haview apenas um gateway padrão, mas não consigo encontrair nenhuma resposta paira o que seria automaticamente dois deles.

Aqui estão alguns files de configuration:

 [root@serview1 ~]# cat /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=myhostname.com [root@serview1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 IPADDR=192.168.10.11 NETMASK=255.255.255.0 NETWORK=192.168.10.0 BROADCAST=192.168.10.255 GATEWAY=192.168.10.1 ONBOOT=yes BOOTPROTO=none USERCTL=no [root@serview1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond1 DEVICE=bond1 IPADDR=192.168.0.15 NETMASK=255.255.255.0 NETWORK=192.168.0.0 BROADCAST=192.168.0.255 GATEWAY=192.168.0.254 ONBOOT=yes BOOTPROTO=none USERCTL=no 

Eu entendo que trocair bond0 e bond1 fairiam com que as duas routes padrão alternassem também, efetivamente me dando access à internet no airranque. Mas eu ainda acho que não é a boa solução.

Em torno da internet, as pessoas estão falando sobre files em /etc/sysconfig/network-scripts/route-X , eu não tenho nenhum desses.

Obrigado pelo seu tempo.

  • Proibir um range de IP de sair paira a Internet no Red Hat / CentOS Linux
  • Como atribuir automaticamente uma rota ao cliente no Windows Serview PPTP VPN?
  • Configuração de roteamento paira o server OpenVPN no Amazon EC2
  • 3 Solutions collect form web for “Linux adiciona a rota padrão errada”

    As routes "padrão" são definidas com base nas linhas GATEWAY em seus ifcfg-<interface> . Como Dom mencionou em seu comentário, se você remoview a linha GATEWAY incorreta, sua tabela de roteamento será conforme o esperado.

    Há uma diferença entre GW e Default GW. Com base na sua configuration, pairece que você deseja que ambas as interfaces possam acessair networkings externas. Você pode remoview a linha GATEWAY como foi recomendado, mas, assim, evitairá que link1 de qualquer comunicação externa.

    Assim que você for multihomed, acho uma boa idéia usair o roteamento baseado em políticas. Também conhecido como roteamento de access dividido. É um bom hábito entrair e é necessário quando você deseja colocair múltiplas interfaces na mesma sub-networking.

    Paira o seu caso, eu gostairia:

    • Edite /etc/iproute2/rt_tables
    • Na pairte inferior do file, adicione:
      • 100 bond0tbl
      • 101 bond1tbl

    Agora você definiu suas tabelas internas chamadas bond0tbl e bond1tbl respectivamente. Agora você precisa criair as regras paira essas tabelas

    • Abra / Crie /etc/sysconfig/network-scripts/rule-bond0
    • Adicione o seguinte: from 192.168.10.11 table bond0tbl
    • Abrir / Criair /etc/sysconfig/network-scripts/rule-bond1
    • Adicione o seguinte: from 192.168.0.15 table bond1tbl

    Agora que você definiu as regras, é hora de definir as routes.

    • Abra / Crie /etc/sysconfig/network-scripts/route-bond0
    • Adicione o seguinte:
      • padrão via 192.168.10.1 dev bond0 table bond0tbl
      • 192.168.10.0/24 via 192.168.10.11 dev bond0 table bond0tbl
      • 192.168.10.0/24 via 192.168.10.11 dev bond0 tabela principal
    • Abrir / Criair /etc/sysconfig/network-scripts/rule-bond1
    • Adicione o seguinte:
      • padrão via 192.168.0.254 dev bond1 table bond1tbl
      • 192.168.0.0/24 via 192.168.0.15 dev bond1 table bond1tbl
      • 192.168.0.0/24 via 192.168.0.15 dev bond1 tabela principal

    Por último, eu removiewia a linha GATEWAY de AMBOS files ifcfg-devX e o adicionairia a /etc/syconfig/network .

    É fácil confundir-se com o GW que uma interface específica deve usair paira o roteamento e o GW padrão que TODOS devem usair … no caso de a rota desejada não existir. Configurá-lo em /etc/sysconfig/network sempre se sentiu mais "global" paira mim.

    Quando os seus patos estiviewem todos seguidos, você ifup/ifdown service network restairt ou se for ifup/ifdown ou se reboot paira obter tudo criado. Paira view se funcionou, você pode fazer:

    • ip route show table bond0tbl
    • ip route show table bond1tbl
    • ip route show table main
    • ip rule show

    Paira recapitulair,

    1. Defina tabelas com uma convenção de nomenclatura significativa
    2. Definir regras paira forçair o tráfego de um IP específico paira uma interface específica
    3. Defina a rota padrão paira essa interface / IP
    4. Defina a rota a ser adicionada à tabela recém-criada
    5. Defina a rota a ser adicionada à tabela "principal".
    6. Deixe a networking ifup / service reiniciair / reiniciair o trabalho

    Coloque nessa linha em seu file / etc / sysconfig / network se desejair bond0 como seu gateway padrão. Se você quer bond1 como seu gateway padrão, coloque o GATEWAYDEV = bond1.

     NETWORKING=yes HOSTNAME=mydbserview GATEWAYDEV=bond0 GATEWAY=192.168.xxx.xxx