LINUX.ORG.RU
ФорумAdmin

6to4 проблемы с дупликацией пакетов


0

1

Есть у меня роутер на openwrt. Ядро 3.3.8. Раздает он ipv4 через nat и ipv6 через 6to4.

С недавних пор стали пропадать сразу целые группы пакетов ipv6. Пингаешь роутер с внешнего ipv6, все хорошо, вдруг группа из потерь от 3 до 15 пингов, потом опять идет несколько минут нормально, потом опять потеря, ...

Стал смотреть TCPDUMP-ом и обнаружил очень интересную картину. В моменты, когда роутер перестает отвечать на пинги по ipv6 ему приходят дуплицированые ping реквесты, на которые он уже ответил 15 секунд назад. Разумеется, дупликация пакетов - проблема внешняя, но роутер ведет себя в этой ситуации странно - перестает воспринимать нормальные пакеты, которые идут в перемешку с дупами.

Смотрим внимательно на seq.

Идут нормальные пинг-реплаи :

2127	1067.024602	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20844, hop limit=128 (reply in 2128)
2128	1067.024912	2002:yyyy:yyyy::1	2002:xxxx:xxxx::yyyy:yyyy	ICMPv6	114	Echo (ping) reply id=0x0001, seq=20844, hop limit=64 (request in 2127)

13 секунд спустя опять 2 пинг-реплая, но почему-то в последнем из них неправильный адрес источника - он заменен с адреса хоста-ответчика на адрес назначения. Но это только в данной проблемной группе, в других такого может и не быть. Далее приходит уже приходивший ранее пакет с seq=20844. Ethernet frame number у него отличается, разумеется, это просто дуп.

2153	1079.031124	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20856, hop limit=128 (reply in 2154)
2154	1079.031432	2002:yyyy:yyyy::1	2002:xxxx:xxxx::yyyy:yyyy	ICMPv6	114	Echo (ping) reply id=0x0001, seq=20856, hop limit=64 (request in 2153)
2155	1080.030487	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20857, hop limit=128
2156	1080.030814	2002:xxxx:xxxx::yyyy:yyyy	2002:xxxx:xxxx::yyyy:yyyy	ICMPv6	114	Echo (ping) reply id=0x0001, seq=20857, hop limit=128
2157	1081.029856	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20858, hop limit=128
2158	1081.030170	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20844, hop limit=128

И дальше системка начинает игнорировать нормальные пакеты вперемешку с дупами до тех пор, пока дупы не перестанут приходить. Если напустить tcpdump прямо на 6to4 интерфейс - там в проблемные периоды вообще все исчезает. Если это не ICMP, а что-то полезное через TCP - рвутся конекты.

2159	1082.029775	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20859, hop limit=128
2160	1082.030093	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20845, hop limit=128
2161	1083.030218	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20860, hop limit=128
2162	1083.030534	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20846, hop limit=128
2163	1084.030631	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20861, hop limit=128
2165	1085.028964	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20862, hop limit=128
2166	1085.029310	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20847, hop limit=128
2167	1086.032314	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20863, hop limit=128
2168	1086.032623	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20848, hop limit=128
2169	1087.032282	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20864, hop limit=128
2170	1087.032588	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20849, hop limit=128
2171	1088.033225	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20865, hop limit=128 (reply in 2172)
2172	1088.033546	2002:yyyy:yyyy::1	2002:xxxx:xxxx::yyyy:yyyy	ICMPv6	114	Echo (ping) reply id=0x0001, seq=20865, hop limit=64 (request in 2171)
2173	1089.034199	2002:xxxx:xxxx::yyyy:yyyy	2002:yyyy:yyyy::1	ICMPv6	114	Echo (ping) request id=0x0001, seq=20866, hop limit=128 (reply in 2174)
2174	1089.034506	2002:yyyy:yyyy::1	2002:xxxx:xxxx::yyyy:yyyy	ICMPv6	114	Echo (ping) reply id=0x0001, seq=20866, hop limit=64 (request in 2173)

И что же это такое, как с этим бороться ? В логах абсолютно никакой информации не появляется

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.