Specifica dell'indirizzo IP per le connessioni in uscita su un host multi ip


15

uno dei miei server (Debian 5.0.6) ha due indirizzi IP pubblici sulla stessa interfaccia. In passato funzionava bene da mesi, ma all'improvviso utilizza indirizzi IP "errati" per le connessioni in uscita. Questo è un problema perché la ricerca inversa non corrisponderà e quindi le e-mail ottengono punti 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

Attualmente utilizza 85.214.157.120 per le connessioni in uscita. Come ottengo che usi 81.169.180.51?

Modifica : la maschera di rete di 255.255.255.255 è coerente con la documentazione e la risposta DHCP della società di hosting. Chiamare /etc/init.d/networking riavvio più volte finirà con l'indirizzo IP corretto per le connessioni di outbount. Ma questa ovviamente non è una soluzione stabile. /Modificare

Modifica 2 : per assicurarsi che il percorso dell'host non sia correlato al mio problema, ho impostato una rete di test locale:

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 qualcuno ha idea di come assicurarsi che l'indirizzo IP sorgente 192.168.0.2 venga utilizzato su connessioni tcp in uscita, sarei grato. / Modifica 2

Risposte:


24

Aggiornamento predefinito:

ip route change default via 81.169.180.1 src 81.169.180.51

Controlla la configurazione:

ip route list

1
Come rendere permanente questo dopo il riavvio?
Dezhi,

3

La risposta di bindbn è buona, ma ho trovato alcune complicazioni.

1) Dovresti controllare "ip route list" come dice bindbn. Alcune altre regole nell'elenco potrebbero avere la precedenza sulla route predefinita. Potrebbe essere necessario eliminare quella regola o creare una regola leggermente diversa.

2) Tutte le modifiche apportate tramite il comando ip funzionano solo fino al prossimo riavvio. Questa risposta L'aggiunta permanente di regole di routing dei criteri di origine spiega come renderlo persistente.

In breve, puoi aggiungere il comando ip route che devi eseguire come linea "up" o "post-up" su / etc / network / interfaces. È possibile aggiungere una riga "in basso" corrispondente per rimuovere il percorso.


1

Prova a cambiare

 allow-hotplug eth0

per

 auto eth0

Ciò dovrebbe costringere l'interfaccia fisica a emergere per prima. Potrebbe essere necessario o meno modificare la voce allow-hotplug anche per eth0: 0.


1

Per curiosità, perché i tuoi indirizzi IP hanno una maschera di rete di 255.255.255.255? Questo non è davvero fattibile, dal momento che significherebbe che l'intero indirizzo è la rete. Nessuna stanza per gli host. Anche il fatto che il tuo indirizzo di trasmissione sia lo stesso del tuo IP host è preoccupante, ma probabilmente a causa del problema della maschera di rete. Sembra piuttosto che la tua maschera di rete dovrebbe essere 255.255.255.0.

È stato fatto per darti due host sulla stessa sottorete? Potrebbe essere preferibile apportare semplicemente una modifica in modo che ogni interfaccia si trovi su una sottorete diversa. 255.255.255.128 metterebbe eth0 e il gateway (di 81.169.180.1) sulla stessa sottorete, con eth0: 0 su una sottorete separata. Tuttavia, ciò significherebbe che eth0 poteva comunicare solo con 81.169.180.1-81.169.180.127. E eth0: 0 che va da 129-254. Detto questo, non riesco davvero a capire perché la tua configurazione attuale funzioni affatto.

Ora, questo causerà i problemi che stai vedendo sopra? Non riesco a vedere un collegamento diretto, ma è possibile.
È certamente qualcosa che vorrei modificare. Se ciò non aiuta, forse puoi spiegare perché hai impostato le cose in questo modo.


Modifica: funzionava bene su questo host o era un computer / sistema operativo diverso? Qualche idea di cosa potrebbe essere cambiato? Il motivo per cui lo chiedo è perché a Linux in realtà non piace avere due interfacce sulla stessa sottorete. Mi ha fatto impazzire cercando di farlo funzionare sulla mia rete. Sembra abbastanza possibile che tu abbia funzionato sull'IP giusto, fino al riavvio / riavvio dei servizi di rete. Poi è arrivato usando l'interfaccia sbagliata. Riferimento: http://anders.com/cms/258

