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
を作成する必要がありますが、構成の良い例が見つかりません。ファイル。
mrouted
ですか?/etc/mrouted.conf
を作成するにはどうすればよいですか?@ chris-sのおかげで、マルチキャストトラフィックをルーティングする代わりに、Avahiを使用して自分の質問を解決しました。
これは私のために働いた:
net/avahi
とdns/nss_mdns
をコンパイルしてインストールします。avahi_daemon_enable="YES"
とdbus_enable="YES"
を/etc/rc.conf
に追加します/usr/local/etc/avahi/avahi-daemon.conf
)を使用し、2つの内部ネットワークインターフェイス(2つの内部サブネット)をallow-interfaces
キー(カンマ区切り)に追加し、enable-reflector
キーをyes
に設定して、avahiがすべての内部ネットワークにトラフィックを伝播するようにします。/etc/nsswitch.conf
のhosts
エントリを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
セレクターを追加した)
広告3:
phyint em0 rate_limit 0 igmpv1
phyint em1 rate_limit 0 igmpv1
ただし、AppleTVはTTLが1のパケットを送信する可能性が高いため、ルーティングできないことに注意してください。
簡単なグーグル検索は、他の可能性がBonjour「プロキシ」であるか、DNSにサービスを追加することによることを示しています。