私は2つのRaspberry Piを持っています。 1つはメディアプレーヤーとして使用され、もう1つはホームサーバーとして使用されます(私はこれをプラグと呼びます)。
プラグインの中に、SickBeard(TVライブラリ)、CouchPotato(映画ライブラリ)、Sabnzbd(Usenetダウンローダ)、Transmission(トレントダウンローダ)などのWebインターフェイスを備えた複数のアプリケーションをインストールしました。以前はNGINXをプロキシとして使用していました。したがって、私の基本的なアイデアは、私の「プラグインのIP」を指すすべてのドメインが、使用されたドメイン名に基づいてそのアプリケーションのWebインターフェイスへの呼び出しをルーティング(プロキシ)するNGINXにルーティングされることです。たとえば、dl.plug.example.com(ドメイン名を公開したくない)を入力すると、Transmission Webインターフェイスに移動し、usenet.plug.example.comと入力するとSabnzbdplus Webインターフェイスpi.plugに移動します。 example.comは私の他のPIの「リモート」インターフェース(メディアプレーヤーとして使用される)を指します。 modem.plug.example.comは私のルーターの管理ページを指します。期待どおりに動作します。
BINDをインストールして設定したので、すべてのリクエストがプラグのBINDインストールを通過するように、プラグのIPをDNSサーバーとして使用するようにモデムを設定しました。私の目標は次のとおりです
- 私のホームネットワークに接続されているすべてのデバイスで、.plug.example.comはローカルIPを介してアプリケーションをホストする適切なシステムに私を接続する必要があります。つまり、自宅にいるときに携帯電話のブラウザにdl.plug.example.comと入力した場合は、192.168.1.xにルーティングする必要があります。外部からアクセスする場合は、パブリックIPにルーティングする必要があります。
- ネットワーク内でホストされていない他のドメイン名に対するリクエストの場合は、BINDにGoogle DNS(8.8.8.8)を介してそれを解決させます。
パブリックIP部分が有効です。つまり、ネットワークの外部からアクセスすると機能します。内部ネットワークで試してみると、変動がひどくなります。つまり、時には私の内部IPを介してルーティングされますが、他の場合はネットワーク全体(パブリックIPを介してルーティング)を通過します。これは私が苦労している問題です。
別の問題は、時にはplug.example.comがまったく解決されないということです。 BINDから起動して実行できます。ドメイン名を介して端末でSSHを実行すると、時々解決されない場合がありますが、IPを使用するとスムーズに実行されます.だから私のBIND構成に問題があると思います。私のモデムの設定に応じて、すべてのDNSトラフィックはBINDプラグインを通過します。ですから、このようなことは起きてはいけません。
BIND設定を次にアップロードしました。 https://drive.google.com/file/d/0B8TuY1aaTEhmbXRGVUkwbUh1bVU/view?usp=sharing
答え1
プライマー
これは実行中のGentooインストールのホストファイルです。コメントのため、実際のルーティング手順を削除しました。ルーティングに関する追加情報:
# /etc/hosts: Local Host Database
#
# This file describes a number of aliases-to-address mappings for the for
# local hosts that share this file.
#
# In the presence of the domain name service or NIS, this file may not be
# consulted at all; see /etc/host.conf for the resolution order.
#
# Imaginary network.
#10.0.0.2 myname
#10.0.0.3 myfriend
#
# According to RFC 1918, you can use the following IP networks for private
# nets which will never be connected to the Internet:
#
# 10.0.0.0 - 10.255.255.255
# 172.16.0.0 - 172.31.255.255
# 192.168.0.0 - 192.168.255.255
#
# In case you want to be able to connect directly to the Internet (i.e. not
# behind a NAT, ADSL router, etc...), you need real official assigned
# numbers. Do not try to invent your own network numbers but instead get one
# from your network provider (if any) or from your regional registry (ARIN,
# APNIC, LACNIC, RIPE NCC, or AfriNIC.)
質問
プライベートネットワークの最後の説明ブロックを参照してください。プライベートネットワーク用のネットワークサービスを構成するときにほとんどの人が忘れてしまうのは、内部ネットワークを区別する仮想線(ネットワークで構成されるネットワーク)があることです。RFC 1918とRFC 6761)と外部ネットワーク(すべての実際の目的のためのインターネット)、ここでドメインIPアドレスは主に次のように表示されます。IANAとも呼ばれるインターネット割当番号管理機関。 IANAは次のことを担当しているため、これは許容される慣行でもあります。DNSルートゾーン、IANA DNSサーバーは、ドメインが識別される場所の最終決定権を持っています。 DNS サーバーをツリーの最上位ブランチと考えます。サーバーがホストを解決できない場合、要求はツリーの下の後続の分岐に送信されます。各分岐のサイズが大きくなります。ツリーの下部にはIANA DNSサーバーがあります。
解決策
プライベートネットワーク内のルーティングは、プライベートネットワークのメンテナンス/作成者によって処理されます。 Linuxでは通常、/etc/hosts
BINDをインストールして構成し、OPが問題の半分しか解決しませんでした。 BINDは名前をホストとホスト:ポートに正しくルーティングし、その逆も同様です。ほとんどのサーバーでよく使用されているものの1つ製本外部DNSゾーン(プライベートネットワーク外部ゾーン)を内部DNSゾーンに。バラよりLinux DNS サーバー BIND の構成これについて詳しく学んでください。また、必要に応じて、以下のセクションでそのリンクをもう一度参照してください。
内部ルーティングはさまざまなルール(RFC 1918/6761)によって管理されるため、静的ルートを設定する必要があります。アドレスと名前のマッピングはBINDで動作します。。これが設定されていない場合、etc/hosts
バインディングマップはリクエストをルーティングする場所ではなく、内部でルーティングする方法だけを知っています。この問題を解決するには、ローカルマッピングを追加する必要があります(OP外部BIND設定正しくマッピングされます):
# IPv4 and IPv6 localhost aliases
127.0.0.1 bedroom-gentoo.myISP.net bedroom-gentoo localhost
::1 bedroom-gentoo.myISP.net bedroom-gentoo localhost
その後、ローカルソリューション(OPの場合)
192.168.1.x sickbeard.plug.example.com sickbeard.plug sickbeard
192.168.1.x dl.plug.example.com dl.plug download
# Add others as needed.
上記のプライベートネットワーク解析は、次のように解析できます。完全修飾ドメイン名、ホスト名のみが追加されます。 OPや他の人は、希望の動作に応じて適切に調整できます。生成されたすべてのホスト名を覚えているよりも、プライベートネットワーク内でFQDNを使用する方が簡単であることがわかりました。
ステップ2 - オプションですが好ましい
読者がネットワーク設定に関するほとんどの回答でこのネットワーキング用語を見ることができるので、以下のリンクを追加しました。ここに初めて来た方はぜひお読みください。長く使っていたらスキップすることをお勧めします。
読んでも、読んでも、DHCPがその役割を非常にうまく実行していることがわかります。現在と永遠の主な機能は、公開またはプライベートアドレスを提供することです。 DHCPがうまくいかないのは、DHCPが提供するアドレスが実際にすべてのタイプのサーバーに属する可能性があることを覚えておくことです。これはOPや他の多くの読者の場合です。この状況は、デバイス192.168.1.x
のIPアドレスを「ソフトウェアで予約」したため、ここに適用されますplug
。再起動/再起動または停電後にDHCPがサーバーアドレスを愚かに上書きしないようにするには、ルータでMACアドレスバインディングを使用する必要があります。次のスクリーンショットはMotorola Surfboardで撮影されましたが、ほとんどの主要なルーターブランド(D-LINK、NetGear、LinkSys / Cisco)で同じタイプの入力画面を見たことがあります。また、一部の人はReserveと名付けられ、一部の人はBindingと、一部の人はMAC Bindingと名付けられます。
OPの場合、サーバーのMACアドレスはplug
最初のボックスに入り、ファイルの最後のオクテットxは/etc/hosts
IPアドレスボックスに入ります。ホスト名は自動的に入力されますが、etc/hosts
必要に応じて名前を使用できます。これにより、DHCPが静的IPアドレスを転送するように強制されるため、ホストファイルを変更する必要はありません。一方、ストリーミングサービスのキャッシュはわずかに増加する可能性があります。以前は、Rokuデバイスでも同じ概念を使用したことがあります。