Есть у меня роутер на 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)
И что же это такое, как с этим бороться ?
В логах абсолютно никакой информации не появляется