2017-11-30 36 views
0

네이티브 VLAN을 통해 나가는 패킷의 일부 클라이언트 Mac에 대해 vlan 태그를 삽입하려고합니다. nh_hooks IN, OUT 및 Forward를 시도했지만 성공하지 못했습니다.나가는 패킷에 VLAN 태그를 삽입하는 방법

내가 원하는 것은 클라이언트의 패킷에 기본 VLAN으로 태그를 추가 한 다음 동일한 VLAN을 통해 보낼 수 있거나 태그가 지정된 VLAN 인터페이스에 기반한 일부 클라이언트의 기본 VLAN 패킷을 전달할 수 있습니까?

netlink 코드 또는 커널 수준 코드에 대한 제안이 있으십니까? 아니면 MAC 기반의 ebtable을 통해 가능합니까?

+0

스택 오버플로는 프로그래밍 및 개발 관련 질문에 대한 사이트입니다. 이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제와는 거리가 먼 것처럼 보입니다. 도움말 센터에서 [여기에서 내가 질문 할 수있는 항목은 무엇입니까?] (http://stackoverflow.com/help/on-topic)를 참조하십시오. 아마도 [Super User] (http://superuser.com/) 나 [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/)가 더 나은 곳이 될 것입니다. – jww

답변

0

Linux의 VLAN 태그 지정은 하위 인터페이스 (예 : ip link add link eth0 name eth0.8 type vlan id 8은 tagged VID 8을 eth0에 추가하여 eth0.8 하위 인터페이스를 생성합니다.

네이티브 VLAN은 트렁크/포트에 태그가 지정되지 않으므로 VLAN ID는 다른 곳에서 트렁크 끝점 (스위치)이 전달할 때 프레임에 태그를 붙일지 여부 및 방법에 따라 다릅니다. 는 VLAN 트렁크

는 태그 의 VID는 프레임에서 실행되는 VLAN이다.

+0

실제로 내가 원하는 것은 클라이언트 패킷 중 하나가 eth0과 브릿지 인터페이스에서오고 있다는 것입니다. 우리는 그것을 br-wan이라고 부릅니다. 원하는 것은 브로드밴드에서 그 클라이언트에 대한 패킷을 브리지 인터페이스 인 br-vlan_8로 전달하는 것입니다. eth0.8. 그렇게 할 수 있습니까? 이후 특정 클라이언트에 태그를 추가하지만 그 패킷은 eth0의 브리지 인터페이스로 전달됩니다. 내 VLAN 인터페이스가 이미 생성되었습니다. – Raheel

+0

물론 이것이 가능하지만, 대개는 적절한 하위 인터페이스를 만들고 사용해야합니다. 정확히 무엇이 필요한지에 따라 태그 지정에 2 개의 스위치 포트 (포트 1은 VLAN 8 태그 없음, 포트 2는 태그 지정)를 사용하는 것이 더 쉽습니다. – Zac67

0

PC1 --- [SW1] --- [SW2] ----- [SW3 ] ---- PC3

[sw2] ---> PC2. [sw2도 PC2에 연결됩니다.

SW2는 VLAN을 지원하지 않는 비 IEEE 802.1q 스위치라고 가정합니다. SW1, SW3은 지원합니다. 모든 PC는 VLAN 10에 있습니다.

트렁크 포트의 SW1/SW3이 VLAN 10 패킷을 태그없는 패킷으로 전송하여 PC2가 이해할 수 있도록합니다. SW1/SW3이 프레임을 수신하면 VLAN 10으로 분류됩니다. 기본 기본 VLAN은 VLAN 1입니다.

첫 번째 실수 : 기본 VLAN 프레임/패킷은 태그가 지정되지 않은 상태로 송수신됩니다. (4 바이트 VLAN 헤더 없음).

올바르게 이해한다면 태그없는 VLAN으로 태그가 지정되지 않은 원시 VLAN을 전달하려면 SW1 기본 VLAN을 VLAN 10으로, SW3 기본 VLAN을 VLAN 30으로 구성하십시오. PC3은 VLAN 30에 있습니다. VLAN 30으로 변환됩니다.

따라서 PC1의 VLAN 10은 PC2의 태그가없는 프레임과 PC3의 VLAN 30과 동일합니다.