У меня есть Netgear коммутатор и шлюз Unifi Seurity, которые вместе позволяют мне разделить мою сеть на разные веланы. В данном случае, у меня есть серверы на VLAN 10.
С другим оборудованием, у меня есть NAS, я просто говорю сетевой конфигурации использовать VLan 10, и пока порт в сетевом коммутаторе помечен как Tagged на Vlan 10, все работает.
Я действительно борюсь с Ubuntu 18.04 и Vlans. Я не хочу делать ничего причудливого, кроме как мои Ubuntu 18 серверов на vlan10
Кстати, я использую Raspberry Pi 4 Model B
Вот моя текущая конфигурация в /etc/netplan/50-cloud-init-.yaml
network:
version: 2
renderer: networked
ethernets:
eth0:
addresses:
- 192.168.10.20/24
gateway4: 192.168.10.1
nameservers:
addresses: [192.168.10.3, 8.8.8.8]
vlans:
vlan10:
id: 10
link: eth0
addresses: [192.168.10.21/24]
С приведенной выше конфигурацией netplan применяться не дает мне никаких ошибок, и все показано как правильно, когда я запускаю ip addr.
Проблема, однако, в том, что я могу получить доступ к любым устройствам за пределами vlan 10 из Ubuntu коробки. Однако я могу подключиться к своей сетевой системе NAS, которая находится на Vlan 10 и оттуда SSH к серверу Ubuntu.
Это почти заставляет меня думать, что проблема в конфигурации сетевого коммутатора, но порты, к которым подключен сервер ubuntu, настроены точно так же, как и сетевая система NAS, которая, как я говорю, работает просто отлично.
NetPlan занимает некоторое использование. Недостающее произведение здесь - это пример: вот пример:
network:
version: 2
renderer: networked
ethernets:
eth0:
optional: true
bridges:
br0:
interfaces: [eth0]
addresses:
- 192.168.10.20/24
gateway4: 192.168.10.1
nameservers:
addresses: [192.168.10.3, 8.8.8.8]
br10:
interfaces: [vlan10]
addresses: [192.168.10.21/24]
br25:
interfaces: [vlan25]
vlans:
vlan10:
id: 10
link: eth0
vlan25:
id: 25
link: eth0
Убедитесь, что Bridge-Utils установлен:
APT Установка мостов BRISTILS
Существует два способа использования виртуальных локальных сетей: либо с тегированными портами на коммутаторе, либо с немаркированными портами. Чаще используются немаркированные порты на коммутаторе, так что хост не нужно настраивать для получения сведений о vlan вообще, а просто видит простые пакеты Ethernet, которые сегментируются на конкретный vlan коммутатором.
Судя по вашей конфигурации, очевидно, что вместо этого вы используете тегированные порты, требуя, чтобы хост знал о vlan.
Проблема с вашей исходной конфигурацией заключалась в том, что у вас был настроен маршрут (шлюз) по умолчанию на интерфейсе Ethernet, когда он должен был быть на интерфейсе VLAN. Следующая конфигурация должна быть достаточной:
network:
version: 2
renderer: networkd
ethernets:
eth0: {}
vlans:
vlan10:
id: 10
link: eth0
addresses: [192.168.10.20/24]
gateway4: 192.168.10.1
nameservers:
addresses: [192.168.10.3, 8.8.8.8]
Код пример На мой вопрос стал немного грязным из-за других учебников.
Ответ, предоставленный @Frobozzzz, был точным на основе вопроса, который я спросил, но настоящий код, который мне нужен, в конце концов, было это. Это был из-за ответа @frobozz, который я начал понимать, для чего мне нужно Google.
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
dhcp6: no
bridges:
br10:
dhcp4: no
dhcp6: no
interfaces: [ vlan10 ]
addresses: [ 192.168.10.20/24 ]
gateway4: 192.168.10.1
nameservers:
addresses:
- "192.168.10.3"
- "8.8.8.8"
vlans:
vlan10:
id: 10
link: eth0
dhcp4: no
dhcp6: no