web-dev-qa-db-ja.com

インターフェイスを静的IPに変更した後、ホストへのルートがありません

Linux(Ubuntu)サーバーを自宅のLAN内にインストールしました。最初は、DHCPインターフェイスを使用するように自動的に構成されています。そのサーバーのホスト名を使用して、別のコンピューターからこのサーバーに接続しています。了解しました。ルーターはホームネットワーク内でDHCPを使用するように構成されており、各コンピューターにIPを自動的に提供します。しかし、SSHを使用してこのホストに接続すると、サーバーの新しく割り当てられた各IPからフィンガープリントを受け入れる必要があるという警告が表示され、少し面倒です。そこで、静的IPアドレスを使用して/etc/network/interfacesファイルを次のように編集するように構成しました。

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static

address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1

ホスト名を使用してこのサーバーに接続できないことを除いて、すべて正常に機能します。 pingingすると、DHCPによって動的に指定された最後に割り当てられたIPアドレス、そしてもちろんDestination Host is Unreachableにルーティングされていることがわかります。 /etc/hostsファイルにハードコーディングできることは知っていますが、DHCPでうまく機能し、静的では機能しない理由を知りたいのです。

どうやら、私は何かを理解していません。前もって感謝します!

3
Dan K.K.

Static ipを使用する場合は、インターフェイス構成で最初のDNSサーバーとしてルーターを割り当てる必要があります。したがって、ubuntu 12.04を使用している場合は、たとえば次のように追加します。

dns-nameservers 192.168.1.1

次に、ネットワークを再起動します。

/etc/init.d/networking restart

DNS構成の詳細については、 インターフェイスで静的DNSを構成するにはどうすればよいですか? を確認してください。

3
hannesh

サーバーにDHCPを使用していた場合、サーバーは新しいIPアドレスを取得するたびにそのホスト名をDNSサーバーに登録していました。 IPは静的であるため、DHCPサーバーと相互作用しないため、DHCPサーバーはホスト名をDNSに渡すことができません。

これを直接行う必要があります。ルーター(DNSサーバーであると想定)がWeb GUIでサポートしている場合は、ルーターのhostsファイルをサーバーのホスト名で更新できる可能性があります。

そうでないが、ルーター上のDNSサーバーが(DHCPサーバーだけでなく)ローカルネットワークからの更新を受け入れる場合は、次のようにすることができます。

Sudo apt-get install dnsutils
nsupdate
> update add hostname.domainame 86400 a 192.168.1.101
> send

「ドメイン名」は、ローカルDNSサフィックスが何であれです。このアプローチの欠点は、再起動するとルーターの設定が失われることです。そのため、サーバーがスクリプトとcronを介してこの更新を定期的に送信する必要があります。

DNSサーバーがローカル更新を受け入れない場合(おそらくそれは最善の策ではなく、より良い長期的な解決策は、ルーターからではなくサーバーからDNSを実行することです。

bind は、Linuxで最も一般的に使用されているDNSサーバーですが、より軽量な代替手段もあります。

おそらく、より簡単な代替手段は、サーバーをDHCPの使用に戻すことですが、毎回同じIPアドレスを割り当てるようにルーターを構成します。多くのルーターはこの機能をサポートしており、ホスト名は毎回登録に戻る必要があることを意味します。

1
Paul