Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-03-14 15:07:37

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Kształtowanie ruchu IPv6

Czy w linuxie da radę w ogóle kształtować ruch IPv6? Obecnie jadę na tunelu 6in4 i standardowe regułki, które działają dla IPv4, nie działają na ruch IPv6, tj. cały ruch po IPv6 leci na domyślną kolejkę. Stworzyłem też osobne regułki dla IPv6, by oznaczyć połączenia IPv6, coś w poniższym stylu:

Kod:

$tc filter add dev ifb0 parent 1:0 prio 5 handle 2 fw classid 1:200

A na tą kolejkę idą pakiety generowane przez użytkownika:

Kod:

$ipt -A qos-egress -m owner --gid-owner morfik -m mark --mark 0 -j MARK --set-mark 2
$ip6t -A qos-egress -m owner --gid-owner morfik -m mark --mark 0 -j MARK --set-mark 2

Połączenia są oznaczane prawidłowo:

# cat /proc/net/nf_conntrack | grep ipv6
ipv6     10 tcp      6 28799 ESTABLISHED src=2001:0470:1234:09dd:0000:0000:0000:0150 dst=2001:06b0:000e:2018:0000:0000:0000:0176 sport=65132 dport=80 src=2001:06b0:000e:2018:0000:0000:0000:0176 dst=2001:0470:1234:09dd:0000:0000:0000:0150 sport=80 dport=65132 [ASSURED] mark=2
zone=0 delta-time=0 use=2
ipv6     10 tcp      6 19 TIME_WAIT src=2001:0470:1234:09dd:0000:0000:0000:0150 dst=2001:06b0:000e:2018:0000:0000:0000:0165 sport=64604 dport=80 src=2001:06b0:000e:2018:0000:0000:0000:0165 dst=2001:0470:1234:09dd:0000:0000:0000:0150 sport=80 dport=64604 [ASSURED] mark=2
zone=0 delta-time=0 use=2

Ale pakiety trafiają do domyślnej kolejki zamiast być rozdzielane na 1:200. Mam dokładnie taki sam zestaw reguł dla IPv4 i IPv6 (zarówno w TC jak i iptables) ale tylko na IPv4 pakiety trafiają gdzie trza.

Na necie znalazłem to poniższe info:

Dlaczego filtry tc dla IPv6 nie działają?

Baza danych zasad routingu (ang. "Routing Policy Database", RPDB) zastąpiła strukturę routingu i adresowania dla IPv4 w jądrze Linuksa, która odpowiadała za całą wspaniałą funkcjonalność opisywaną w tym HOWTO. Niestety, struktura odpowiedzialna za IPv6 została zaimplementowana poza tą bazą. O ile obie współdzielą część mechanizmów, RPDB nie współpracuje z procesem adresowania ani routingu IPv6.

To się na pewno zmieni, musimy tylko trochę cierpliwie poczekać.

FIXME: Czy ktoś nad tym pracuje? Albo przynajmniej ma plany?

Oznaczanie pakietów IPv6 przez ip6tables

ip6tables umożliwia oznaczanie pakietów i przydzielanie im numerów:

# ip6tables -A PREROUTING -i eth0 -t mangle -p tcp -j MARK --mark 1

Nadal jednak nic to nie zmienia - pakiet nie przejdzie przez wspomnianą wcześniej strukturę RPDB.

-- https://lukasz.bromirski.net/docs/translations/lart … V-FILTER.IPV6

To howto ma już xx lat i nie wiem czy to jest aktualne. Wszystko wskazuje, że jest i ten ruch IPv6 nie jest łapany przez TC. Jeśli linux tego IPv6 nie potrafi kształtować, to chyba będę musiał ten tunel wywalić, bo z tego co widzę, to połączenia IPv6 są preferowane jeśli hosty je obsługują i 2x więcej pakietów leci u mnie po IPv6 niż po IPv4 ale to głównie przez YT. xD Tylko co mi po tym IPv6 jak nie można go kształtować. :]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)