Проблемы с черными дырами PMTUD/ICMP в туннеле VXLAN
Я использую хост Proxmox PVE и пытаюсь использовать VXLAN для подключения компьютеров, работающих на нем, к различным сетям в нашей лаборатории. Однако я сталкиваюсь со странными проблемами, связанными с MTU, которые я не понимаю.
Сначала моя установка. Базовая схема заключается в том, что виртуальные машины на хосте PVE подключаются через мост к туннелю VXLAN. На другой стороне туннеля у меня в лаборатории есть физическая машина, которая действует как конечная точка VXLAN (EP). Он подключается к VTEP через мост к одному из своих портов Ethernet, который, в свою очередь, подключается к коммутатору, поддерживающему сеть, в которую я пытаюсь подключить свою виртуальную машину.
На хосте PVE (например, одна виртуальная машина и одна VXLAN):
___________ __________ __________ ___________
| VM eth0 | | Bridge | | VXLAN | | Host eno1 |
| 192.168.. |___| ---- |___| VNI 1 |___| 10... |___ to LabNet
| MTU 1500 | | MTU 1550 | | MTU 1550 | | MTU 1600 |
|___________| |__________| |__________| |___________|
В лаборатории (например, конечная точка с одним туннелем + одно лабораторное устройство):
___________ __________ __________ __________ ___________
| LabDevice | | EP eth1 | | Bridge | | VXLAN | | EP eth0 |
| 192.168.. |___ lab switch etc ___| ---- |___| ---- |___| VNI 1 |___| 10... |___ to PVE Host
| MTU 1500 | | MTU 1500 | | MTU 1550 | | MTU 1550 | | MTU 1600 |
|___________| |__________| |__________| |__________| |___________|
Теперь я понимаю, что PMTUD здесь не будет работать, потому что, будучи L2, большинство этих устройств не могут отправлять отчеты, поэтому я увеличил MTU для тех устройств, которым приходится иметь дело с накладными расходами VXLAN (это 1600, а не 1550). не имеет отношения к делу, я просто хочу точно описать состояние «как есть»).
Тем не менее, я все еще сталкиваюсь с проблемами несоответствия MTU/ICMP Black Hole:
Проблема 1) Что-то в цепочке утверждает, что поддерживает только MTU 1450. Если я попытаюсь подключиться от виртуальной машины к LabDevice через SSH, соединение зависнет, а затем произойдет тайм-аут. Если я проверю MTU через
Проблема 2) PMTUD не работает даже для устройств, не задействованных в туннеле. Если я уменьшу MTU виртуальной машины eth0 и ping -s... это от LabDevice с чем-то слишком большим для виртуальной машины, но все в порядке для всего остального, я получу нулевой ответ, хотя, насколько я понимаю, виртуальная машина должна иметь возможность ответить с помощью ICMP требуется фрагментация... сообщения.
Полу-связанное: могу ли я что-нибудь сделать на хосте PVE и конечном устройстве, чтобы позволить устройствам, подключенным к конечной точке, обнаруживать уменьшенный MTU? Потому что в некоторые лаборатории я, возможно, не смогу отправлять Jumbo Frames, и я бы предпочел не устанавливать более низкий MTU на каждом устройстве в этих лабораториях.
Изменить: Возможно, это также актуально: в настоящее время я не использую многоадресную рассылку, но настроил удаленные IP-адреса через