Puoi anche provare ifdownsu eth0: 0, quindi aggiungere il percorso, quindi ifupripristinarlo. Ciò potrebbe garantire che venga utilizzato l'IP corretto.

L'aggiunta manuale dell'aiuto dev eth0 potrebbe essere utile, ma sembra che il percorso sia stato eseguito correttamente.


Ulteriori Edit: Si potrebbe provare a utilizzare i più recenti strumenti di gestione IP in Debian, iproute 2. ( Link secondario ) Sembra qualcosa sulla
falsariga di Bringin 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

Quindi impostare la tabella di routing con
ip route add 10.0.0.0/16 via 192.168.0.2


--Christopher Karel


Una maschera di rete di 255.255.255.255 è coerente con la documentazione della società di hosting e la risposta DHCP. Secondo Google è normale avere 255.255.255.255 su reti punto a punto. Per quanto ne so, sarebbe piuttosto stupido da parte della società di hosting utilizzare una rete point to point data il rischio per la sicurezza di avere host non attendibili nello stesso dominio broadcast di livello 2.
Hendrik Brummermann,

Come Wolfgangsz stava dicendo sopra, un / 32 non è uno standard per un collegamento punto a punto. So che si può fare un / 31, ma ovviamente uccide la trasmissione e gli identificatori di rete. La "route host" che hai visto menzionato si riferisce al suo utilizzo nelle tabelle di routing. ad esempio: è un percorso verso un host specifico, non verso una rete. Da qui la sua presenza nella RFC che hai collegato su OSPF, un protocollo di routing. Detto questo, se sei sicuro che il tuo ISP ti dice di farlo con il tuo sistema operativo, allora potresti anche continuare.
Christopher Karel,

OK, sono state apportate alcune modifiche che potrebbero aiutare il problema originale.
Christopher Karel,

-1

La tua configurazione attuale non dovrebbe effettivamente funzionare affatto. Poiché la maschera di rete per entrambe le interfacce è 255.255.255.255, non c'è spazio per un gateway. Tuttavia, per fornire traffico significativo, il tuo server ha bisogno di un gateway. L'ISP che fornisce i due indirizzi IP pubblici dovrebbe anche fornire le impostazioni della maschera di rete e del gateway per entrambi gli indirizzi IP.

Esempio (questo è il mio server privato e gli indirizzi IP sono reali):

Tabella di routing IP del kernel
Destinazione Gateway Maschera genetica Flag Metrico Rif Usa 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

Il server stesso si trova su 217.10.144.210, che si trova nella stessa sottorete del gateway (è necessario, altrimenti non è possibile instradare il traffico). Presumibilmente l'ISP fornisce la stessa sottorete anche ad altri clienti.

Se ti trovi su quel server e fai un ping al tuo gateway, dovresti ricevere un messaggio "nessuna route verso l'host".

Parla con l'ISP e ottieni le impostazioni corrette, quindi aggiorna la configurazione dell'interfaccia, riavvia la rete e ricontrolla.


2
Una maschera di rete di 255.255.255.255 è coerente con la documentazione della società di hosting e la risposta DHCP. Secondo Google è normale avere 255.255.255.255 su reti punto a punto. Per quanto ne so, sarebbe piuttosto stupido da parte della società di hosting utilizzare una rete point to point data il rischio per la sicurezza di avere host non attendibili nello stesso dominio broadcast di livello 2.
Hendrik Brummermann,

Se disponi di una rete punto-punto, la tua maschera di rete sarebbe 255.255.255.252. Ciò consentirebbe ai due host che compongono i due end-point, un indirizzo di rete e un indirizzo di trasmissione. Questo è lo scenario normale per quel tipo di connessioni. Nel tuo caso, l'altro host sarebbe quindi la tua porta di accesso al resto del mondo. Non mi interessa davvero ciò che si scava su google, ma è così che funziona il networking TCP / IP. E chiaramente non funziona per te. Vi lascio le conclusioni.
Wolfgangsz,

Grazie, ma questa parte funziona perfettamente per me. A proposito, viene chiamato "percorso host" nello standard Internet ufficiale: rfc-editor.org/rfc/rfc2328.txt
Hendrik Brummermann

Il mio problema è riproducibile anche su una rete locale: ifconfig eth0 192.168.0.2 mask 255.255.255.0 / ifconfig eth0: 1 192.168.0.3 mask 255.255.255.0 / route add default gw 192.168.0.1
Hendrik Brummermann
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.