특정 UDP 포트 트래픽에 VLAN 태그 추가

특정 UDP 포트 트래픽에 VLAN 태그 추가

저는 원격 스위치 관리를 수행하는 애플리케이션을 Ubuntu12.04에서 실행하고 있습니다. IPv4 10.0.0.1/24로 설정된 관리 스위치 네트워크인 eth0에 연결된 단일 NIC만 있습니다. 이 IPv4 주소는 Ubuntu 시스템에 할당된 유일한 "전역" 라우팅 가능 주소이기 때문에 이 Ubuntu 시스템에서 사용할 수 있는 유일한 주소입니다(기술적인 문제가 아닌 일부 네트워크 관리로 인해...).

NetConf 프레임을 보낼 때 VLAN ID 444의 802.1q VLAN 태그를 포함하려면 스위치 관리 트래픽(UDP 포트 830을 사용하는 SSH를 통한 NetConf)이 필요하며 응답은 이 태그와 함께 수신됩니다. 다른 모든 트래픽(http, ftp, dhcp, snmp 등)은 VLAN 태그 없이 eth0을 사용합니다.

eth0에서 VLAN 인터페이스 eth0.444를 사용해 보았지만 전송된 트래픽에 VLAN 태그가 포함되지 않은 것 같습니다.

ebtables/iptables를 사용하여 특정 UDP 포트 트래픽에 특정 VLAN 태그를 추가할 수 있습니까(그리고 어떻게)? ebtables/iptables 솔루션이 수신 경로에도 작동합니까?

감사합니다!

데이비드

답변1

iptablesebtables패킷에 VLAN 태그를 설정할 수 없습니다 . 이것이 바로 VLAN 하위 인터페이스의 목적입니다.

거기에VLAN을 논의하는 Ubunut 위키 기사아마도 검토해야 할 것입니다. 하지만 요약하자면 다음과 같습니다.

  • 802.1q 모듈이 modprobe 8021q.

  • 를 사용하여 VLAN 하위 인터페이스를 만듭니다 vconfig add eth0 444.

  • VLAN 444에서 사용되는 서브넷의 IP 주소와 서브넷 마스크를 다음을 사용 eth0.444하여 하위 인터페이스에 추가합니다.ip addr add x.x.x.x/z dev eth0.444

또한 VLAN 444에 대해 태그가 지정된 프레임을 허용하도록 서버가 연결된 스위치 포트를 구성해야 합니다. 스위치 브랜드를 언급하지 않았으므로 거기에서 많은 지침을 제공할 수는 없지만 아마도 다음을 찾고 있을 것입니다. VLAN 444의 태그가 지정된 멤버로 구성된 "트렁크" 또는 "일반" 포트와 인터페이스에 할당된 서브넷에서 사용되는 모든 VLAN의 태그가 지정되지 않은 멤버입니다 eth0.

tcpdump그럴 수 있으니 주의하세요VLAN 태그를 표시하는 데 문제가 있습니다tcpdump따라서 프레임 이 태그 지정되었는지 확인하기 위해 호스트 자체에서 사용하는 경우 반드시 프레임이 태그 지정되지 않았다고 가정하지 마십시오 .

편집하다:

일반적으로 VLAN과 IP 서브넷 간에는 일대일 관계가 있습니다. 스위치에 현재 eth0포트가 위치한 VLAN과 동일한 IP 서브넷인 VLAN 444에 관리 인터페이스가 있는 경우 이는 매우 이례적입니다 .

답변2

802.1Q 태그는 MAC 헤더에 삽입되며, 인터페이스에 VLAN 태그가 지정되지 않은 경우 커널은 이를 디코딩하지 않습니다. 따라서 나가는 패킷을 조작할 수 있더라도 VLAN 태그가 있는 들어오는 트래픽은 계속 무시됩니다.

당신이 해야 할 일은 당신이 했던 것처럼 VLAN 태그가 붙은 인터페이스를 생성하고, 액세스하려는 스위치 IP가 있는 동일한 범위 내에서 IP를 추가하는 것입니다.

관련 정보