GNU/Linux >> Znalost Linux >  >> Linux

ip route zobrazit pole src

Řešení 1:

Při přidávání trasy k hostiteli s více domovy možná budete chtít mít kontrolu nad zdrojovou IP adresou, ze které váš hostitel odesílá, když spouštíte komunikaci pomocí této trasy. To je to, co src je pro.

Krátký příklad:máte hostitele se dvěma rozhraními a IP adresami 192.168.1.123/24 a 10.45.22.12/24. Přidáváte trasu na 78.22.45.0/24 přes 10.45.22.1 a chcete se ujistit, že neposíláte na 78.22.45.0/24 pomocí adresy 192.168.1.123 (možná proto, že síť 78.22.45.0/24 nemá žádnou trasu zpět na 192.168.1.0/24 nebo proto, že si nepřejete, aby váš provoz vedl tuto trasu z jednoho nebo druhého důvodu):

ip route add 78.22.45.0/24 via 10.45.22.1 src 10.45.22.12

Všimněte si, že src které dáváte, by ovlivnilo pouze provoz pocházející z vašeho hostitele. Pokud je směrován cizí paket, zjevně by již měl zdrojovou IP adresu, takže by byl předán beze změny (pokud samozřejmě nepoužíváte NAT, ale to je úplně jiná věc). Toto nastavení může být také přepsáno procesem, který se specificky rozhodne vázat se na konkrétní adresu namísto použití výchozích hodnot při inicializaci připojení (spíše vzácné).

Řešení 2:

src atribut je nápověda, kterou používá algoritmus pro výběr adresy . Je důležité, když má hostitel více IP adres, což je obvykle, ale ne vždy, když má více rozhraní. I když existují další pravidla, která ovlivňují výběr adresy, a síťová aplikace může také přepsat algoritmus výběru pomocí systémových volání jako bind() , src atribut je způsob, jak použít vyhledávání ve směrovací tabulce k zodpovězení otázky:"Pokud chci iniciovat připojení k hostiteli X, kterou z mých adres bych měl použít?"

Zde je příklad pro ilustraci použití a účinku src atribut. Abychom zdůraznili, že se to týká adres a tras, nikoli výhradně rozhraní, tento příklad hostitele má pouze jedno síťové rozhraní, ale dvě adresy. Kromě toho jsou obě adresy ve stejné podsíti, což zdůrazňuje skutečnost, že neexistuje žádný jiný zřejmý způsob, jak si vybrat, kterou z nich použít.

$ 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

Tento hostitel může komunikovat s kteroukoli z dalších 252 adres v této podsíti /24 z obou adres, ale ve výchozím nastavení při inicializaci spojení s 10.1.0.32 až 10.1.0.63 použije 10.1.0.16 a pro všechny ostatní použije 10.1.0.2.

Pokud hostitel odpovídá, nikoli inicializuje, odpoví z cílové adresy požadavku. Pokud se například jiný hostitel na 10.1.0.32 připojí k tomuto hostiteli na 10.1.0.2, odpověď přijde z 10.1.0.2, i když neodpovídá src atribut zpáteční trasy.


Linux
  1. Výchozí oddělovač polí pro awk

  2. VLC - jak zobrazit FPS

  3. Úprava stávající položky trasy v linuxu

  1. Gnome 3 Ctrl+alt+d (zobrazit plochu)?

  2. Odstranit duplicitní hodnoty v poli?

  3. Linux příkaz find - zobrazit průběh

  1. Curl show only Content-Type

  2. firefox:barva vstupního pole

  3. Jak seřadit tento výstup 1,10,11..2