Рейтинг:-1

Маршрутизатор отбрасывает пакеты

флаг cn

Я наблюдаю странную проблему с проводным подключением к маршрутизатору в локальной сети, когда TCP-трафик отбрасывается и регистрируется как фрагментированный пакет.

В сценарии установлено значение MTU 1500 на сетевых клиентах и ​​на сетевом адаптере маршрутизатора (согласно IP-адрес показать).

Пример сообщения о потерянном пакете (разбит на несколько строк для удобочитаемости):

12 мая 09:44:05 ядро: DROP IN=eth0 OUT=tun11 MAC=<удалено> 
SRC=<IP-адрес рабочего стола> DST=<внешний IP-адрес назначения> 
LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=54356 DF PROTO=TCP SPT=53370 DPT=443 SEQ=3216568911 ACK=0 
WINDOW=64240 RES=0x00 SYN URGP=0 OPT (020405B40402080A002E76880000000001030307) MARK=0x8000000 

Из небольшого чтения по TCP/IP я вижу, что opt 0204 относится к MSS и размер, кажется, 1460, хотя я изо всех сил пытаюсь понять, к чему относятся оставшиеся байты (0402 080А 002Е 7688 0000 0000 0103 0307). Я не вижу правил брандмауэра на маршрутизаторе, который вообще применяет метку, но у меня есть ограниченные подробные сведения о сетевом фильтре.

Когда я пытаюсь вычислить максимальный размер MTU через ping -M do <IP-адрес маршрутизатора> -c 2 -s 1500 ответ клиента локальная ошибка: сообщение слишком длинное, mtu=1500 или когда пинг cmd использует меньший размер MTU для тестирования, отсутствие ответа / все неудачные пакеты.

В первом я уменьшаю MTU на 28, а затем получаю второй сценарий. Я предполагаю, что это означает, что MTU подходит, но пакет все еще отбрасывается. Пример записи в журнале маршрутизатора об этом удалении:

12 мая 13:01:01 ядро: DROP IN=eth0 OUT= MAC=<удалено>
SRC=<IP-адрес рабочего стола> DST=<IP-адрес маршрутизатора> 
LEN=1378 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF 
PROTO=ICMP TYPE=8 CODE=0 ID=5 SEQ=1 MARK=0x8000000 

Когда я определяю более подходящий MTU, используя пинг проверьте и перезагрузите рабочий стол, пакеты продолжают фрагментироваться и пинг Затем test возвращает меньшее значение MTU (на 28 байт каждый раз меньше).

Рабочий стол работает Кубунту 20.04.4.

После некоторого значительного времени, пытаясь понять больше об этом сценарии, я попытался добавить следуя правилам iptables на роутере:

-A ВВОД -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A FORWARD -m conntrack --ctstate DNAT -j ПРИНЯТЬ

Но это не решило проблему.

Это делает нет происходит на устройствах Android, подключенных к тому же маршрутизатору через WiFi. Маршрутизатор перезапускается на ночь по расписанию, и Xbox сталкиваются с одним и тем же сценарием фрагментации/отбрасывания пакетов до тех пор, пока они не будут перезапущены хотя бы один раз. Один XBox подключается через Wi-Fi, другой подключается к маршрутизатору, подключенному к проблемному маршрутизатору.

Трафик между WiFi-маршрутизатором и граничным маршрутизатором, по-видимому, не пострадал — никаких признаков потери пакетов из-за фрагментации на этом уровне.

Обходной путь

Я обнаружил, что запуск трассировка от бить на рабочем столе как-то устраняет проблему До и после этого «исправления» адаптер локальной сети для настольных ПК указан с одним и тем же MTU, тогда как если бы MTU нужно было настроить, я бы ожидал, что это значение будет изменено (и я мог бы установить его по умолчанию):

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500

Однако я не понимаю Почему в трассировка видимо решает проблему. Любые предложения будут с благодарностью получены в этот момент.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.