web-dev-qa-db-ja.com

WLANおよびVLAN)を介したmDNS / Bonjour

私はここに次の状況があります:

Zyxel USG20 -> VLAN -> Server (192.168.50.xx) (local_1)
|
| -> Switch -> wired devices (192.168.80.xx) (local_2)
-> LEDE WLAN ROUTER -> Mobile Devices (192.168.80.xx) (local_2)

VLANセクションでIPが50.xxの範囲にあるHomekitサーバーを実行しています。ここで、範囲内のモバイルデバイスからmDNS/BonjourでIPを検出できるようにしたいと思います。 80.xx

USG20に、ポート5353がlocal_2からlocal_1に渡すルールを追加し、IP244.0.0.251がlocal_2からlocal_1に渡すルールを追加しました。

しかし、VLAN内のサーバーを検出できません。この設定を機能させるにはどうすればよいですか?

ありがとう。

1
C. Hediger

これは正常です– mDNSが使用link-localマルチキャストグループ(IPv4では224.0.0.251、IPv6ではFF02 :: FB )、ルーター/ゲートウェイによって転送されることはありません。一部の実装では、すべてのmDNSパケットにIP TTL = 1のマークを付けることで、これをさらに強制しています。 (これは、ルーターでマルチキャスト転送が有効になっていることを前提としています…)

ネットワーク/サブネット間で機能するには、mDNSをアプリケーション層でプロキシする必要があります。たとえば、LinuxまたはBSDルーターでは、プロキシを有効にしてavahi-daemonを実行します。


RaspberryPiと802.1QVLANを備えたスイッチがあるため、Rpiを「クライアント」VLANと「サーバー」VLANの両方に同時に接続することで、Rpiをリレーとして使用できます。 (すべきではない専用のVLAN Rpi専用です。これはポイントを完全に無効にします。)

コメントでは、Rpiがポート4にあると述べています。

  1. スイッチで、ポート4(not LAG 4)を1つのVLANの場合は「タグなし」、その他のすべてのVLANの場合は「タグ付き」としてマークします。スイッチがポートの「PVID」を構成することを提案する場合は、それがタグなしVLANと一致することを確認してください。

    (または、すべてのVLANを「タグ付け」してもかまいません。)

  2. Rpiで、受信する仮想「vlan」インターフェースをそれぞれtagged VLAN)作成します。Linuxを実行していると仮定すると、以下を使用して一時的に作成できます。

    ip link add eth0.100 link eth0 type vlan id 100
    ip link set eth0.100 up
    dhclient eth0.100
    

    (これを永続的にする方法は、ディストリビューションによって異なります。)

  3. Rpiで、/etc/avahi/avahi-daemon.confでプロキシ(リフレクション)を有効にします。

    [reflector]
    enable-reflector=yes 
    
1
user1686