ДОКУМЕНТАЦИЯ

VLAN на AltLinux

Опубликовано 31 мая 2026 • 10 минут чтения

Для начала определимся что такое 802.1q vlan, дабы не изобретать велосипед маленькая вырезка из википедии: VLAN (аббр. от англ. Virtual Local Area Network) — виртуальная локальная компьютерная сеть, представляет собой группу хостов с общим набором требований, которые взаимодействуют так, как если бы они были подключены к широковещательному домену, независимо от их физического местонахождения. VLAN имеет те же свойства, что и физическая локальная сеть, но позволяет конечным станциям группироваться вместе, даже если они не находятся в одной физической сети. Такая реорганизация может быть сделана на основе программного обеспечения вместо физического перемещения устройств. На устройствах Cisco, протокол VTP (VLAN Trunking Protocol) предусматривает VLAN-домены для упрощения администрирования. VTP также выполняет «чистку» трафика, направляя VLAN трафик только на те коммутаторы, которые имеют целевые VLAN-порты. Коммутаторы Cisco в основном используют протокол ISL (Inter-Switch Link) для обеспечения совместимости информации. По умолчанию на каждом порту коммутатора имеется сеть VLAN1 или VLAN управления. Сеть управления не может быть удалена, однако могут быть созданы дополнительные сети VLAN и этим альтернативным VLAN могут быть дополнительно назначены порты. Native VLAN — это параметр каждого порта, который определяет номер VLAN, который получают все непомеченные (untagged) пакеты.

Необходимые установки

Для начала установим необходимые пакеты:

hostnamectl hostname isp.au-team.irpo

Зачем это нужно?

Для чего это надо? Есть несколько ситуаций: 1. Банально представим ситуацию есть большая сеть, в районе покрытия этой сети у нас расположено два офиса, их необходимо объединить в одну физическую сеть, при этом общегородская сеть не должна видеть/иметь доступ к офисным тачкам. Данную ситуацию конешно можно разрулить VPN-ами, но на шифрованый трафик порядка 100 мегабит нужно не кислое железо, поэтому рулим vlan-aми.

net.ipv4.ip_forward = 1
                        
auto enp2s0
iface enp2s0 inet static
address 172.16.1.2/28
gateway 172.16.1.1

auto br0
iface br0 inet manual
bridge-ports enp2s2 enp2s3
bridge-vlan-aware yes
bridge-vids 100 200 99

auto enp2s2
iface enp2s2
bridge-access 100

auto enp2s3
iface enp2s2
bridge-access 200

auto vlan100
iface vlan100
vlan-raw-device br0
address 192.168.100.1/29

auto vlan200
iface vlan200
vlan-raw-device br0
address 192.168.200.1/24

auto vlan999
iface vlan999
vlan-raw-device br0
address 192.168.99.1/29

Широковещательный трафик

Уменьшение количества широковещательного трафика в сети Каждый VLAN — это отдельный широковещательный домен. Например, коммутатор — это устройство 2 уровня модели OSI. Все порты на коммутаторе, где нет VLANов, находятся в одном широковещательном домене. Создание VLAN на коммутаторе означает разбиение коммутатора на несколько широковещательных доменов. Если один и тот же VLAN есть на разных коммутаторах, то порты разных коммутаторов будут образовывать один широковещательный домен.

iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
iptables -t nat -vnL

Безопасность

Когда сеть разбита на VLAN, упрощается задача применения политик и правил безопасности. С VLAN политики можно применять к целым подсетям, а не к отдельному устройству. Кроме того, переход из одного VLAN в другой предполагает прохождение через устройство 3 уровня, на котором, как правило, применяются политики разрешающие или запрещающие доступ из VLAN в VLAN.

sudo useradd -m -u 2026 -s /bin/bash sshuser
passwd sshuser

apt-get install sudo -y
usermod -aG wheel sshuser
visudo /etc/sudoers.d/sshuser
sshuser ALL=(ALL) NOPASSWD: ALL

Теггирование трафика

