Linux는 ebtables를 사용하여 EAPoL 프레임을 라우팅, 필터링 및 전달합니다.

Linux는 ebtables를 사용하여 EAPoL 프레임을 라우팅, 필터링 및 전달합니다.

3개의 이더넷 인터페이스가 있는 경우 다음 작업을 수행하고 싶습니다.

eth0 -> WAN
eth1 -> EAPoL authenticator
eth2 -> IP Nat to private network

이 경우, ebtables가 EAPoL 인증자에 연결될 eth1을 통해 WAN과 0x888E(EAPoL) 유형 이더넷 프레임을 필터링하고 전달하기를 원합니다. 나머지 트래픽은 IP NAT를 통해 eth2로 이동하고 싶습니다.

나는 여기에서 Brutin에 대해 읽었습니다.

http://ebtables.netfilter.org/examples/basic.html#ex_brouter

위의 방법을 사용하여 레이어 2 필터링을 수행할 수 있는 방법은 명확하지 않습니다.

대신 지금까지 시도한 것은 eth0과 eth1을 사용하여 브리지를 만든 다음 EAPoL 트래픽만 eth1에 도달하도록 ebtables 필터 규칙을 만드는 것입니다.

ebtables -t filter -A FORWARD -i eth0 -p 0x888e -j ACCEPT
ebtables -t filter -A FORWARD -i eth0 -j DROP
ebtables -t filter -A FORWARD -o eth0 -p 0x888e -j ACCEPT
ebtables -t filter -A FORWARD -o eth0 -j DROP

그런 다음 eth0과 eth2 사이에 IP NAT를 수행합니다.

iptables -t nat -A POSTROUTING -o eth0-j MASQUERADE
iptables -A FORWARD -i eth2 -j ACCEPT

안타깝게도 두 가지를 동시에 작동시킬 수는 없고 하나만 작동하게 할 수는 없습니다.

어떤 아이디어가 있나요? 어떤 아이디어나 팁이라도 감사드립니다.

관련 정보