Linux에서 VLAN 하위 인터페이스를 생성하면 상위 인터페이스와 동일한 MAC 주소를 얻습니다. 예를 들어, 와 동일한 MAC을 얻으려면 ip link add link eth0 name eth0.333 type vlan id 333
이 명령을 사용하십시오 . 서버가 VLAN 태그를 기반으로 수신된 프레임을 식별하는 것이 맞습니까? 아니면 VLAN 태그가 누락된 경우 스위치의 프레임이 자체적으로 전송됩니까?eth0.333
eth0
eth0
답변1
기본 동작은 802.1q 필드와 동일한 802.1q 필드가 있는 패킷만 허용하는 인터페이스를 추가하는 것입니다. vlan id
이 특정 인터페이스에 대한 패킷입니다.
안에아주 간단한 방법, Mac 주소는 상위 주소와 동일하므로 패킷은 phy 인터페이스로 전달되고 커널에 의해 처리되며 소스 mac 주소 필드 다음에 오는 802.1q 태그 필드를 검색합니다. 이 필드는 다음과 같이 식별됩니다.0x8100 에테르형. 마지막 12비트는 VLAN ID를 정의합니다.
이더넷 프레임에 태그가 지정되어 VLAN 인터페이스로 전달됩니다. 두 인터페이스 모두에서 tcpdump를 사용하고 IP 주소를 ping하여 이를 다시 확인할 수 있습니다 eth0.333
. 다음에서만 출력을 볼 수 있습니다 eth0
.
# tcpdump -ni eth0 vlan 333
# tcpdump -ni eth0.333 vlan 333
역방향 트래픽 방향의 기본 동작은 표시 및 통과입니다(구성 가능).
상위 Mac 주소와 다른 Mac 주소로 가상 인터페이스를 생성하려면 macvlan
iputils2 옵션을 사용해야 합니다. 스위치에는 일부 MAC 관련 제한 사항이 있을 수 있으며 새로 생성된 이 인터페이스의 트래픽을 차단할 수 있습니다.
그래 네가 맞아. 태그가 없으면 트래픽이 물리적 인터페이스로 이동합니다. 구성에 따라 패킷 허용 여부가 정의됩니다.