У меня есть хост Ubuntu 16.04 с 6 контейнерами LXC/LXD, подключенными к Интернету в обоих направлениях с помощью направленной установки. Каждый контейнер получает один адрес IPv4 от направленной подсети IPv4/29. Кроме того, это получает один адрес IPv6 от подсети IPv6/64.
Теперь, когда я мигрирую на Ubuntu 18.04, я хотел переместить свою установку в Netplan также, но застрял. У меня нет проблем при создании основной конфигурации Netplan для хоста. Но я не знаю, как создать "мост/маршрутизатор". Любая попытка настроить мост (уровень 3) перестала работать в одном или другом пути.
Это - то, как моя старая конфигурация похожа:
# /etc/network/interfaces
# Loopback device:
auto lo
iface lo inet loopback
iface lo inet6 loopback
# device: eth0
auto eth0
iface eth0 inet static
address 88.99.64.130
netmask 255.255.255.192
pointopoint 88.99.64.129
gateway 88.99.64.129
iface eth0 inet6 static
address 2a01:4f9:c010:32bc::2
netmask 128
gateway fe80::1
up sysctl -p
### From here on I dont know how to do this in Netplan!!!
# Bridge router to VMs (brouter)
auto br0
iface br0 inet static
address 88.99.64.130
netmask 255.255.255.192
bridge_ports none
bridge_stp off
bridge_fd 0
# Add IPv4 subnet route
up ip route add 94.130.31.40/29 dev br0
iface br0 inet6 static
address 2a01:4f9:c010:32bc::2
netmask 128
# Add IPv6 route
up ip -6 route add 2a01:4f9:c010:32bc::/64
Для создания его более ясным для людей, которые не знают LXC/LXD у меня есть другой хост с большим количеством подобной конфигурации для VirtualBox, где я назвал мост "virbr0" (вместо "br0" в моем примере). VM's в VirtualBox затем присоединен к Соединенному мостом Адаптеру с именем "virbr0".
В VM's, работающем в VirtualBox, это - простая статическая конфигурация. У меня нет проблем с Netplan в VM's. Мои проблемы связаны с хостом только.
Возможно, кто-то может отправить пример для этого вида направленной установки.
От https://netplan.io/examples
Образование моста
Для создания очень простого моста, состоящего из единого устройства, которое использует DHCP, запишите:
network:
version: 2
renderer: networkd
bridges:
br0:
dhcp4: yes
interfaces:
- enp3s0
Более сложный пример, чтобы заставить libvirtd использовать определенный мост с теговым VLAN, продолжая обеспечивать интерфейс, с которого снимают метку, также включил бы:
network:
version: 2
renderer: networkd
ethernets:
enp0s25:
dhcp4: true
bridges:
br0:
addresses: [ 10.3.99.25/24 ]
interfaces: [ vlan15 ]
vlans:
vlan15:
accept-ra: no
id: 15
link: enp0s25
Затем libvirtd был бы настроен для использования этого моста путем добавления следующего содержания к новому XML-файлу под/etc/libvirtd/qemu/networks/. Название моста в теге, а также нуждающийся для соответствия названию устройства моста, настроенного с помощью netplan:
<network>
<name>br0</name>
<bridge name='br0'/>
<forward mode="bridge"/>
</network>