静的IPアドレスの設定方法とその理由
通知!NetworkManagerなどの他のネットワーク設定方法については触れません。に記載されて/etc/network/interfaces
いるデバイスはNMの影響を受けません
IPネットワーク(IPv4およびIPv6)を介して通信できるようにするには、コンピューターはIPアドレスを知っている必要があります。したがって、そのことをaddress
コンピュータに伝えるためのディレクティブが必要です。
その後、コンピューターが別のコンピューターと通信したい場合、そのコンピューターは他のコンピューターのIPアドレスを使用して、そのコンピューターが同じネットワークLANにあるかどうかを確認します。その場合、コンピュータは他のコンピュータと直接通信できます。
では、同じLAN上のコンピュータと通信していることをコンピュータはどのようにして知るのでしょうか。ネットワークを使用することによりnetmask
、アドレスのネット部分は1に設定され、ホスト部分はゼロに設定されます。したがって、IPアドレスの各ビットとネットマスクの間でビットごとのAND演算を実行することにより、ホスト部分がゼロであるIPアドレスのネットワークアドレスを取得します。したがって、コンピュータのIPアドレスと他のコンピュータのIPアドレスでこれを行うと、各ネットワークアドレスが取得されます。これらが等しい場合は、コンピュータが同じネットワークにあり、互いに直接通信できることを意味します。
ネットワークアドレスが等しくない場合、それらは異なるLAN上にあり、互いに直接通信できません。次に、コンピュータは他のLANに接続されている特別なコンピュータを使用する必要があります。そのコンピューターはルーターです(ファイアウォールとNATも備えている可能性があります)。そのため、コンピューターがLANの外部にある他のコンピューターと通信したい場合、gateway
ディレクティブで設定されたそのコンピューターのアドレスを知る必要があります。別のインターフェースがすでにgateway
値を設定している場合は、このインターフェースに別のゲートウェイディレクティブを設定しないでください。gateway
あなたは、各マシン上でIPv4だけのための唯一のIPv6のための1つを必要とするよう指示セットコンピュータのデフォルトルート、。このネットワークアドレスは、network
ディレクティブを使用して手動で設定できます。
コンピュータがLAN内のすべてのコンピュータと通信する必要があり、ブロードキャストアドレスを使用する場合があります。このアドレスは、同じLAN内のすべてのコンピューターによってリッスンされます。これは基本的にネットワークアドレスと同じですが、ホスト部分がすべてゼロではなく、すべて1である点が異なります。このブロードキャストアドレスはbroadcast
、インターフェースのディレクティブによって設定されます。
インターフェイスnetwork
アドレスは一度だけ計算する必要があり、通常はそれaddress
とnetmask
ディレクティブから正しく計算されます。broadcast
住所も同じです。したがって、それらを設定する必要はありません。実際、一方または両方を間違った値に設定すると、インターネットおよびLAN内の他のコンピューターへの接続が失われる可能性があります。したがって、それらにいくつかの奇妙な値がない限り、コンピュータに計算させてください。
したがって、プライベートネットワーク内/etc/network/interfaces
のデバイスの最小静的設定またはスタンザは次のようになりeth1
ます。
iface eth1 static inet
address 192.168.44.10
netmask 255.255.255.0
gateway 192.168.44.1
名前解決の仕組みとDNSとの関連付け。
ドメイン名は、人間が読みやすく覚えやすいドメイン名と、前述のIPアドレスを覚えにくいコンピュータとの間の変換に使用されます。これは名前解決と呼ばれます。
これは通常/etc/nsswitc.conf
、で始まるファイルと行によって制御されますhosts:
。コンピュータに接続するように要求すると、コンピュータmy.example.com
はこのファイルを調べて、名前からIPアドレスを解決しようとしますmy.example.com
。このファイルは、「my.example.comが持っているIP」という質問に実際に回答するのではなく、コンピュータがどこで回答を見つけることができるかを伝えます。
通常、/etc/hosts
最初に静的ローカル名のファイルを試し、次にmDNS
動的ローカル名のavahi を試してから、インターネットから名前を取得するためにDNSドメイン名resovlerを使用します。
これらのいくつかの質問への回答が遅い場合、コンピューターがしばらく動かなくなっているように見えることがあります。それを取得した場合は、最初に名前解決を確認してください。
静的アドレスを追加するには、/etc/hosts
ファイルに追加するだけです。ちなみに、静的アドレスがある場合は、マシンのIPアドレスをデフォルト127.0.1.1
ではなくIPアドレスに変更する必要があります(localhostが存在するlocalnetネットワークにあります127.0.0.1
)。これはクライアントでは問題なく機能し、サーバーでは機能しません。
avahi
パッケージを備えたLinuxマシンとAppleマシン(およびiTunesを備えたMS Windows?)から取得した動的アドレス。これは「マジック」によって処理され、修正する必要はありません。
DNSはインターネットに到達するために使用され、使用するDNSサーバーの場所、使用するIPアドレス、およびデフォルトのDNSドメインをコンピューターに通知する必要があります。
これはファイルで行われ、/etc/resolv.conf
静的に設定できます。これはそれほど静的ではない世界ではうまく機能しないので、通常、resolvconf
インストールされているパッケージがあります。これにより、これらの設定を/e/n/interfaces
ファイルに設定できます。
したがって、GoogleのDNSサーバーの1つ8.8.8.8
、およびISPのDNSサーバー192.0.2.1
、およびドメインmy.example.org
ドメインをデフォルトとして/etc/network/interfaces
追加する場合は、ファイルを編集して、静的デバイスのスタンザにこれらの2行を追加するだけです。
dns-nameservers 8.8.8.8 192.0.2.10
dns-search my.example.org
また、DNSリゾルバーは最大3つのDNSサーバーのみを使用することに気付くかもしれません。でこれを見てくださいman
の-page resolv.conf
。通常通り、次のコマンドを使用することができman nsswitch.conf
、man resolv.conf
そしてman resolvconf
より多くの情報のため。
また、ISPのサンプルDNSサーバーには、ドメインexample.comとexample.org、およびIPネットワーク192.0.2.0/24を使用していることに注意してください。これらは、例で使用するために明示的に定義されています。http://example.com/またはhttp://tools.ietf.org/html/rfc2606およびrfc5735を参照してください
次に、それが機能することをどのように確認しますか?
あなたは多くの方法でそれを行うことができますが、私は通常
getent hosts my.test.com
名前解決のセットアップ全体をテストします。DNSが機能するかどうかを確認するだけの場合は、次のいずれかのコマンドを使用します。
host my.test.com
dig my.test.com
ただし、これらは/etc/resolv.conf
ファイルの設定を通じてDNSをテストするだけであり、その/etc/nsswitch.conf
一部ではないことに注意してください。それはあなたが望むものかそうでないかもしれません。