Come fa un pacchetto IP a sapere quale gateway prendere?


11

Supponiamo che esistano due gateway sulla stessa rete. Se ho capito bene, la tabella di routing IP sul computer del mittente decide quali pacchetti vengono instradati attraverso quale gateway.

Le tabelle di routing IP contengono l'indirizzo IP del gateway.

Come viene utilizzato questo indirizzo IP del gateway quando si inviano pacchetti IP?


1
Il pacchetto non "conosce", il router decide a quale gateway inviarlo, su qualsiasi collegamento esistente tra il router e il gateway scelto. (Come indicano le risposte, Ethernet è un livello 2 ben noto e comune per il traffico IP.)
Peter Cordes

Risposte:


14

TL; DR: l'indirizzo del gateway è memorizzato solo in un frame Ethernet che contiene quel pacchetto TCP / IP

Il traffico server-> switch-> router, così come il traffico server-> switch-> server, è dove l'indirizzamento IP non svolge alcun ruolo significativo. È il mondo del protocollo sottostante, molto probabilmente Ethernet. Quindi è un mondo che gira su MAC address.

Quindi devi solo risolvere la confusione che un gateway predefinito è un indirizzo IP. È una specie di ... all'avvio ... ma quel parametro IP del gateway è necessario solo per fare una cosa, vale a dire: chi ha 192.168.1.1 da queste parti? La risposta arriva che il gateway è MAC 88: 99: aa: bb: cc: dd: ee: ff. (Questa è la query / risposta ARP, il traduttore tra i due mondi.) Il pacchetto va a quel MAC a livello Ethernet, nonostante possa contenere una destinazione diversa a livello IP.

Quindi il pacchetto è contrassegnato per andare a un gateway scelto codificandolo nel campo "MAC di destinazione" del frame Ethernet. Il campo determina quale gateway su quella rete lo riceverà, se ci sono più gateway. (Il "frame" è una capsula sottostante che contiene il pacchetto o parte del pacchetto.)


2
Andrei oltre e direi che è l'unica risposta qui che risponde effettivamente alla domanda.
Peter Green,

3
Inoltre, non si tratta solo di un gateway predefinito a cui si applica, ma si applica all'indirizzo "hop successivo" per qualsiasi voce nella tabella di routing.
Peter Green,

2
Naturalmente, ci sono altri protocolli layer-1/2 oltre a Ethernet che vengono utilizzati. I protocolli LAN IEEE hanno indirizzi MAC, ma altri protocolli usano qualcosa o nient'altro.
Ron Maupin,

6

L'intestazione del datagramma IP contiene solo informazioni sull'indirizzo dell'origine e della destinazione. In base alla destinazione, il router dovrebbe sapere dove inoltrare il pacchetto in seguito, e queste informazioni sono memorizzate nella tabella di routing.

Ci potrebbero essere percorso statico di informazioni per l'indirizzo o la sua sottorete e il gateway predefinito viene utilizzato per il resto. Questo di solito è il caso della rete locale: potrebbe esserci un routing statico verso altre reti locali e gateway predefinito per il resto, ad esempio Internet. Nel caso di più gateway predefiniti, ovvero rotte verso 0.0.0.0o ::, quello attivo viene scelto dal suo valore Preferenza o Metrica .

Le cose si complicano quando ci sono diversi percorsi tra le destinazioni, come ce ne sono tra gli ISP a livello di Internet. Esistono diversi metodi per condividere le informazioni tra i router: Routing Information Protocol (RIP), Open Shortest Path First (OSPF) e Border Gateway Protocol (BGP). Indipendentemente dal modo in cui queste informazioni sono condivise, la tabella di routing conosce l'hop successivo e il pacchetto IP è a conoscenza della sua destinazione finale.


1
Vale anche la pena menzionare il routing basato su criteri in cui è possibile selezionare diverse tabelle di routing in base a vari criteri come IP di origine o contrassegno del firewall.
Bratchley,

Non dimenticare di spiegare che la corrispondenza del prefisso più lunga ha la precedenza su tutto il resto quando ci sono due possibili corrispondenze.
Ron Maupin,

La domanda non riguarda il modo in cui il router inoltra il pacchetto, ma in primo luogo come il mittente lo invia al router corretto.
Barmar,

