Теория
VLAN (от англ. Virtual Local Area Network), VLAN могут являться частью большего LAN, имея определенные правила взаимодействия с другими VLAN, либо быть полностью изолированными от них. Простейший механизм изоляции различных подсетей, работающих через общие свичи и роутеры, известен как 802.1Q.
Преимущества VLAN
- увеличивает число широковещательных доменов, но уменьшает размер каждого широковещательного домена, которые в свою очередь уменьшают сетевой трафик и увеличивают безопасность сети (оба следствия связаны вместе из-за единого большого широковещательного домена);
- уменьшает усилия администраторов на создание подсетей;
- уменьшает количество оборудования, так как сети могут быть разделены логически, а не физически;
- улучшает управление различными типами трафика.
Транк VLAN — это физический канал, по которому передается несколько VLAN каналов, которые различаются тегами (метками, добавляемыми в пакеты). Транки обычно создаются между «тегированными портами» VLAN-устройств: свитч-свитч или свитч-маршрутизатор. (В документах Cisco термином «транк» также называют объединение нескольких физических каналов в один логический: Link Aggregation, Port Trunking). Маршрутизатор (свитч третьего уровня) выступает в роли магистрального ядра сети (backbone) для сетевого трафика разных VLAN.
На устройствах Cisco, протокол VTP (VLAN Trunking Protocol) предусматривает VLAN-домены для упрощения администрирования. VTP также выполняет «чистку» трафика, направляя VLAN трафик только на те коммутаторы, которые имеют целевые VLAN-порты.
Native VLAN — каждый порт имеет параметр, названный постоянный виртуальный идентификацией (Native VLAN), который определяет VLAN, назначенный получить нетеговые кадры.
Сказав проще, vlan — это логический канал внутри физического канала (кабеля), а trunk это множество логических каналов (vlan`ов) внутри одного физического канала (кабеля).
В терминах Dlink:
- антагет порт (untagged port) — порт в аксес режиме принимающий не тегированные пакеты
- тагет порт (tagged port) — порт в транке принимающий тегерованные пакеты
Настраиваем VLAN на D-LINK
Настраиваем CentOS
[root@gate bin]# ip addr del 10.10.5.1/24 dev enp5s9
[root@gate bin]# ip link add link enp5s9 name enp5s9.5 type vlan id 5
[root@gate bin]# ip -d link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 promiscuity 0 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 2: enp64s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:14:c2:03:4b:d2 brd ff:ff:ff:ff:ff:ff promiscuity 0 addrgenmode eui64 numtxqueues 5 numrxqueues 5 gso_max_size 65536 gso_max_segs 65535 3: enp5s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:30:84:b3:9a:b0 brd ff:ff:ff:ff:ff:ff promiscuity 0 addrgenmode none numtxqueues 5 numrxqueues 5 gso_max_size 65536 gso_max_segs 65535 18: enp5s9.5@enp5s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 00:30:84:b3:9a:b0 brd ff:ff:ff:ff:ff:ff promiscuity 0 vlan protocol 802.1Q id 5 <REORDER_HDR> addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
[root@gate bin]# ip link set enp5s9.5 up
[root@gate bin]# ip link sh
[root@gate bin]# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp64s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:14:c2:03:4b:d2 brd ff:ff:ff:ff:ff:ff 3: enp5s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:30:84:b3:9a:b0 brd ff:ff:ff:ff:ff:ff 18: enp5s9.5@enp5s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 00:30:84:b3:9a:b0 brd ff:ff:ff:ff:ff:ff
[root@gate bin]# ip addr add 10.10.5.1/24 dev enp5s9.5
[root@gate bin]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: enp64s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:14:c2:03:4b:d2 brd ff:ff:ff:ff:ff:ff inet 192.168.113.53/24 brd 192.168.113.255 scope global noprefixroute enp64s0 valid_lft forever preferred_lft forever 3: enp5s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:30:84:b3:9a:b0 brd ff:ff:ff:ff:ff:ff 18: enp5s9.5@enp5s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:30:84:b3:9a:b0 brd ff:ff:ff:ff:ff:ff inet 10.10.5.1/24 scope global enp5s9.5 valid_lft forever preferred_lft forever
Проверяем:
[root@gate]# tcpdump -vvenn -i enp5s9 vlan -q -ttt -n -c 50 tcpdump: listening on enp5s9, link-type EN10MB (Ethernet), capture size 262144 bytes 00:00:00.000000 00:30:84:b3:9a:b0 > c0:a0:bb:e2:5e:93, 802.1Q, length 102: vlan 5, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 44290, offset 0, flags [DF], proto ICMP (1), length 84) 10.10.5.1 > 10.10.5.90: ICMP echo request, id 31419, seq 58, length 64 00:00:00.007910 c0:a0:bb:e2:5e:93 > 00:30:84:b3:9a:b0, 802.1Q, length 102: vlan 5, p 7, ethertype IPv4, (tos 0x0, ttl 64, id 17045, offset 0, flags [none], proto ICMP (1), length 84) 10.10.5.90 > 10.10.5.1: ICMP echo reply, id 31419, seq 58, length 64 00:00:00.993148 00:30:84:b3:9a:b0 > c0:a0:bb:e2:5e:93, 802.1Q, length 102: vlan 5, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 44388, offset 0, flags [DF], proto ICMP (1), length 84) 10.10.5.1 > 10.10.5.90: ICMP echo request, id 31419, seq 59, length 64 00:00:00.006873 c0:a0:bb:e2:5e:93 > 00:30:84:b3:9a:b0, 802.1Q, length 102: vlan 5, p 7, ethertype IPv4, (tos 0x0, ttl 64, id 17046, offset 0, flags [none], proto ICMP (1), length 84) 10.10.5.90 > 10.10.5.1: ICMP echo reply, id 31419, seq 59, length 64 00:00:00.994145 00:30:84:b3:9a:b0 > c0:a0:bb:e2:5e:93, 802.1Q, length 102: vlan 5, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 44744, offset 0, flags [DF], proto ICMP (1), length 84) 10.10.5.1 > 10.10.5.90: ICMP echo request, id 31419, seq 60, length 64 00:00:00.027916 c0:a0:bb:e2:5e:93 > 00:30:84:b3:9a:b0, 802.1Q, length 102: vlan 5, p 7, ethertype IPv4, (tos 0x0, ttl 64, id 17047, offset 0, flags [none], proto ICMP (1), length 84) 10.10.5.90 > 10.10.5.1: ICMP echo reply, id 31419, seq 60, length 64 00:00:00.973127 00:30:84:b3:9a:b0 > c0:a0:bb:e2:5e:93, 802.1Q, length 102: vlan 5, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 45261, offset 0, flags [DF], proto ICMP (1), length 84) 10.10.5.1 > 10.10.5.90: ICMP echo request, id 31419, seq 61, length 64 00:00:00.010669 c0:a0:bb:e2:5e:93 > 00:30:84:b3:9a:b0, 802.1Q, length 102: vlan 5, p 7, ethertype IPv4, (tos 0x0, ttl 64, id 17048, offset 0, flags [none], proto ICMP (1), length 84) 10.10.5.90 > 10.10.5.1: ICMP echo reply, id 31419, seq 61, length 64