ガイドによると、作成者は次の行を使用してIGMPトラフィックのIPtableを許可します。
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