ネットワークインターフェイスを手動で構成するために、ネットワーク、ブロードキャスト、ゲートウェイはいつ必要ですか?


10

https://wiki.debian.org/NetworkConfiguration#Bridging_without_Switching

上記のURLは、次のように述べています。しかし、それらがオプションである場合とそうでない場合は、はっきりしません。これを説明する参考文献へのリンクを教えていただけませんか?ありがとう。

手動で構成している場合は、次のようなものがデフォルトゲートウェイを設定します(ネットワーク、ブロードキャスト、ゲートウェイはオプションです)。

auto eth0
iface eth0 inet static
    address 192.0.2.7
    netmask 255.255.255.0
    gateway 192.0.2.254

2
dnsmasqを使用する最近のUbuntuバージョンでは、DNSネームサーバーも宣言する必要があります。
chili555 2014年

@ chili555、パッケージresolvconfを追加すると機能します。これの下に私の答えを読んでください。;-) user1424739という答えでよろしいですか?
Anders 14

最近のUbuntuバージョンでは、resolvconfはデフォルトでインストールされると思います。番号??
chili555 14

1
@Andersの回答を復習してください。誰かが私の質問に答えたときに何をすべきかを
user.dz 2014

@ chili555はい、そうです。ただし、そのパッケージと/ e / n / interfacesのdns-serversの間の接続を明確にしたかっただけです。よくわからなかったらすみません。
アンデルス

回答:


25

静的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アドレスは一度だけ計算する必要があり、通常はそれaddressnetmaskディレクティブから正しく計算されます。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.confman 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一部ではないことに注意してください。それはあなたが望むものかそうでないかもしれません。


1
いい説明ありがとうございます。chili555がドメイン名を解決するためのDNSの重要性に言及しているように、それについてポイントを追加するといいでしょう。(インターネットまたはWAN接続については、すべてをセットアップする必要があります)
user.dz 14年

このようなもの?
アンデルス

1
どういたしまして。:-) user1424739への十分な回答であるかどうか疑問に思います
Anders

とにかく、/etc/internet/interfacesUbuntuのによって廃止されようとしている、自分自身の賛成でNetPlan、見る/etc/netplan/*.yamlNM(で変更できますnm-tools)。
アンデルス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.