Portál AbcLinuxu, 6. května 2025 07:28
PC_before_w0 <---> [w0]-router-[f0] <----> PC_before_f01. Zákaz veškerého toku na router přícházejícího z rozhraní f0 (povoleno jen ssh):
router# iptables -t filter -F iptables -t nat -F iptables -A INPUT -i f0 -p TCP --source-port 22 -j ACCEPT iptables -A INPUT -i f0 -j DROP iptables -A FORWARD -i f0 -j DROP2. Zahájení naslouchání (příjmu) multicast:
PC_before_w0$ iperf -s -u -B 239.255.0.13. Kontrola routovacích pravidel:
router# ip mroute (nic nevypýše - žádná pravidla nejsou)4. Zahájení multicast vysílání:
PC_before_f0$ iperf -u -c 239.255.0.1 -T 3 -t 305. Kontrola routovacích pravidel:
router# ip mroute (ip_adresa_PC_before_f0, 239.255.0.1) Iif: f0 Oifs: w0Z výpisu routovacích pravidel je vidět, že vznikla multicast routa. K samotnému toku dat přes router nedojde. Jak je však možné, že vznikla ta routovací pravidla? Jak se router dozvěděl o existenci nějakého multicast vysílání před rozhraním f0, když v iptables je vše příchozí zahazováno? Může to prosím někdo vysvětlit?
iptables -A OUTPUT -o f0 -p TCP --destination-port 22 -j ACCEPT iptables -A OUTPUT -o f0 -j DROP iptables -A FORWARD -o f0 -j DROPKromě ssh nemohou IP data tam ni zpět, ale přesto se to nějak domluví. Jo kdyby to tak bylo i u lidí
Jak je však možné, že vznikla ta routovací pravidla? Jak se router dozvěděl o existenci nějakého multicast vysílání před rozhraním f0, když v iptables je vše příchozí zahazováno?AFAIK prichozi paket se nejdriv paket prozene routovanim, aby se zjistilo, co s nim, a pak teprve se aplikuji prislusna pravidla z filter tabulky (INPUT ci FORWARD chainy). Pri multicast routingu pak pri nepritomnosti routy kernel preda paket specialnim kanalem routovacimu demonu (tedy jeste pred aplikaci pravidel z filter tabulky) a ten prida routu do routovaci tabulky. Jak pise martinvolf nize, mohlo by pomoci filtrovat to v PREROUTING chainu tabulky raw.
iptables -t raw -A PREROUTING -i f0 -d 239.255.0.1/32 -j DROPA routa pak nevznikne. Trochu mi to bourá představu, že mcast tok vzniká jen když jsou odběratelé - zde je routa asi vytvořena až vznikne mcast tok (a jen pokud ho zamlčím tak routa nevnikne) (nebo snad vysílací strana ví o tom posluchači i když tam mám výše uvedené iptables pravidlo?). Uvedená pravidla v tabulce raw mohou zajistit nevznikání mcast routovacích pravidel na konkrétní rozsahy mcast cílů. Žel nelze s nimi zajistit, že cíl je povolen, ale jen k forwardování na konkrétní síťové rozhraní a na jiné ne. Jinými slovy hledám daemona na mcast routování, který bude umožňovat definovat přesnější pravidla. pimd to asi neumí. Zná někdo takového daemona?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.