Проблемы с черными дырами 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 черезчто-то где-то отвечает обычным сообщением «требуется фрагментация...», сохраняется максимальный MTU, равный 1450, и последующие попытки подключения SSH работают (до тех пор, пока не истечет время хранения сохраненной записи MTU1450). На хосте PVE есть устройства с MTU, равным 1450, но ни одно из них не подключено к виртуальной машине.

Проблема 2) PMTUD не работает даже для устройств, не задействованных в туннеле. Если я уменьшу MTU виртуальной машины eth0 и ping -s... это от LabDevice с чем-то слишком большим для виртуальной машины, но все в порядке для всего остального, я получу нулевой ответ, хотя, насколько я понимаю, виртуальная машина должна иметь возможность ответить с помощью ICMP требуется фрагментация... сообщения.

Полу-связанное: могу ли я что-нибудь сделать на хосте PVE и конечном устройстве, чтобы позволить устройствам, подключенным к конечной точке, обнаруживать уменьшенный MTU? Потому что в некоторые лаборатории я, возможно, не смогу отправлять Jumbo Frames, и я бы предпочел не устанавливать более низкий MTU на каждом устройстве в этих лабораториях.

Изменить: Возможно, это также актуально: в настоящее время я не использую многоадресную рассылку, но настроил удаленные IP-адреса через. Кроме того, на хосте виртуальной машины виртуальные машины подключены не напрямую к мосту, а через некоторую магию Veth.

0 ответов

Другие вопросы по тегам