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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
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:
$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:
$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] [b]mark=2[/b]
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] [b]mark=2[/b]
zone=0 delta-time=0 use=2[/quote]
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/lartc-pl.html#LARTC.ADV-FILTER.IPV6[/quote]
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
Time (s) | Query |
---|---|
0.00015 | SET CHARSET latin2 |
0.00006 | SET NAMES latin2 |
0.00098 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.15.12.95' WHERE u.id=1 |
0.00070 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.15.12.95', 1732747810) |
0.00050 | SELECT * FROM punbb_online WHERE logged<1732747510 |
0.00067 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=28395 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00178 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=28395 ORDER BY p.id LIMIT 0,25 |
0.00077 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28395 |
Total query time: 0.00566 s |