GNU/Linux >> Znalost Linux >  >> Linux

Jak odesílat multicastové pakety přes specifické rozhraní v Linuxu

Nejsem zcela přesvědčen, že mé řešení je správné, ale mohu alespoň trochu více osvětlit, co se děje.

Pozadí

Linux má ve skutečnosti několik směrovacích tabulek a jsou prohledávány jedna po druhé v určitém pořadí priority, dokud není nalezena tabulka s odpovídající cestou. Volitelně můžete prohledávat některé ze směrovacích tabulek na základě zdrojové adresy nebo protokolu; viz ip-rule(8) manuálová stránka.

Problémem je "místní" směrovací tabulka, která má prioritu 0, nejvyšší možnou. "Místní" tabulka je naplněna automaticky jádrem a obsahuje "zřejmé" rozhraní a přenosové cesty. Pro IPv6 pod Linuxem to zjevně zahrnuje celý blok vícesměrového vysílání.

Problém

Budu používat iproute2 namísto tradičnějšího nástroje route , protože mi ukáže vše, co potřebuji vědět.

Na mém Linuxovém boxu:

$ ip -6 route show table local
local ::1 via :: dev lo  proto none  metric 0 
local fe80::213:a9ff:fe91:5bcb via :: dev lo  proto none  metric 0 
local fe80::250:b6ff:fe44:37d1 via :: dev lo  proto none  metric 0 
ff00::/8 dev eth0  metric 256 
ff00::/8 dev eth1  metric 256

$ ip -6 route show table main
fe80::/64 dev eth0  proto kernel  metric 256 
fe80::/64 dev eth1  proto kernel  metric 256 
ff15::/16 dev eth1  metric 1024
ff00::/8 dev eth1  metric 1024 

$ ip -6 rule show
0:      from all lookup local 
32766:  from all lookup main 

...A mé multicastové pakety pro ff15::1 (5==site-local,>link-local) skončí na eth0, protože "místní" směrovací tabulka se shoduje jako první a přepíše "hlavní" tabulku, i když "hlavní" tabulka má konkrétnější trasu. Toto převažující chování je správné ve větším schématu směrování politik, ale volba automatického přidávání ff00::/8 do místní tabulky je pro mě sporná.

Moje řešení

Nemám dost zkušeností, abych věděl, jestli je to dobrý nápad, ale:

# ip -6 route add ff15::/16 dev eth1 table local

a teď jsou mé pakety ff15::1 směrovány přes eth1.

To do jisté míry souhlasí se sémantikou místní tabulky v tom, že je směrována přímo přes zařízení. Nezdá se mi to úplně správné (vzhledem k automatické správě a „neměli byste se dívat na tuto tabulku“), ale je to nejlepší řešení, které jsem našel.


Linux
  1. Jak vytvořit síťové sdílení přes Samba na Linuxu

  2. Jak odesílat poštu přes externí server SMTP pomocí příkazu mailx v Linuxu?

  3. Jak zobrazit směrovací tabulku v Linuxu

  1. Linux:Jak poslat zprávu místnímu uživateli přihlášenému do X11?

  2. Jak zakázat ipv6 na konkrétním rozhraní v linuxu?

  3. Jak nastavit dvě výchozí cesty v linuxu

  1. Jak nakonfigurovat virtuální síťové rozhraní na Redhat 7 Linux

  2. zkrátit tabulku pomocí příkazového řádku v Linuxu

  3. Jak nastavit preferované síťové rozhraní v linuxu