.png)
Краткое содержание
Значение MTU по умолчанию предотвращает передачу данных для одной системы. Уменьшение его вручную снова включает передачу данных, но эта ручная настройка не нужна для смежной системы.
Фон
У меня есть Backups Server. У меня есть две системы Raspberry Pi в удаленных местах: одна в Великобритании и одна в Албании. Рядом с албанским Pi находится QNAP (файловый сервер на базе Linux). У меня есть IPSec VPN из Албании в сеть Backups Server и еще один IPSec VPN из Великобритании в сеть Backups Server. Все использует IPv4. Эта схема может помочь:
|--Albania Pi
|<--IPSec-->|--Router--|--Albania QNAP
Central | | |--Other systems
Backups--|--Router--|
Server | | |
|<--IPSec-->|--Router--|--UK Pi
|--Other systems
И Pi-системы, и сервер резервного копирования имеют таблицы nftables без каких-либо правил и с политикой по умолчанию ACCEPT.
Как и ожидалось, обе системы RPi, QNAP и сервер резервного копирования имеют стандартный размер MTU для проводного Ethernet, равный 1500.
WAN-side MTU маршрутизатора для Албании составляет 1442, а для Великобритании — 1500. Согласно опции Path MTU Discovery маршрутизатора, эти значения верны. Для брандмауэра, управляющего сетью, содержащей Backups Server, это значение равно 1500, и оно также верно.
Проблема
- Если я переношу блок данных с Pi в Великобритании на сервер резервного копирования, все работает нормально.
- Если я переношу блок данных с QNAP в Албании на сервер резервного копирования, то все работает нормально.
- Если я попытаюсь перенести блок данных с Pi в Албании на сервер резервного копирования, произойдет сбой
- Если я уменьшу MTU Pi до 1374, передача пройдет успешно.
Больше информации
Вот пример того, что работает/не работает.
# On the Albanian Pi
dd bs=1M count=100 if=/dev/urandom >100M.dat
# On the Backups Server
ssh albanian_pi cat 100M.dat | pv >100M.dat
# MTU adjustments on Albanian Pi
ifconfig eth0 mtu 1500 # Default before I started fiddling
ifconfig eth0 mtu 1374 # Highest value that permits data flow
Раньше перенос работал, но это было до обновления со Stretch на Buster. Я не вижу проблем с большинством других систем Pi, которые у меня есть, и в частности с UK Pi, о котором я упоминал в начале, на котором теперь также работает Buster.
Никто в албанском офисе не жалуется на проблемы с сетью.
Я сознательно не установил бит "Do Not Fragment" для пакетов между албанским Pi и сервером резервного копирования. Я сознательно не установил ничего, что блокировало бы обнаружение PMTU.
Обобщить:
- Албанский QNAP -> Резервный сервер: все хорошо
- Албанский Pi -> Резервный сервер: сбой без уменьшения MTU
- UK Pi -> Резервный сервер: все хорошо
У меня есть обходной путь, но мне не придется уменьшать MTU на отдельных системах.
Вопрос
Что на самом деле не так и как я могу более подробно диагностировать и устранить причину проблемы?
Предложения с благодарностью приняты. Спасибо
решение1
Это выглядит какПуть обнаружения MTUнарушена связь между системами "Albania Pi" и "Central Backups Server". Это часто является результатом ошибочной блокировки пакетов ICMP в маршрутизаторах, брандмауэрах или iptables
настройках задействованных систем.
В вашем случае, поскольку система "Albania QNAP" работает нормально, главным подозреваемым является система "Albania Pi". Проверьте конфигурацию этой системы, в частности любые iptables
настройки и настройки сети, связанные с ICMP и PMTUD.