Компьютер при отправке трафика в сеть даже не догадывается, в каком VLAN'е он размещён. Об этом думает коммутатор. Коммутатор знает, что компьютер, который подключен к определённому порту, находится в соответствующем VLAN'e. Трафик, приходящий на порт определённого VLAN'а, ничем особенным не отличается от трафика другого VLAN'а. Другими словами, никакой информации о принадлежности трафика определённому VLAN'у в нём нет. Однако, если через порт может прийти трафик разных VLAN'ов, коммутатор должен его как-то различать. Для этого каждый кадр (frame) трафика должен быть помечен каким-то особым образом. Пометка должна говорить о том, какому VLAN'у трафик принадлежит. Наиболее распространённый сейчас способ ставить такую пометку описан в открытом стандарте IEEE 802.1Q. Существуют проприетарные протоколы, решающие похожие задачи, например, протокол ISL от Cisco Systems, но их популярность значительно ниже (и снижается).

useradd -m -s /bin/bash net_admin
passwd net_admin
usermod -aG wheel net_admin
echo "net_admin ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/net_admin

Debian-Like настройка

Нам необходимо поставить пакет vlan # apt-get install vlan Далее переходим в /etc/network/ и правим файл с интерфейсами.

cat << EOF > /etc/openssh/banner.txt
Authorized access only
EOF

/etc/openssh/sshd_config
Port 2026
AllowUsers sshuser
MaxAuthTries 2
Banner /etc/openssh/banner.txt

Red-Hat-Like настройка

Для ред-хата необходима утилита настройки vlan'ов, ставим утилиту vconfig [root@notebook ~]# yum search vconfig

HQ-RTR -> ISP
post-up ip tunnel add gre1 mode gre remote 172.16.2.2 local 172.16.1.2 ttl 255
post-up ip addr add 192.168.255.1/30 dev gre1
post-up ip link set gre1 up

BR-RTR -> ISP
post-up ip tunnel add gre1 mode gre remote 172.16.1.2 local 172.16.2.2 ttl 255
post-up ip addr add 192.168.255.2/30 dev gre1
post-up ip link set gre1 up

BSD-Like настройка

ifconfig vlan_device vlan vlan_id vlandev parent_device ifconfig vlan0 vlan 2 vlandev xl0 ifconfig vlan0 inet 10.10.10.1 netmask 255.255.255.192

systemctl enable --now frr.service
/etc/frr/daemons
ospfd=yes
systemctl restart frr

HQ-RTR
vtysh
conf t
router ospf
passive-interface default
network 192.168.100.0/29 area 0
network 192.168.200.0/24 area 0
network 192.168.99.0/29 area 0
network 192.168.255.0/30 area 0
exit
interface gre1
no ip ospf passive
ip ospf authentication
ip ospf authentication-key P@ssw0rd
end
wr mem

BR-RTR
configure terminal
router ospf
passive-interface default
network 192.168.3.0/29 area 0
network 192.168.255.0/30 area 0
exit
interface gre1
no ip ospf passive
ip ospf authentication
ip ospf authentication-key P@ssw0rd
end
write memory
                    

D-Link настройка

config vlan default delete 1-26 config vlan default add untagged 1,3,7-24 create vlan Offices tag 2 config vlan Offices add tagged 1,2 config vlan Offices add untagged 4,5,6

/etc/sysctl.conf 
net.ipv4.ip_forward = 1
sysctl -p

HQ-RTR
auto enp2s0
iface enp2s0 inet static
address 172.16.1.2/28
gateway 172.16.1.1
post-down iptables-save > /etc/sysconfig/iptables
pre-up iptables-restore < /etc/sysconfig/iptables

BR-RTR
auto enp2s0
iface enp2s0 inet static
address 172.16.2.2/28
gateway 172.16.2.1
post-down iptables-save > /etc/sysconfig/iptables
pre-up iptables-restore < /etc/sysconfig/iptables

Asotel настройка

set 1qvlan create 2 Offices #создадим 2-й влан set 1qvlan modify -4-5-6 1 0 #уберем первый с 4,5,6-го портов set 1qvlan modify +1+2 2 1 #подадим тегированный 2-й влан в 1,2 порты set 1qvlan modify +4+5+6 2 0 #подадим нетегированный 2-й влан в 4,5,6 порты set 1qvlan pvid 4 2 # скажем свитчу что 4 дырка пренадлежит 2-му влану, аналогично делаем с 5,6 set 1qvlan pvid 5 2

