태그가 지정되지 않은 이더넷을 TAP 터널에 연결하고 트래픽이 터널로 이동함에 따라 VLAN 태그를 추가하는 시스템을 설정하려고 합니다.
지금까지 나는 다음을 가지고 있습니다 :
eth0
- 태그가 지정되지 않은 트래픽을 전달하는 물리적 이더넷 인터페이스입니다.tap1
- TAP 터널 인터페이스.br0
tap1
- 브리지(및 기타 물리적 인터페이스)를 포함합니다.
다음을 수행하여 이더넷 측에 VLAN 태그를 추가할 수 있다는 것을 알고 있습니다.
$ ip link add link eth0 name eth0.5 type vlan id 5
$ brctl addif br0 eth0.5
하지만 어떻게 반대로 할 수 있나요?
편집하다나는 이것을 할 수 있다는 것을 발견했습니다 :
$ ip link add veth0 type veth peer name veth1
$ ip link add link veth0 name veth0.5 type vlan id 5
$ brctl addif br0 veth0.5
$ brctl addbr br1
$ brctl addif br1 eth0
$ brctl addif br1 veth1
내 생각엔 그게 내가 원하는 거야 - 그게 창조해둘브리지는 가상 이더넷 장치를 통해 연결하고 트래픽이 장치 사이를 통과할 때 VLAN 태그를 추가/제거합니다. 더 간단한 게 있나요?
답변1
예: VLAN을 지원하도록 브리지를 설정할 수 있습니다.
그런 다음 브리지는 구성에 따라 태그 지정 및 태그 해제를 포함하여 통과하는 프레임에 연결된 VLAN ID를 처리하고 지정된 VLAN에 속한 프레임만 프레임을 허용하도록 구성된 포트로 보냅니다. 이렇게 하면 VLAN 하위 인터페이스를 사용할 필요 없이 모든 설정이 브리지 자체로 이동됩니다(물론 일부 설정에서는 이러한 하위 인터페이스를 계속 사용할 수 있습니다).
이 기능은 더 이상 사용되지 않는 brctl
명령을 통해 사용할 수 없지만 최신 대체 명령이 필요합니다.bridge
명령(그리고 일반적인ip link
주문하다). 이는 더 간단한 설정입니다(브리지 1개, 하위 인터페이스 없음).
방법은 tap1
브리지 포트에 태그를 지정하도록 VLAN ID(VID) 5를 구성하고 eth0
VID 5도 사용하되 태그 없음: 출력 태그 없음으로 설정하고 이 VID를 PVID(포트 VLAN ID)로 설정하는 것입니다. 입력은 이를 사용하여 브리지에 태그를 지정합니다. 포트당 하나의 PVID만 있을 수 있습니다.
깔끔한 구성을 유지하기 위해 각 포트에 할당된 기본 VLAN ID 1을 제거하는 옵션도 있습니다(물론 더 복잡한 설정에 여러 VLAN이 필요한 경우 제외).
지금까지 최신 명령만 사용한 설정은 다음과 같습니다.
ip link set eth0 up
ip link set tap1 up
# the following line could have directly included at bridge creation the additional parameter `vlan_filtering 1`
ip link add name br0 type bridge
ip link set tap1 master br0
ip link set eth0 master br0
특정 VLAN 인식 브리지 설정은 먼저 기능을 활성화합니다.
ip link set dev br0 type bridge vlan_filtering 1
bridge vlan del dev tap1 vid 1
bridge vlan del dev eth0 vid 1
bridge vlan add dev tap1 vid 5
bridge vlan add dev eth0 vid 5 pvid untagged
ip link set br0 up
브리지의 자체 암시적 포트는 여전히 VID 1을 사용하므로 일부 설정에서 수행된 것처럼 브리지에 직접 IP를 할당하면 이제 제대로 통신하지 못합니다. 이러한 구성이 정말로 필요한 경우 VLAN 5에서 브리지 자체 포트이므로 약간 다른 구문( self
)을 사용하여 브리지 자체 포트를 설정할 수도 있습니다.
bridge vlan del dev br0 vid 1 self
bridge vlan add dev br0 vid 5 pvid untagged self
일반적으로 가능한 상호 작용을 방지하기 위해 브리지의 기본 VID 1을 제거하는 것이 더 깔끔합니다.와이즈페어링하고 한쪽 끝을 브리지에 연결하고 브리지를 구성합니다.가상 LAN상대방과 동일하게 설정 eth0
하고 IP를 할당합니다.
이 주제에 대한 좋은 블로그 시리즈:
이름이 지정되지 않은 Linux 네트워크 네임스페이스에서 veth 장치, Linux 브리지 및 VLAN을 즐겨보세요.
나 둘 삼, 4호 V 육, 일곱 여덟