끝점으로 레이어 2 인터페이스 (TAP)가있는 약간의 터널링 앱을 작성하고 있습니다. OSX에서이를 테스트하는 과정에서 터널이 단일 OSX 머신에서 실행될 때와 OSX과 Linux 박스 사이를 터널했을 때 터널에서 예상하지 못한 모든 종류의 트래픽이 발생했다는 것을 알았습니다. 이 트래픽을 필터링하고 싶습니다.이 작업을 수행하는 가장 좋은 방법은 무엇인지 궁금합니다.OSX의 TAP 인터페이스에서 이더넷 패킷 (ICMP, Bonjour) 필터링
터널은 (동일한 시스템에있을 수 있습니다 모두 엔드 포인트에주의) 다음과 같습니다
tap0 -> tunnel app -> UDP tunnel -> tunnel app -> tap1
주목할만한 트래픽이 대상 포트 5353 및 ICMP/IGMP에 봉쥬르 패킷입니다. 멀티 캐스트는 TAP 인터페이스에서 활성화됩니다. 이런 종류의 트래픽을 차단하고 싶습니다. 이 일에 내 생각 :
-
인터페이스에서 멀티 캐스트를 끄고
- 은 터널 응용 프로그램 내부의 인터페이스를 오는 패킷을 분석
- 사용
ebtables
- (아래 참조, OSX에서 작동하지 않습니다) 무시 그들 거기에
더 나은/쉬운 방법이 있나요?
OSX 인터페이스에서 멀티 캐스트를 해제하려고 시도했지만 (tap0이라고 부르 자) 오류가 발생합니다.
$ ifconfig tap0 -multicast
ifconfig: -multicast: bad value
EDIT : 조금 더 사냥을 한 후에는 UNIX와 BSD ifconfig에 다른 옵션이 있습니다. OSX/BSD의 주어진 인터페이스에서 멀티 캐스트/ICMP 트래픽을 차단하는 또 다른 방법이 있습니까?
$ ifconfig tap1
tap1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 92:d9:e6:65:5a:8c
inet 10.0.0.2 netmask 0xffffff00 broadcast 10.0.0.255
open (pid 17121)
리눅스 : 여기
은 (osxtuntap와)
OSX ...은 ifconfig 출력의
$ ifconfig tunX
tunX Link encap:Ethernet HWaddr 4a:29:02:e6:b0:b9
inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::4829:2ff:fee6:b0b9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)