Linux 가상 브리지는 VLAN을 지원합니까?

Linux 가상 브리지는 VLAN을 지원합니까?

Linux 가상 브리지(예: ip또는 로 구성 brctl)가 VLAN을 지원합니까? 예를 들어, 서로 다른 VLAN에 액세스 포트를 구성하고 특정 VLAN에 대해서만 트렁크 포트를 활성화합니다. 내 커널의 유일한 옵션(3.2.0-4-686-pae) VLAN 및 브리지에 관한 구성 파일이 있지만 CONFIG_BRIDGE_EBT_VLAN내가 이해한 바에 따르면 이는 802.1q VLAN 필드에서 필터링될 수 있습니다 ebtables.

답변1

문제 없습니다. 이것은 대부분의 openWRT 시스템이 WLAN과 스위치 포트를 동일한 LAN에 연결하는 방법입니다. 다음은 두 개의 Wi-Fi 네트워크(개인용과 게스트용)가 있는 내 openWRT 시스템의 구성 예입니다.

# brctl show
bridge name     bridge id               STP enabled     interfaces
br-vlan2        7fff.a0f3c15eb708       no              eth0.2
                                                        wlan0
                                                        wlan1
br-vlan3        7fff.a0f3c15eb708       no              eth0.3
                                                        wlan0-1
                                                        wlan1-1

추가 설명:

일반적인 openwrt 하드웨어(위의 TP-Link WDR4300)에는 모든 물리적 포트를 처리하는 스위치가 있습니다. 때로는 물리적 WAN 포트가 ethSoC CPU의 별도 인터페이스입니다. 스위치는 트렁크를 통해 CPU에 연결됩니다(이 연결의 패킷에는 VLAN 태그가 지정됨). 따라서 eth0.2는 VLAN2이며 4개의 물리적 스위치 포트에만 연결되어 있으며 VLAN 태그가 제거되었습니다.

따라서 br-vlan2는 CPU에서 스위치로의 연결이 하나만 있기 때문에 필요에 따라 VLAN을 사용하는 "LAN 네트워크"로 간단히 생각해야 합니다.

Linux의 이더넷 브리지는 VLAN과 물리적 인터페이스를 구성원으로 가질 수 있습니다. VLAN 인터페이스는 물리적 인터페이스와 마찬가지로 자체 라우팅, 방화벽 등을 갖춘 Linux의 물리적 인터페이스처럼 작동하기 때문에 이것이 제가 예상한 것입니다. 뒤따르는 광란에 신경 쓰지 않는다면 브리지에도 다른 VLAN을 추가할 수 있기를 바랍니다. :)

VLAN 태그가 지정된 트래픽도 전달하는 것과 같은 물리적 인터페이스를 브리징해 본 적이 없습니다 eth0. 태그가 지정된 패킷도 브리징될지는 모르겠습니다.

답변2

한 가지 비결은 vconfig 명령을 사용하여 VLAN 트래픽이 전달될 수 있음을 브리지에 명시적으로 알리는 것입니다. 아래 코드는 명령줄에서 이 작업을 수행하며 재부팅 후에는 사라집니다. 재부팅 시 이를 수행하려면 다음을 참조하세요.https://serverfault.com/questions/414115/linux-vlans-over-bridge

brctl addbr br0
brctl addif br0 eth0
vconfig add br0 100
ifconfig br0.100  127.16.0.128 netmask 255.255.255.0

위의 ifconfig는 br0과 eth0이 연결되어 있으므로 eth0에서도 작동합니다.

관련 정보