일부 네트워크 장비에 Linux가 내장되어 있습니다. 이 장치는 워낙 중요하기 때문에 네트워크 테스트를 많이 해야 합니다(이를 위한 장치는 별도로 있습니다). 이 테스트는 내 장치를 ARP 패킷(정상 패킷, 잘못된 패킷, 다른 크기의 패킷 등)으로 가득 채우는 것으로 구성되었습니다.
나는 인터넷에서 ebtables, arptables, iptables, nftables 등 다양한 xx 테이블에 대해 읽었습니다. 물론 내 장치에서는 iptables를 사용하고 있습니다.
- ARP 패킷을 필터링(삭제하지 않고 제한)하는 데 가장 적합한 xx-테이블은 무엇입니까?
- 커널에 포함된 내용에 대한 정보가 포함되어 있는 /proc/config.gz 파일에 대해 들은 적이 있습니다. CONFIG_IP_NF_ARPFILTER가 포함되어 있지 않은지 확인했습니다. 따라서 arptables를 사용하려면 CONFIG_IP_NF_ARPFILTER 옵션을 활성화하여 커널을 컴파일해야 합니다. 그렇죠? ebtables도 마찬가지인가요?
- iptables는 OSI 레벨 3에서 작동하지만 ebtables와 arptables는 OSI 레벨 2에서 작동한다는 것을 읽었습니다. 그래서 레벨 2에서 무엇이든 필터링하는 것이 레벨 3보다 필터링(성능?)이 더 좋다고 생각합니다. 그렇죠?
- 이 사이트 어딘가에서 ebtables를 사용하여 ARP 패킷을 필터링하는 방법에 대한 답을 찾았습니다. arptable에 비해 ebtable의 장점이 있나요?
- 추가로 하나. 다양한 유형의 패킷 및 프로토콜에 대한 네트워크 트래픽 제한/필터링에 대해 알아볼 수 있는 가장 좋은 인터넷 소스는 무엇입니까?
답변1
ARP 패킷을 필터링(삭제하지 않고 제한)하는 데 가장 적합한 xx-테이블은 무엇입니까?
-
iptablesIP 계층에서 시작: ARP를 처리하기에는 너무 늦었습니다. -
ARP에 특화되어 있지만,arp 테이블필요한 일치 항목 및/또는 대상이 부족함한계그리고 뿐만 아니라줄이다ARP 패킷. 귀하의 목적으로 사용할 수 없습니다. -
ebtables후보가 될 수 있습니다.ARP 처리그리고 사용
limit
모든 것을 포기하지 않기 위해).장점:
- 사용하기 매우 쉽습니다.단점:
- 이더넷에서 실행됩니다.다리. 즉, 브리지를 아직 사용하고 있지 않은 경우 브리지를 만들고 (아마도 유일한) 인터페이스를 브리지에 배치해야 완전히 사용할 수 있습니다. 이는 구성 및 일부 네트워크 오버헤드(예: 네트워크 인터페이스를 무차별로 설정) 측면에서 비용이 발생합니다. -
동등하지 않기 때문에iptables동반자IP 세트, 교통을 제한하는 것은 무례한 일입니다. 소스별로 동적 측정을 수행할 수 없습니다. 따라서 이러한 소스 MAC 또는 IP는 규칙에 수동으로 추가해야 합니다. nft
(nftables)장점:
- 이 도구의 목적은 다른 도구를 대체하고 일치하는 모듈의 중복과 같은 코드 중복을 피하는 것입니다(상상할 수 있습니다).arp 테이블당신도 받아본 적이 있을 것이다.한계일치하지만 이는 일치하는 모듈의 세 번째 구현일 뿐입니다.IP(6) 테이블'xt_limit
그리고ebtables'ebt_limit
그것들). 따라서 모든 계층에서 동일한 기능을 사용할 수 있을 만큼 일반적으로 만들어졌습니다. 즉, 트래픽을 제한/측정할 수 있습니다.ARP레벨도 동시에 진행되고 있어요소스당글로벌하게보다는.단점:
- 일부 기능에는 최신 커널과 도구가 필요할 수 있습니다(예: 미터에는 커널 >= 4.3 및nftables>= 0.8.3).
− 구문이 더 일반적이기 때문에 규칙을 올바르게 생성하는 것이 더 어려울 수 있습니다. 때로는 문서가 오해의 소지가 있을 수 있습니다(예: 작동하지 않는 예).tc
(교통 통제)?어쩌면 그것은 사용될 수 있습니다TCARP 트래픽을 제한합니다.TC이 기능은 네트워크 스택 초기에 작동하며 사용하면 리소스 사용량이 제한될 수 있습니다. 하지만 이 도구는 복잡성으로도 알려져 있습니다. 송신 트래픽 대신 수신 트래픽에 사용하더라도 단계가 필요합니다. 나는 이것을하는 방법을 시도조차하지 않았습니다.
-
CONFIG_IP_NF_ARPFILTER
이전 요점에서 알 수 있듯이 이는 의미가 없습니다.arp 테이블서비스가 중단되었습니다. 당신에게 필요한 것은
NF_TABLES_ARP
그렇지 않으면BRIDGE_NF_EBTABLES
(혹은 만약에TC사실 후보인데,NET_SCHED
). 그렇다고 그런 뜻은 아니다오직전제 조건으로 기타 필요한 사항(적어도 이러한 옵션을 사용 가능하게 만드는 데 필요한 사항과 ARP를 제한하는 데 필요한 다양한 일치 커널 모듈)을 확인해야 합니다.어떤 레이어가 가장 좋나요?
작업을 수행하기 위해 가장 구체적인 레이어를 사용하는 것이 처리하기 가장 쉽다고 말하고 싶습니다. 동시에 처리 속도가 빨라질수록 필요한 오버헤드는 줄어들지만 일반적으로 처리가 더 거칠고 복잡해집니다. 여기에는 다양한 제안이 있을 수 있다고 확신합니다. ARP는 거의 레이어 2와 레이어 3 사이의 어딘가로 생각될 수 있습니다. 이는 레이어 2에서 구현되지만, 예를 들어 NDP와 동등한 IPv6은 레이어 3에서 구현됩니다(멀티캐스트 ICMPv6 사용). 고려해야 할 유일한 요소는 아닙니다.
arptable에 비해 ebtable의 장점이 있나요?
포인트 1과 2를 참조하세요.
다양한 유형의 패킷 및 프로토콜에 대한 네트워크 트래픽 제한/필터링에 대해 알아볼 수 있는 가장 좋은 인터넷 소스는 무엇입니까?
죄송합니다. 올바른 단어를 사용하는 검색 엔진을 사용하면 찾을 수 없는 항목이 없습니다. 쉬운 주제부터 시작한 다음 더 어려운 주제로 넘어가야 합니다. 물론 SE는 이미 정보 소스입니다.
다음은 ebtables 및 nftables의 예입니다.
ebtables와 함께
인터페이스가 있고 eth0
이를 사용하고 싶다고 가정해 보겠습니다.ebtablesIP는 192.0.2.2/24입니다. eth0
인터페이스가 브리지 포트가 되면 원래 열린 IP는 무시됩니다. eth0
다리에서 제거 해야했습니다 .
ip link set eth0 up
ip link add bridge0 type bridge
ip link set bridge0 up
ip link set eth0 master bridge0
ip address add 192.0.2.2/24 dev bridge0
보고 있다ARP 옵션ebtables추가 필터링을 수행합니다. 상술 한 바와 같이ebtables제한하기엔 너무 거칠다소스당규칙을 통해 각 소스와 해당 MAC 또는 IP 주소를 수동으로 선언하지 않는 한.
초당 하나의 ARP 요청 수락을 제한합니다(모든 소스 고려).
ebtables -A INPUT -p ARP --arp-opcode 1 --limit 1/second --limit-burst 2 -j ACCEPT
ebtables -A INPUT -p ARP --arp-opcode 1 -j DROP
생성과 같은 다른 변형이 있습니다.와이즈한 쌍의 경우 한쪽 끝에 IP를 배치하고 다른 쪽 끝을 브리지 포트로 설정하여 브리지에 IP가 없도록 합니다(그리고 체인을 사용하여 FORWARD
트래픽이 어느 인터페이스에서 오는지 필터링하는지 필터링합니다 INPUT
).
nftable로
초당 하나의 ARP 요청 수락 제한그리고 즉시MAC 주소당:
nft add table arp filter
nft add chain arp filter input '{ type filter hook input priority 0; policy accept; }'
nft add rule arp filter input arp operation 1 meter per-mac '{ ether saddr limit rate 1/second burst 2 packets }' counter accept
nft add rule arp filter input arp operation 1 counter drop