Help us understand the problem. What is going on with this article?

マルチキャスト通信できない原因はrp_filterの設定方法でした。最大を取るなんて

ルータ越しの通信において、受信プログラム(アプリ層)がマルチキャスト・パケットを受信できない問題に遭遇しました。当初からReverse Path Filter(以降、RPFと言う)が怪しいことは当たりをつけていたのですが、なんかしっくりこない現象の説明ができず悶々としていたのですが、先程ようやく解決しました。

問題

C7_1から配布されたマルチキャスト・パケットがC7_2で受けられません。C7_2のLANポートには届いている(tcpdump及びWireSharkで確認)。

net.ipv4.conf.eth2.rp_filter = 0とRPFを無効(パケット・フィルタリングを無効)にしたつもりでも受けられません。

net.ipv4.conf.all.rp_filter = 0とした場合でも同様に受けられません。

ちなみに、net.ipv4.conf.eth2.rp_filter = 2だと受けられます。

環境

  • GNS3 2.1.21
  • ホストOS: Ubuntu 18.04
  • ゲストOS: CentOS 7.4 1708(図中のC7_1とC7_2)

ネットワーク・トポロジ

ss_20190814_2.png

  • 両端末にファイアウォールは設定していない
  • 両端末(C7_1とC7_2)の間にルーティングは無し(pingは通らない)
  • ルータ(R1とR2)ではip pim dense-mode

解決

piyolianさんのウェブページにヒント(というか答え)がありました。

net.ipv4.conf.eth2.rp_filternet.ipv4.conf.all.rp_filterは、両者の 最大値 を取るようです。つまり、どちらか一方をゼロにしても、CentOS 7の初期値は1なので1、つまり厳格モードとなって受信できなかったようです。

蛇足ですが、piyolianさんのウェブページによると、CentOS 6時代はAND(論理積)だったそうです。

おまけ

両端末(C7_1とC7_2)の間がルーティングされている(pingされている場合)は、net.ipv4.conf.*.rp_filterを設定(変更)しなくても受信できます。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away