가이드에 따르면 작성자는 다음 줄을 사용하여 IGMP 트래픽에 대한 IPtables를 허용합니다.
sudo iptables -I INPUT -p igmp -j ACCEPT
하지만 내 상사는 내가 Firewalld를 사용하여 이를 수행하기를 원합니다.
답변1
직접 규칙의 대안으로 IGMP 트래픽은 다음 방법 --add-protocol=igmp
( firewall-cmd
버전에서 이미 지원하는 경우) 중 하나를 사용하거나 다음 방법을 통해 허용할 수도 있습니다.풍부한 규칙.
firewall-cmd
이미 지원되는 버전 의 경우 --add-protocol=protocol
:
firewall-cmd --permanent \
--zone=YOUR-ZONE \
--add-protocol=igmp
firewall-cmd --reload
효과적으로, 이것은 에 행을 추가합니다 <protocol value="igmp"/>
./etc/firewalld/zones/YOUR-ZONE
man 5 firewalld.zone
firewall-cmd
지원되지 않는 이전 버전의 경우 --add-protocol=protocol
:
firewall-cmd --permanent \
--zone=YOUR-ZONE \
--add-rich-rule='rule protocol value="igmp" accept'
firewall-cmd --reload
그 결과 다음과 같은 iptables/netfiler 규칙이 생성됩니다.
-A IN_YOUR-ZONE_allow -p igmp -m conntrack --ctstate NEW -j ACCEPT
답변2
그래서 저는 이와 똑같은 문제를 추적해 왔으며 응용 프로그램 설치 중에 IGMP를 활성화하기 위해 방화벽에 제출된 버그 보고서를 우연히 발견했습니다. (여기서 OP에 대한 크레딧:https://bugzilla.redhat.com/show_bug.cgi?id=1048947)
작성자는 친절하게도 우리의 요구 사항을 충족하는 해결 방법을 제공했습니다.
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p igmp -j ACCEPT
IGMP 통신을 다른 방식으로 활성화하는 기능이 추가될 때까지는 Direct 인터페이스가 이러한 규칙 변경 사항을 적용하는 가장 좋은 방법인 것으로 보입니다.
직접 인터페이스 공식 문서: https://fedoraproject.org/wiki/FirewallD#Direct_options