web-dev-qa-db-ja.com

異なるIPネットワークからDLNAリソースにアクセスできるようにするためにIPアドレスをエイリアスする方法

私が持っているもの

DLNAリソース192.168.1.100を持つホームwifiネットワーク192.168.1.0/24があります。
イーサネット付きのテレビと、wifiとイーサネットの両方のインターフェイスを備えたネットブックがあります。
ノートブックをルーターのように動作させたい。つまり、ホームネットワークをwifi経由で取得し、イーサネットインターフェイスを介してテレビに転送します。

私が欲しいもの

テレビにホームネットワークのdlnaリソースを認識させたい。

私がしたこと

ネットブックのeth0インターフェイスに次のサブネットを使用してDHCPサーバーをセットアップしました。

subnet 10.0.0.1 netmask 255.255.255.0 {
  range 10.0.0.5 10.0.0.10;
  option routers 10.0.0.1;
}

ネットブックでeth0インターフェイスを次のように設定しました。

ifconfig eth0 10.0.0.1/24 

転送を有効にしました:

echo 1 > /proc/sys/net/ipv4/ip_forward

Iptablesに転送ルールを追加しました:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

これで、テレビは10.0.0.5のIPアドレスを取得し、インターネットを閲覧できますが、テレビはDLNAリソースを見つけることができません。

質問

リソースの検出は10.0.0.1/24しか行われないと思うので、テレビは192.168.1.100のリソースを見つけることができません。どうすればなんらかのエイリアスを作成できるので、192.168.1.100は10.0.0.10のようなエイリアスになりました。

1
2r2w

DLNAは放送のみです。そのため、10.0.0.0/24ネットワークから192.168.1.0/24ネットワークにブロードキャストパケットをルーティングすることはできません。

したがって、最善のアプローチは、ルーティングをまったく行わず、代わりにノートブックをブリッジとして使用し、DLNAリソースとTVを同じネットワークに配置することです。これらはステップです。

  1. ノートブックからDHCPサーバーとIPテーブルのルールを取り除きます
  2. ノートブックのインターフェースをブリッジします。これをどのように行うかはディストリビューションに依存するため、debian/ubuntu構文を示し、ディストリビューションに適応させることができます。

これは /etc/network/interfaces

auto lo br0 

iface lo inet loopback

iface br0 inet static
    bridge_ports eth0 wlan0
    address 192.168.1.x
    netmask 255.255.255.0

xを現在のラップトップのIPアドレスに置き換えます。

3)DHCPを使用するようにテレビを設定します

そして、それで十分なはずです。ブリッジは、テレビからラップトップへの有線接続と、ラップトップからネットワークの他の部分へのWi-Fi接続に参加します。ブリッジであるため、DLNAブロードキャストはブリッジを介して転送され、応答が返されます。

また、ブリッジングは、テレビからのDHCPブロードキャストもラップトップを通過することを意味します。そのため、個別のDHCPサーバーは必要なく、ホームネットワーク上のDHCPサーバーを使用できます。

2
Paul

DHCPオプションにDNSサーバーを追加してみてください。テレビには、ドメイン名などの他の何かが必要な場合もあります。お使いのテレビが他のルーターで動作する場合は、DHCP監視ツール(片方のルーターはわかりません)を調べて、DHCPサーバーが配布したオプションを確認し、構成でそれらを模倣します。

また、echo 1 > /proc/sys/net/ipv4/ip_forwardしましたか?

第三に、rangeスタンザが実際にrange 10.0.05 10.0.0.10のように見える場合は、おそらくrange 10.0.0.5 10.0.0.10に変更する必要があります。

さて、少し宿題をした後、DLNAは発見プロトコルとしてSSDPを使用しているようです。 「SimpleServiceDiscoveryProtocol」ウィキペディアのページから:

SSDPは、HTTPUに基づくテキストベースのプロトコルです。基盤となるトランスポートプロトコルとしてユーザーデータグラムプロトコル(UDP)を使用します。サービスは、ポート番号1900で特別に指定されたIPマルチキャストアドレスへのマルチキャストアドレス指定を使用してホスティングシステムによってアナウンスされます。IPv4では、マルチキャストアドレスは239.255.255.250 [3]であり、SSDP overIPv6はすべてのスコープにアドレスセットff0X :: cを使用します。 Xで示される範囲。[4]

Linuxでのマルチキャストトラフィックの経験はあまりありませんが、これを機能させるには、マルチキャストトラフィックの受信と転送を有効にする必要があるようです。

0
LawrenceC