インターフェイスのブロードキャストアドレスを手動で設定する必要がありますか?


9

スクリプトを古いnet-toolsから変換しています:

ifconfig eth0 192.168.2.1 netmask 255.255.255.0

iproute2へ:

ip link set eth0 up
ip addr add 192.168.2.1/24 dev eth0

また、新しいコマンドはデフォルトでブロードキャストアドレスを設定しないことに気づきました。

何だった:

1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 1c:6f:65:c5:d6:d7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 brd 192.168.2.255 scope global eth0

今でしょ:

1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 1c:6f:65:c5:d6:d7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 scope global eth0

ブロードキャストアドレスをip addrコマンドに追加できますが、それが必要かどうかはわかりません。まず、このブロードキャストアドレスはどこでどのように使用されますか?設定しないと何が壊れるのでしょうか?次に、ルーティングテーブルにはデフォルトで正しいエントリが残っているようです。

# ip route show table local dev eth0 scope link
broadcast 192.168.2.0  proto kernel  src 192.168.2.1 
broadcast 192.168.2.255  proto kernel  src 192.168.2.1 

今日は誰も返信しないので、私はそれをテストすることさえできませんping -b

回答:


4

ブロードキャストアドレスを手動で設定する必要はありません。IPアドレスとサブネットマスクから自動的に決定されます。


「ブロードキャストアドレスを設定する必要はない」というのは、ネットマスクとIPから常に推測できるため、私にはそのように思われます。しかし、一部のシステム(UbuntuでDockerコンテナーを試した)では、ブロードキャストアドレスが設定されていない場合があります。したがって、そのようなフィールドがインターフェイス定義に存在する理由を知りたいと思います。つまり、なぜ私$ ip addr 192.168.0.4/16 broadcast 1.2.3.4 dev <dev>は何ができるのでしょうか?ブロードキャストアドレスはフィールドであってはなりませんが、常に計算されますよね?
JonasVautherin 2017年

質問に答えませんか?このブロードキャストアドレスはどこでどのように使用されますか?設定しないと何が壊れるのでしょうか?
クレイメーション2018

0

私の環境では、ブロードキャストアドレスを設定しない場合、ローカルの「物理」サブネット内のすべてのリソース、たとえばスイッチに直接接続されているすべてのデバイスから新しいIPにpingを実行できます。ただし、スイッチが接続されているワイヤレスルーターに接続されているデバイスから新しいIPにpingすることはできません。ブロードキャストアドレスを追加することにより、ワイヤレスルーターは新しいIPを検出し、接続方法に関係なくすべてのデバイスがお互いを認識します。これは、使用している機器の製造元や個々のトポロジに依存している可能性がありますが、実際に必要でした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.