@Barmar: la versione originale di questa domanda avrebbe potuto essere interpretata in due modi, e questo ha risposto all'altra. Il processo di scelta del router in base alla tabella di routing è lo stesso sulla macchina di origine. Pertanto, trovo ancora utile questa risposta mentre l'altro ottiene uno strato in basso. Si completano a vicenda.
Esa Jokinen,

Ho appena controllato la cronologia delle modifiche. Non vedo una differenza rilevante nella versione originale. La domanda è come il pacchetto arriva al router determinato dalla tabella di routing.
Barmar,

2

Una possibilità è che la rete sia configurata con un protocollo di ridondanza di primo hop (FRHP), come VRRP o HSRP. L'FHRP ha un indirizzo gateway virtuale utilizzato dagli host e il traffico inviato all'indirizzo virtuale viene raccolto da uno dei router fisici, che quindi inoltra il traffico. Se il router primario non funziona, un router secondario può determinarlo e assumere l'inoltro dei pacchetti.


In ogni caso, i pacchetti non determinano il percorso che prendono. Ogni pacchetto viene inoltrato individualmente e indipendentemente da qualsiasi altro pacchetto, in base alle informazioni contenute nella tabella di routing di un router, e i pacchetti alla stessa destinazione dalla stessa origine possono prendere percorsi diversi se una tabella di routing cambia.

I router apprendono i percorsi in tre modi:

  1. Reti connesse direttamente
  2. Percorsi configurati staticamente
  3. Attraverso un protocollo di routing dinamico

2

Risposta breve e semplice: non viene codificato nel pacchetto, o è l'indirizzo di destinazione Ethernet a seconda di come lo si guarda. Lo stack IP / Ethernet esamina quale gateway gestisce l'indirizzo IP di destinazione, invia una richiesta ARP per l'indirizzo IP del gateway per ottenere il suo indirizzo MAC, quindi invia il pacchetto all'indirizzo MAC del gateway. Il gateway quindi inoltra il pacchetto e fa di nuovo la stessa cosa. Questo presuppone una rete Ethernet.

Penso di aver risposto a quello che mi stai chiedendo. Una volta mi chiedevo la stessa cosa. La tua domanda può anche essere interpretata come come un host, data una particolare tabella di routing, decida a quale gateway inviare un pacchetto in uscita.


0

Naturalmente, un dettaglio che viene visto è se un percorso corrisponde. Se invio a 192.0.2.55/24 e un percorso è disponibile per il traffico verso 10.55.0.0/16, tale percorso viene ignorato perché non applicabile.

Il prossimo criterio che viene generalmente considerato è che le rotte più specifiche abbiano la priorità sulle rotte più generali. Per percorso "specifico" intendo le sottoreti più piccole. In altre parole, numeri più grandi quando si usa la notazione / CIDR e maschere di sottorete più grandi quando si usa la notazione "subnet mask". In altre parole, reti di destinazione con meno indirizzi possibili.

Pertanto, un "gateway predefinito", noto anche come "gateway di ultima istanza", in genere specifica una destinazione per tutto il traffico verso la rete 0.0.0.0/0. Qualsiasi percorso per una rete più piccola sarà "più specifico" di quello e avrà la priorità. Pertanto, 192.0.2.0/24 avrà più priorità.

In terzo luogo, le rotte in genere hanno un altro campo chiamato "metrica", o talvolta un nome diverso come "priorità". Se hai più reti della stessa dimensione, ciò può avere un impatto.

Questi valori "metrici" possono essere qualcosa che viene generato automaticamente (ad esempio, in questo modo viene utilizzata una rete ad alta velocità per più traffico), ma può essere regolata manualmente.

Dove devono essere codificate le informazioni sul gateway codificate all'interno dei pacchetti IP inviati?

I pacchetti IP non includono alcuna informazione sull'instradamento, tranne per specificare l'indirizzo IP di destinazione. I dettagli di instradamento sono determinati dall'apparecchiatura che gestisce l'instradamento lungo il percorso e tali dettagli non vengono generalmente inseriti in un pacchetto IP. (Pertanto, l'apparecchiatura non cerca tali dettagli, dal momento che non è presente. Poiché l'apparecchiatura non cerca tali informazioni, sarebbe inutile cercare di includere tali informazioni.)

RFC 791 pagina 11 mostra una tabella in stile "ASCII ART" delle informazioni contenute in un pacchetto IP. Dopo quella tabella, quel documento mostra i dettagli (ad esempio, la sezione "Opzioni" è descritta a pagina 15).

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.