Фундаментальный вопрос о маршрутизации в Ubuntu 20.04.
У меня есть пустая конфигурация в Hetzner, на которой выделен адрес IPV4 11.22.33.44/32 и подсеть 2a01:db8:30/64.
enp7s0 — физический интерфейс с адресом 11.22.33.44/32.
У меня также есть baremetal сервер, подключенный к vSwitch, которому выделена публичная подсеть 2a01:1111:2222:3333::/64. Шлюз для этой подсети — 2a01:1111:2222:3333::1, и он доступен через интерфейс vlan.4001 (подинтерфейс enp7s0 с идентификатором тега VLAN 4001)
В моей настройке мост создан на хосте с именем br1 с IP-адресом 2a01:1111:2222:3333::10/64. На этом мосту создано несколько виртуальных машин, и каждая из виртуальных машин имеет адрес IPV6, выделенный из подсети IPV6 2a01:1111:2222:3333::/64. Мне нужно использовать мост, и других вариантов нет из-за различных требований.
Виртуальные машины, которые находятся на br1, могут общаться друг с другом и с br1. Я хочу направить весь трафик во внешний мир из br1 через vlan.4001. Я не хочу добавлять интерфейс vlan.4001 к br1 (я не хочу, чтобы MAC-адреса виртуальных машин были видны vSWitch). Я назначил адрес 2a01:1111:2222:3333::2/64 для vlan.4001, но не могу понять, как направить трафик из br1 в интерфейс vlan.4001.
Как я уже упоминал ранее, мне нужно использовать мост для соединения всех виртуальных машин на хосте с 2a01:1111:2222:3333::/64 (для виртуальных машин NAT не разрешен) и при этом иметь возможность доступа к внешнему Интернету через vlan.4001.
Возможна ли такая настройка в Ubuntu 20.04?
Я также будунетиметь возможность использовать VRF или NetNS, оба варианта исключены из-за других требований.
Единственный вариант, который у меня есть, — это использование маршрутизации на основе политик, но я не могу создать PBR для 2a01:1111:2222:3333::/64, чтобы использовать интерфейс vlan.4001 для внешнего трафика.
решение1
Мост не маршрутизирует. Мостирование происходит на уровне 2, маршрутизация на уровне 3. Вам придется решить, хотите ли вы маршрутизировать или мостить между вашей внутренней сетью, соединяющей виртуальные машины (реализовано br1), и вашим подключением к Интернету (vlan.4001). Любой выбор имеет определенные последствия.
Если вы выберете мост, ваши виртуальные машины будут напрямую взаимодействовать со шлюзом 2a01:1111:2222:3333::1, раскрывая свой MAC-адрес этому шлюзу и промежуточной сети уровня 2. С другой стороны, это решение очень простое и, следовательно, более безопасное и надежное.
Если вы выбираете маршрутизацию, вам нужен экземпляр маршрутизации между вашими виртуальными машинами и внешним интерфейсом, а также отдельный сегмент сети с собственным диапазоном адресов IPv6 для подключения этого экземпляра маршрутизации к шлюзовому маршрутизатору хостера. Поэтому вам придется попросить Hetzner о другом /64, который они будут маршрутизировать на ваш внутренний маршрутизатор, или, в качестве альтернативы, о /56, который вы затем сами разобьете на подсети. Экземпляр маршрутизации может быть реализован как выделенная виртуальная машина, работающая под управлением брандмауэра, или ОС вашего baremetal сервера.
Используете ли вы Ubuntu 20.04 или любую другую ОС, на этом уровне не имеет значения. Любое выбранное вами решение может быть реализовано как с Ubuntu, так и с любой другой ОС.