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 estava usando endereços IP "incorretos" para conexões de saída. Isso é um problema, porque a pesquisa inversa não corresponde e, portanto, os e-mails 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 o 81.169.180.51?
Editar : a máscara de rede 255.255.255.255 é consistente com a documentação e a resposta DHCP da empresa de hospedagem. Chamar /etc/init.d/networking restart várias vezes acabará com o endereço IP correto para conexões de saída de saída. 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, configurei 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 idéia de como garantir que o endereço IP de origem 192.168.0.2 seja usado nas conexões TCP de saída, ficaria muito grato. / Editar 2
A resposta de bindbn é boa, mas encontrei algumas complicações.
1) Você deve verificar a "lista de rotas IP", como diz o bindbn. Algumas outras regras da lista podem 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 pelo comando ip funcionam apenas até a próxima reinicialização. Esta resposta A adição permanente de regras de roteamento da política de origem explica como torná-la persistente.
Em resumo, você pode adicionar o comando ip route para executar como uma linha "up" ou "post-up" em / etc / network / interfaces. Você pode adicionar uma linha "inativa" correspondente para remover a rota.
fonte
Tente mudar
para
Isso deve forçar sua interface física a aparecer primeiro. Você pode ou não precisar alterar a entrada de permissão de hotplug para eth0: 0 também.
fonte
Por curiosidade, por que seus endereços IP têm uma máscara de rede 255.255.255.255? Isso realmente não é viável, pois significaria que todo o endereço é a rede. Não há espaço para anfitriões. O fato de seu endereço de transmissão ser o mesmo do IP do host também é preocupante, mas provavelmente devido ao problema da máscara de rede. Parece que sua máscara de rede deve ser 255.255.255.0.
Isso foi feito para fornecer a você 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 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 entender por que a 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 ajustaria. Se isso não ajudar, talvez você possa explicar por que as coisas estão sendo configuradas dessa maneira.
Edit: Isso funcionava bem neste host ou era uma máquina / sistema operacional diferente? Alguma idéia do que pode ter mudado? A razão pela qual pergunto é porque o Linux realmente não gosta de ter duas interfaces na mesma sub-rede. Isso me enlouqueceu ao tentar fazer isso funcionar em minha própria rede. Parece bem possível que você tenha funcionado com o IP certo, até reiniciar / reiniciar os serviços de rede. Então surgiu usando a interface errada. Referência: http://anders.com/cms/258
Você também pode tentar
ifdown
eth0: 0, adicionar a rota eifup
voltar a usá-la. 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.Edição adicional: Você pode tentar usar as mais recentes ferramentas de gerenciamento de IP no Debian
iproute 2
,. ( Link secundário ) Parece algo semelhante aoBringin up the interface:
ip link set eth0 up
ip addr add 192.168.0.2/24 dev ethe0
ip addr add 192.168.0.3/24 dev eth0
Em seguida, configure a tabela de roteamento com
ip route add 10.0.0.0/16 via 192.168.0.2
--Christopher Karel
fonte
Sua configuração atual não deve realmente funcionar. 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 os dois endereços IP.
Exemplo (este é o meu servidor privado e os endereços IP são reais):
O próprio servidor está no 217.10.144.210, que fica na mesma sub-rede que o gateway (necessário, caso contrário, nenhum tráfego poderá 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, deverá receber uma mensagem "sem rota para hospedar".
Converse com o ISP e obtenha as configurações corretas, atualize a configuração da interface, reinicie a rede e verifique novamente.
fonte