VLAN 드라이버가 VLAN 정보를 하드웨어 이더넷 드라이버에 전달하는 방법

VLAN 드라이버가 VLAN 정보를 하드웨어 이더넷 드라이버에 전달하는 방법

프로그래밍 방식으로 대상에 VLAN을 구현하려고 합니다.

하지만 먼저 VLAN 설정을 더 잘 이해할 수 있도록 VLAN을 수동으로 설정하고 싶습니다. 그래서 vconfig/ifconfig 명령 조합을 사용하여 개발 시스템(ubuntu)에서 VLAN을 수동으로 설정했지만 의도한 대상에서 동일한 명령 조합을 사용하면 작동하지 않습니다.

두 시스템 모두 동일한 8021q 드라이버를 사용하므로 VLAN 정보를 하위 계층 이더넷 드라이버에 알리는 방법은 동일해야 한다고 생각합니다. VLAN 드라이버 소스 코드를 살펴본 후 VLAN 정보를 수집하고 해당 정보를 sk_buff 구조에 추가하는 것으로 보입니다. 이는 궁극적으로 이더넷 드라이버에 전달되지만 VLAN 마법이 발생해야 하는 곳(이더넷 드라이버 또는 8021q 드라이버)는 명확하지 않습니다.

대상 시스템의 이더넷 드라이버 소스 코드를 살펴보았는데 VLAN 설정을 위한 ioctl 방식을 지원합니다. 그러나 이는 Linux가 이더넷 드라이버에 VLAN을 설정하는 전통적인 방식과는 달라 보입니다.

VLAN 드라이버(8021q.ko)는 이더넷 하드웨어에 VLAN 정보를 알리기 위해 어떤 메커니즘을 사용합니까?

하드웨어에 VLAN을 설정하기 위해 이더넷 드라이버에 대한 특수 API 호출입니까, 아니면 VLAN 드라이버가 패킷에 VLAN 태그를 추가해야 합니까?

VLAN 구현에 대한 정보도 도움이 될 것입니다.

관련 정보