自宅のパブリックDNSホスト名とポート転送を内部的に使用する

自宅のパブリックDNSホスト名とポート転送を内部的に使用する

私の自宅のゲートウェイ/ルーターでは、さまざまなポートで複数のサービス (SSH、HTTP 経由の IP カメラなど) が実行されており、ポート転送によってインターネットに公開されています。また、これらのサービスは、自宅のネットワークに接続している間も内部で使用しています。これらの接続を、たとえば home.mydomain.com:9876 という SSH 用に一度だけ設定し、内部と外部の両方で使用して、両方を機能させられるようにしたいと考えています。ただし、内部ネットワーク上にいる場合は、トラフィックが内部にとどまるようにしたいと考えています。たとえば、home.mydomain.com は内部ネットワーク内から正しく解決されることはわかっていますが、パブリック DNS サーバーに出てこの検索を実行し、送信接続してから受信接続に戻り、ルーターに到達してポート転送が正しく行われるものと想定しています。

つまり、ここでは DNS ルックアップとポート転送という 2 つの部分が実際に機能していると思います。自宅のプライベート ネットワーク上では、これらすべてを内部に保持するにはどうすればよいでしょうか?

答え1

パブリック DNS サーバーにアクセスしてこの検索を実行し、送信接続してから受信接続に戻り、ルーターに到達してポートが正しく転送されると想定しています。

この場合、home.mydomain.com外部 IP に解決されます。NAT の内側では、外部 IP は実際にはルーター自体を参照します。ルーターは、NAT の外部からの着信接続に対してのみアドレス変換/ポート転送を実行します。そのため、接続はまったく行われず、ルーターからの RST のみが送信されます。

つまり、ここでは DNS ルックアップとポート転送という 2 つの部分が実際に機能していると思います。自宅のプライベート ネットワーク上では、これらすべてを内部に保持するにはどうすればよいでしょうか?

これを実現する方法の1つは、独自の再帰キャッシュDNSリゾルバ(練る)を内部ネットワークにインストールします。内部ネットワーク上のすべてのクライアントを(DHCPまたは手動で)外部パブリックDNSサーバーではなくDNSサーバーにクエリするように構成します。BINDは、スプリットDNS構成(第4.4章を参照)バインドアーム)。この構成では、BIND は内部ドメインのリクエストを除くすべてのリクエストを転送します (内部ドメインのリクエストには内部アドレスで応答します)。ドメインの権限のある DNS ゾーン (インターネット上のどこかにホストされている) は、引き続き自宅の外部 IP を指している必要があります。

外部 DNS サーバーを検索すると、home.mydomain.comルーターの外部 IP を受け取ります (これにより、9876 が適切な内部マシンにポート転送されます)。ただし、内部ネットワークでは、DNS リゾルバーは別の IP アドレス (192.168.0.x) で応答し、接続は内部で行われます。

関連情報