트렁크 및 셀프 브리지 포트가 있는 Linux 브리지

트렁크 및 셀프 브리지 포트가 있는 Linux 브리지

VLAN 인식 브리지를 생성하고 다음 명령을 사용하여 관련 인터페이스를 추가했습니다.

% ip link add br0 type bridge vlan_filtering 1
% ip link set dev eth0 master br0
...

(eth1, eth2, eth3에 대해 이것을 반복합니다)

이제 브리지 포트가 여러 태그가 있는 프레임을 처리하고 태그 프레임을 제거하여 포트에 전달할 수 있기를 원합니다.br0청취 데몬이 있습니다.

% bridge vlan del dev eth0 vid 1
% bridge vlan add dev eth0 vid 2-4094
...

(eth1, eth2, eth3에 대해 이것을 반복합니다)

모든 명령을 완료한 후 브리지 설정은 다음과 같습니다.

% bridge -c vlan sh
port    vlan ids
br0      1 PVID Egress Untagged

eth3     2-4094

eth2     2-4094

eth1     2-4094

eth0     2-4094

br1      1 PVID Egress Untagged

이제 인터페이스 뒤에 있는 호스트 (IP 192.168.1.1) ping에서 eth0보낼 때 eth0이 실제로 태그가 지정된 프레임(제 경우 ID는 10)을 수신하고 있지만 br0은 아무것도 수신하지 않는 것을 볼 수 있습니다. 내가 무엇을 놓치고 있나요?br0tcpdump

답변1

브리지 자체 인터페이스는 라우팅에 참여하는 브리지의 일부이며 적절한 VLAN에도 배치되어야 합니다.

포트 중 하나 대신 브리지 인터페이스를 구성하려면 self추가 키워드가 필요합니다. 라우팅 스택(계층 3)은 IPv4 또는 IPv6 패킷을 처리하므로 태그가 지정된 프레임이 아닌 이 유형의 프레임을 수신할 것으로 예상합니다. 따라서 브리지를 떠날 때 VLAN ID 10은 태그가 지정되지 않아야 하며(라우팅 스택이 트래픽을 수신하려면) 라우팅 스택에서 브리지로 다시 태그를 지정하려면 이 포트 VLAN ID가 포트 VLAN ID여야 합니다. 이렇게 하면 하나의 VLAN만 라우팅 스택에 연결될 수 있습니다.

이는 다음을 제공합니다:

bridge vlan del dev br0 vid 1 self
bridge vlan add dev br0 vid 10 untagged pvid self

관련 정보