VLAN на AltLinux
Для начала определимся что такое 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