質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

Q&A

解決済

1回答

3264閲覧

net.ipv4.conf.all.rp_filter = 2で、マルチキャストが受けられる。1でも、0でも受けられないのに。

tacchang

総合スコア15

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

0グッド

1クリップ

投稿2019/08/14 03:05

編集2019/08/14 08:09

マルチキャスト通信について「どうしてこうなるの?」という現象について、よくご存じの方にヒントをいただきたく、よろしくお願いいたします。

先に結論を言えば、net.ipv4.conf.eth2.rp_filter0では受けられず、2でしか受けられません。なぜ0で受けられないのか、ここが不可解です。

不可解な現象

あるLinuxサーバで、マルチキャストのパケットが受けられない事象がありました。色々条件を変えてみると、受けられない条件は限られていることが分かりました。

(受けられない時の)ネットワークの構成は以下です。

イメージ説明

受信するLinuxサーバはC74_2です。C74_1からマルチキャスト・パケットを送付したところ、C74_2のNIC迄届いていることはtcpdumpやWireSharkで確認できています。しかし、C言語で作った受信プログラムでは受けられません。

環境

今回の実験はGNS3下の環境で実施しましたが、実物でも同様の現象を確認しています。

C74_1、C74_2

  • OS : CentOS 7
  • NIC

** eth0 : NAT、default gateway
** eth1 : 192.168.56.0/24
** eth2 : マルチキャストを送受信するNIC(アドレスは上図)

R1、R2

  • Ciscoルータ

受けられる条件と受けられない条件

今のところわかっている「マルチキャストが受けられる条件」は2つです。

受けられる条件①

ルーティングしている時。C74_1C74_2の間はpingが通る。

受けられる条件②

ルーティングもされていなくとも、net.ipv4.conf.eth2.rp_filterが、2の時。

受けられない条件

C74_1C74_2ネットワーク・アドレスは別であり、ルーティングされておらず、net.ipv4.conf.eth2.rp_filter、又は、net.ipv4.conf.all.rp_filterが、0又は1の時は受けられません。

所感

この問題はreserve path filteringに関連しているところまではアタリがついています。

ただ、net.ipv4.conf.eth2.rp_filter0(ソース確認無し)で受けられることを期待したのですが、0では受けられず、2でしか受けられません。なぜ0で受けられないのか、ここが不可解です。

net.ipv4.conf.eth2.rp_filter0にすることは、reverse path filteringを無効、すなわち、フィルタリング(パケット破棄)は無効にする、という意味ではないのでしょうか?

以上

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

解決しました。

以下のウェブページにヒント(答え)が有りました。

http://piyolian.blogspot.com/2012/09/rhel6-multi-nic-in-same-subnet.html

私の場合、net.ipv4.conf.all.rp_filterと、net.ipv4.conf.eth2.rp_filterを別々に設定していたのですが、eth2については両パラメータの最大値を取るため、片方をゼロにしても片方が1だと、向こうになっていなかったということのようです。

投稿2019/08/14 09:14

tacchang

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問