Freebsd

使用 FreeBSD 9 跨兩個子網的多播路由(子網之間的 Bonjour)?

  • February 8, 2012

我有一個 FreeBSD 9 路由器(Soekris net6501)通過 dsl 調製解調器(橋接)連接到網際網路,對兩個內部子網 10.0.1.0/24(LAN)和 10.0.2.0/24(wifi 網路)進行 NAT。

子網之間有路由,比如ssh host-A.wififrom host-B.lanworks。

但是,10.0.2.0/24 網路上的無線客戶端(如 iPad 和 iPhone)似乎無法在 LAN 上找到內容(例如,在 LAN 上播放 Apple-TV)。

我不完全確定,但我認為這是因為 Apple 使用 Bonjour,而 Bonjour 使用 Multicast 來查找內容,而 Multicast 不會跨子網路由。

根據FreeBSD 手冊,要路由多播,我需要編譯核心options MROUTING並創建一個/etc/mrouted.conf,但我找不到任何好的配置文件範例。

  1. 我的問題與跨子網多播有關嗎?
  2. mroutedFreeBSD 中啟用路由的首選解決方案是什麼?
  3. 如何創建/etc/mrouted.conf10.0.1.0/24 和 10.0.2.0/24 之間的路由?

感謝@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) 並將我的兩個內部網路介面(兩個內部子網)添加到allow-interfaces密鑰(逗號分隔)並將enable-reflector密鑰設置yes為使 avahi 將流量傳播到所有內部網路。
  • hosts將條目編輯/etc/nsswitch.confhosts: 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 BrowseriStumbler(兩者都很出色)這樣的實用程序來瀏覽 .local 域。您應該能夠看到所有子網上的設備、主機和服務。

一個腳註是我的股票 FreeBSD 9.0 安裝預設情況下/etc/syslogd.conf沒有記錄消息,avahi-daemon所以我一開始沒有看到任何日誌記錄(添加了一個daemon.*指向 的選擇器/var/log/daemon.log

引用自:https://serverfault.com/questions/357191