Я пытаюсь настроить дополнительную VLAN на нашем маршрутизаторе / брандмауэре на основе Debian (который существует как виртуальная машина на Hyper-V), нашем основном коммутаторе (HP Procurve 5406) и удаленном HP ProCurve 2610, подключенном через WAN. Ссылка Transparent Lan Service (TLS).
Давайте работать в обратном направлении от границы сети: к серверу Debian подключено внешнее соединение с eth0. Внутренний интерфейс - это eth1, который напрямую подключен от нашего хоста Hyper-V к 5406. Порт, к которому подключен eth1, настроен как Trk12. 2610 подключен к Trk9 (который объединяет множество сетей VLAN - Trk9 - это наша головка TLS). Я могу успешно пропинговать IP-адреса управления для моей VLAN с обоих коммутаторов, но я не могу проверить связь с виртуальным интерфейсом для моей новой VLAN на базовом маршрутизаторе Debian и межсетевом экране ни с одного из коммутаторов. Существующая VLAN работает нормально.
Что дает? Порт, к которому подключен eth1, является транком, существующая VLAN (ID 98) не помечена на транке, новая VLAN (ID 198) помечена. VLAN 198 помечена на Trk9 на 5406 и на 2610. Я могу пропинговать IP-адрес управления другого коммутатора (10.100.198.2 и 10.100.198.3) с другого соответствующего коммутатора. Эта ветвь VLAN работает - однако я не могу связаться с 10.100.198.1 eth1.198. Я чувствую, что упускаю что-то элементарное, но то, что это остается для меня призрачным. Я подозреваю, что проблема в vconfig, созданном eth1.198. Он должен правильно передавать помеченные пакеты VLAN 198? Но они не могут продвинуться дальше 5406.
Связь по существующей VLAN 98 работает нормально.
Из коробки Debian:
eth1:
eth1 Link encap:Ethernet HWaddr 00:15:5d:34:5e:03
inet addr:10.100.0.1 Bcast:10.100.255.255 Mask:255.255.0.0
inet6 addr: fe80::215:5dff:fe34:5e03/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12179786 errors:0 dropped:0 overruns:0 frame:0
TX packets:20210532 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1586498028 (1.4 GiB) TX bytes:26154226278 (24.3 GiB)
Interrupt:9 Base address:0xec00
eth1.198:
eth1.198 Link encap:Ethernet HWaddr 00:15:5d:34:5e:03
inet addr:10.100.198.1 Bcast:10.100.198.255 Mask:255.255.255.0
inet6 addr: fe80::215:5dff:fe34:5e03/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1496 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:3528 (3.4 KiB)
# cat /proc/net/vlan/eth1.198:
eth1.198 VID: 198 REORDER_HDR: 0 dev->priv_flags: 1
total frames received 0
total bytes received 0
Broadcast/Multicast Rcvd 0
total frames transmitted 72
total bytes transmitted 3528
total headroom inc 0
total encap on xmit 39
Device: eth1
INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0
EGRESS priority mappings:
# ip route
10.100.198.0/24 dev eth1.198 proto kernel scope link src 10.100.198.1
206.174.64.0/20 dev eth0 proto kernel scope link src 206.174.66.14
10.100.0.0/16 dev eth1 proto kernel scope link src 10.100.0.1
default via 206.174.64.1 dev eth0
# iptables -L -v
Chain INPUT (policy DROP 6875 packets, 637K bytes)
pkts bytes target prot opt in out source destination
41 4320 ACCEPT all -- lo any anywhere anywhere
11481 1560K ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
107 8058 ACCEPT icmp -- any any anywhere anywhere
0 0 ACCEPT tcp -- eth1 any 10.100.0.0/24 anywhere tcp dpt:ssh
701 317K ACCEPT udp -- eth1 any anywhere anywhere udp dpts:bootps:bootpc
Chain FORWARD (policy DROP 1 packets, 40 bytes)
pkts bytes target prot opt in out source destination
156K 25M ACCEPT all -- eth1 any anywhere anywhere
215K 248M ACCEPT all -- eth0 eth1 anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT all -- eth1.198 any anywhere anywhere
0 0 ACCEPT all -- eth0 eth1.198 anywhere anywhere state RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT 13048 packets, 1640K bytes)
pkts bytes target prot opt in out source destination
Из 5406:
# показать детали порта vlan trk12
Status and Counters - VLAN Information - for ports Trk12
VLAN ID Name | Status Voice Jumbo Mode
------- -------------------- + ---------- ----- ----- --------
98 WIFI | Port-based No No Untagged
198 VLAN198 | Port-based No No Tagged
Ваша Linux-машина - это виртуальная машина Hyper-V, поэтому я предполагаю, что это виртуальный коммутатор Hyper-V, который фильтрует ваш тегированный трафик. Вы можете просто обойти это: создать новый интерфейс для виртуальной машины Debian в Hyper-V, используя ту же виртуальную сеть, что и для eth1, и установить идентификатор VLAN на 198.
(взято из social.technet.microsoft.com)
Он будет представлен вашей виртуальной машине debian как eth2 (предположительно) и будет иметь непомеченный кадры. Если вы предпочитаете другое имя (например, eth1.198), вы можете переименовать его, используя ifrename или udev.