apt-get install dnsmasq
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
echo "" > /etc/dnsmasq.conf

interface=vlan200
dhcp-range=192.168.200.3,192.168.200.254,1h
dhcp-option=1,255.255.255.0
dhcp-option=3,192.168.200.1
dhcp-option=6,192.168.100.2
domain=au-team.irpo
dhcp-host=0c:6f:7f:66:00:00,192.168.200.2

EdgeCore/LinkSys настройка

Vty-0#configure Vty-0(config)#vlan database Vty-0(config-vlan)# Vty-0(config-vlan)#vlan 2 name Offices media ethernet state active Vty-0(config-vlan)#exit Vty-0(config)#interface ethernet 1/1 Vty-0(config-if)#switchport mode trunk Vty-0(config-if)#switchport allowed vlan add 2 tagged Vty-0(config-if)#exit Vty-0(config)#interface ethernet 1/2 Vty-0(config-if)#switchport mode trunk Vty-0(config-if)#switchport allowed vlan add 2 tagged Vty-0(config-if)#exit Vty-0(config)#interface ethernet 1/4 Vty-0(config-if)#switchport mode access Vty-0(config-if)#switchport allowed vlan add 2 untagged Vty-0(config-if)#switchport native vlan 2 Vty-0(config-if)#exit Vty-0(config)#interface ethernet 1/5 Vty-0(config-if)#switchport mode access Vty-0(config-if)#switchport allowed vlan add 2 untagged Vty-0(config-if)#switchport native vlan 2 Vty-0(config-if)#exit Vty-0(config)#interface ethernet 1/6 Vty-0(config-if)#switchport mode access Vty-0(config-if)#switchport allowed vlan add 2 untagged Vty-0(config-if)#switchport native vlan 2 Vty-0(config-if)#exit Vty-0(config)#exit Vty-0#copy running-config startup-config ; Для проверки запустим Vty-0#show running-config

listen-address=192.168.100.2
server=8.8.8.8

# HQ-RTR
address=/hq-rtr.au-team.irpo/172.16.1.2
ptr-record=2.1.16.172.in-addr.arpa,hq-rtr.au-team.irpo

# BR-RTR
address=/br-rtr.au-team.irpo/172.16.2.2

# HQ-SRV
address=/hq-srv.au-team.irpo/192.168.100.2
ptr-record=2.100.168.192.in-addr.arpa,hq-srv.au-team.irpo

# HQ-CLI
address=/hq-srv.au-team.irpo/192.168.200.2
ptr-record=2.200.168.192.in-addr.arpa,hq-cli.au-team.irpo

# BR-SRV
address=/br-srv.au-team.irpo/192.168.3.2

# ISP
address=/docker.au-team.irpo/172.16.1.1
address=/web.au-team.irpo/172.16.2.1

ping ya.ru
ping br-rtr
ping br-rtr.au-team.irpo
                    

Заключение

Уменьшение количества широковещательного трафика в сети Каждый VLAN — это отдельный широковещательный домен. Например, коммутатор — это устройство 2 уровня модели OSI. Все порты на коммутаторе, где нет VLANов, находятся в одном широковещательном домене. Создание VLAN на коммутаторе означает разбиение коммутатора на несколько широковещательных доменов. Если один и тот же VLAN есть на разных коммутаторах, то порты разных коммутаторов будут образовывать один широковещательный домен. И множество других причин/ситуаций в которых это может понадобиться. Увеличение безопасности и управляемости сети Когда сеть разбита на VLAN, упрощается задача применения политик и правил безопасности. С VLAN политики можно применять к целым подсетям, а не к отдельному устройству. Кроме того, переход из одного VLAN в другой предполагает прохождение через устройство 3 уровня, на котором, как правило, применяются политики разрешающие или запрещающие доступ из VLAN в VLAN.

timedatectl set-timezone 'Europe\Moscow'
timedatectl status