web-dev-qa-db-ja.com

FreeBSD 9(サブネット間のBonjour)を使用した2つのサブネット間のマルチキャストルーティング?

FreeBSD 9ルーター(Soekris net6501)がdslモデム(ブリッジ)を介してインターネットに接続されており、2つの内部サブネット10.0.1.0/24(LAN)と10.0に対してNAT)を実行しています。 2.0/24(wifiネット)。

サブネット間にはルートがあり、ssh Host-A.wifiからHost-B.lanのようなものが機能します。

ただし、10.0.2.0/24ネット上のワイヤレスクライアント(iPadやiPhoneなど)は、LAN上で何かを見つけることができないようです(たとえば、LAN上のApple-TVへのAirplay)。

完全にはわかりませんが、これはAppleがBonjourを使用し、Bonjourがマルチキャストを使用して検索を行い、マルチキャストがサブネット間でルーティングされないためだと思います。

FreeBSDハンドブック によると、マルチキャストをルーティングするには、カーネルをoptions MROUTINGでコンパイルし、/etc/mrouted.confを作成する必要がありますが、構成の良い例が見つかりません。ファイル。

  1. 私の問題はサブネット間のマルチキャストに関連していますか?
  2. ルーティングを有効にするためのFreeBSDの推奨ソリューションはmroutedですか?
  3. 10.0.1.0/24と10.0.2.0/24の間をルーティングする/etc/mrouted.confを作成するにはどうすればよいですか?
7
Erik Tjernlund

@ chris-sのおかげで、マルチキャストトラフィックをルーティングする代わりに、Avahiを使用して自分の質問を解決しました。

これは私のために働いた:

  • ポートツリーからnet/avahidns/nss_mdnsをコンパイルしてインストールします。
  • avahi_daemon_enable="YES"dbus_enable="YES"/etc/rc.confに追加します
  • Avahi構成ファイル(/usr/local/etc/avahi/avahi-daemon.conf)を使用し、2つの内部ネットワークインターフェイス(2つの内部サブネット)をallow-interfacesキー(カンマ区切り)に追加し、enable-reflectorキーをyesに設定して、avahiがすべての内部ネットワークにトラフィックを伝播するようにします。
  • /etc/nsswitch.confhostsエントリをhosts: files dns mdnsに編集します

Avahiデーモンを起動した後、mdnsサーバーマシンから直接ルックアップを実行することで、それが機能するかどうかを確認できます。

root@server / # getent hosts Apple-tv.local
10.0.1.4          Apple-tv.local
root@server / # getent hosts iphone4s.local
10.0.2.27         iphone4s.local
root@server / # getent hosts ipad.local
10.0.2.22         ipad.local

または、 Bonjour Browser または iStumbler (どちらも優れています)などのユーティリティを使用して.localドメインを参照します。すべてのサブネット上のデバイス、ホスト、およびサービスを表示できるはずです。

脚注は、私のストックFreeBSD 9.0インストールの/etc/syslogd.confはデフォルトでavahi-daemonからのメッセージをログに記録しなかったので、最初はログが表示されなかった(daemon.*を指す/var/log/daemon.logセレクターを追加した)

6
Erik Tjernlund

広告3:

phyint em0 rate_limit 0 igmpv1
phyint em1 rate_limit 0 igmpv1

ただし、AppleTVはTTLが1のパケットを送信する可能性が高いため、ルーティングできないことに注意してください。

簡単なグーグル検索は、他の可能性がBonjour「プロキシ」であるか、DNSにサービスを追加することによることを示しています。

0
arved