ip route mostra il campo src


12

Ho letto la pagina man di ipe ancora non capisco cosa srcsia e non sono riuscito a trovare molta documentazione.

Per favore, se puoi spiegarlo a fondo o indicare ad alcuni link una buona risposta.


3
Non sai cosa significa "fonte" nel contesto della comunicazione IP? Non è necessario un errore del server - è necessario il libro di Stevens ...
voretaq7,

Risposte:


17

Quando si aggiunge una route a un host multihomed, è possibile che si desideri avere il controllo dell'indirizzo IP di origine da cui l'host sta inviando quando si avvia la comunicazione utilizzando questa route. Questo è lo scopo di src .

Un breve esempio: hai un host con due interfacce e gli indirizzi IP 192.168.1.123/24 e 10.45.22.12/24. Stai aggiungendo una route a 78.22.45.0/24 tramite 10.45.22.1 e vuoi assicurarti di non inviare a 78.22.45.0/24 utilizzando l'indirizzo 192.168.1.123 (forse perché la rete 78.22.45.0/24 non ha route indietro al 192.168.1.0/24 o perché non desideri che il tuo traffico segua questo percorso per un motivo o per l'altro):

ip route add 78.22.45.0/24 via 10.45.22.1 src 10.45.22.12

Nota che l' src che stai dando influenzerebbe solo il traffico proveniente dal tuo stesso host. Se un pacchetto esterno viene instradato, ovviamente avrebbe già un indirizzo IP di origine, quindi sarebbe trasmesso inalterato (a meno che tu non stia usando NAT ovviamente, ma questa è una faccenda completamente diversa). Inoltre, questa impostazione potrebbe essere sovrascritta da un processo che sceglie specificamente di associarsi a un indirizzo specifico invece di utilizzare le impostazioni predefinite quando si avviano connessioni (piuttosto rare).


9

L' srcattributo è un suggerimento utilizzato dall'algoritmo di selezione dell'indirizzo . È significativo quando un host ha più indirizzi IP, che di solito è, ma non sempre, quando ha più interfacce. Mentre ci sono altre regole che influenzano la selezione dell'indirizzo e un'applicazione di rete può anche sostituire l'algoritmo di selezione utilizzando chiamate di sistema come bind(), l' srcattributo è un modo per utilizzare una ricerca nella tabella di routing per rispondere alla domanda "Se voglio avviare un connessione all'host X, quale dei miei indirizzi dovrei usare? "

Ecco un esempio per illustrare l'uso e l'effetto srcdell'attributo. Per sottolineare che ciò è correlato a indirizzi e route, non strettamente alle interfacce, questo host di esempio ha solo un'interfaccia di rete ma due indirizzi. Inoltre, entrambi gli indirizzi si trovano sulla stessa sottorete per sottolineare il fatto che non esiste un altro modo ovvio per scegliere quale utilizzare.

$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 10.1.0.2/24 brd 10.1.0.255 scope global eth0
    inet 10.1.0.16/24 scope global secondary eth0
$ ip route list dev eth0
10.1.0.32/27  scope link  src 10.1.0.16
10.1.0.0/24  proto kernel  scope link  src 10.1.0.2

Questo host può comunicare con uno qualsiasi degli altri 252 indirizzi su questa / 24 sottorete da entrambi gli indirizzi, ma per impostazione predefinita utilizzerà 10.1.0.16 quando avvia una connessione da 10.1.0.32 a 10.1.0.63 e utilizzerà 10.1.0.2 per tutti i riposo.

Se l'host risponde, anziché avviare, risponderà dall'indirizzo di destinazione della richiesta. Ad esempio, se un altro host in 10.1.0.32 si connette a questo host in 10.1.0.2, la risposta arriverà da 10.1.0.2 anche se non corrisponde srcall'attributo della route di ritorno.

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.