Especificando endereço IP para conexões de saída em um host multi-ip

13

um dos meus servidores (Debian 5.0.6) possui dois endereços IP públicos na mesma interface. Isso costumava funcionar bem por meses, mas de repente está usando endereços IP "errados" para conexões de saída. Isso é um problema porque a pesquisa inversa não coincide e os e-mails, portanto, recebem pontos de spam.

eth0      Link encap:Ethernet  Hardware Adresse 00:1b:21:14:8e:9c  
          inet Adresse:81.169.180.51  Bcast:81.169.180.51  Maske:255.255.255.255
          inet6-Adresse: fe80::21b:21ff:fe14:8e9c/64 Gültigkeitsbereich:Verbindung

eth0:0    Link encap:Ethernet  Hardware Adresse 00:1b:21:14:8e:9c  
          inet Adresse:85.214.157.120  Bcast:85.214.157.120  Maske:255.255.255.255


Kernel-IP-Routentabelle
Destination     Router          Genmask         Flags Metric Ref    Use Iface
81.169.180.1    0.0.0.0         255.255.255.255 UH    0      0        0 eth0
0.0.0.0         81.169.180.1    0.0.0.0         UG    0      0        0 eth0

Atualmente, ele está usando 85.214.157.120 para conexões de saída. Como faço para usar 81.169.180.51?

Editar : A máscara de rede de 255.255.255.255 é consistente com a documentação e a resposta DHCP da empresa de hospedagem. Chamar a reinicialização /etc/init.d/networking várias vezes terminará com o endereço IP correto para conexões fora da rede. Mas isso obviamente não é uma solução estável. / Editar

Editar 2 : para garantir que a rota do host não esteja relacionada ao meu problema, configuro uma rede de teste local:

eth0      inet Adresse:192.168.0.2  Bcast:192.168.0.255  Maske:255.255.255.0
eth0:0    inet Adresse:192.168.0.3  Bcast:192.168.0.255  Maske:255.255.255.0

192.168.0.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0        192.168.0.1     0.0.0.0         UG    0      0        0 eth0

Se alguém tiver uma ideia de como se certificar de que o endereço IP de origem 192.168.0.2 é usado em conexões tcp de saída, ficaria agradecido. / Editar 2

    
por Hendrik Brummermann 18.09.2010 / 22:03

5 respostas

23

Atualizar padrão:

ip route change default via 81.169.180.1 src 81.169.180.51

Verifique a configuração:

ip route list
    
por 19.09.2010 / 07:19
3

A resposta de bindbn é boa, mas encontrei algumas complicações.

1) Você deve verificar "ip route route" como diz bindbn. Alguma outra regra na lista pode ter precedência sobre a rota padrão. Pode ser necessário excluir essa regra ou criar uma regra ligeiramente diferente.

2) Todas as alterações feitas através do comando ip funcionam apenas até a próxima reinicialização. Essa resposta Adicionar permanentemente as regras de roteamento da política de origem explica como torná-la persistente.

Em resumo, você pode adicionar o comando ip route que você precisa para executar como uma linha "up" ou "post-up" para / etc / network / interfaces. Você pode adicionar uma linha "abaixo" correspondente para remover a rota.

    
por 08.10.2015 / 17:41
1

Tente mudar

 allow-hotplug eth0

para

 auto eth0

Isso deve forçar sua interface física a aparecer primeiro. Você pode ou não precisar alterar a entrada allow-hotplug para eth0: 0 também.

    
por 19.09.2010 / 07:11
1

Por curiosidade, por que seus endereços IP possuem uma máscara de rede de 255.255.255.255? Isso realmente não é viável, já que isso significaria que o endereço completo é a rede. Não há espaço para os anfitriões. O fato de seu endereço de broadcast ser o mesmo do IP do host também é preocupante, mas provavelmente devido ao problema da netmask. Parece que sua máscara de rede deve ser 255.255.255.0.

Isso foi feito para fornecer dois hosts na mesma sub-rede? Pode ser preferível simplesmente fazer uma alteração para que cada interface esteja em uma sub-rede diferente. 255.255.255.128 colocaria eth0 e seu gateway (de 81.169.180.1) na mesma sub-rede, com eth0: 0 em uma sub-rede separada. No entanto, isso significaria que a eth0 só poderia se comunicar com 81.169.180.1-81.169.180.127. E eth0: 0 indo de 129-254. Mas, dito isso, não consigo ver por que sua configuração atual funciona.

Agora, isso causará os problemas que você está vendo acima? Não consigo ver um link direto, mas é possível.
É certamente algo que eu faria. Se isso não ajudar, talvez você possa explicar por que você tem coisas configuradas dessa maneira.

Editar: Isso funcionava bem nesse host ou era uma máquina / sistema operacional diferente? Alguma ideia do que poderia ter mudado? A razão pela qual eu pergunto é porque o Linux realmente não gosta de ter duas interfaces na mesma sub-rede. Isso me deixa louco tentando fazer isso funcionar na minha própria rede. Parece bem possível que você esteja trabalhando no IP correto, até que você reinicie / reinicie os serviços de rede. Então surgiu usando a interface errada. Referência: link

Você também pode tentar ifdown em eth0: 0, adicionar a rota e ifup de volta. Isso pode garantir que o IP correto seja usado.

A adição manual de dev eth0 pode ajudar, mas parece que a rota foi feita corretamente.

Editar mais: Você pode tentar usar as mais novas ferramentas de gerenciamento de IP no Debian, iproute 2 . ( Link secundário ) Parece algo nos moldes de < br> Trazendo a interface: ip link set eth0 up

ip addr add 192.168.0.2/24 dev ethe0 e ip addr add 192.168.0.3/24 dev eth0

Em seguida, configurar a tabela de roteamento com ip route add 10.0.0.0/16 via 192.168.0.2



- Christopher Karel

    
por 18.09.2010 / 22:26
-1

Sua configuração atual não deve funcionar de maneira alguma. Como a máscara de rede para ambas as interfaces é 255.255.255.255, não há espaço para um gateway. No entanto, para fornecer tráfego significativo, seu servidor precisa de um gateway. O ISP que fornece os dois endereços IP públicos também deve fornecer configurações de máscara de rede e gateway para ambos os endereços IP.

Exemplo (este é meu servidor privado e os endereços IP são reais):

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
217.10.144.208  0.0.0.0         255.255.255.248 U     0      0        0 eth0
0.0.0.0         217.10.144.209  0.0.0.0         UG    0      0        0 eth0

O próprio servidor está em 217.10.144.210, que fica na mesma sub-rede que o gateway (tem que, caso contrário, nenhum tráfego pode ser roteado). Presumivelmente, o ISP também está fornecendo a mesma sub-rede para alguns outros clientes.

Se você estiver nesse servidor e fizer um ping no seu gateway, receberá uma mensagem "não encaminhar para o host".

Fale com o ISP e obtenha as configurações corretas, atualize a configuração da interface, reinicie a rede e faça o check-out novamente.

    
por 18.09.2010 / 23:16