LoginSignup
16
13

More than 5 years have passed since last update.

Zeroconfを使用しないようにする

Posted at

はじめに

RHEL6やCentOS6を普通にインストールして、ルーティングテーブルを
見ると下記のような感じになっています。

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         10.0.0.254      0.0.0.0         UG        0 0          0 eth0

169.254.0.0/16のルーティングテーブルがありますが、これは何だろう?

これはZeroconfによって自動的に作られたものだそうです。

Zeroconfとは(引用)

動的ホスト構成プロトコル(DHCP)が見つからなかった時(IPアドレスを取得できなかった時)に、
TCP/IPがプライベートIPアドレスを自動的に割り当てる機能(APIPA:Automatic Private IP Address)を実装しています。
この為、ルーティングに「169.254.0.0」が登録されています。

APIPAとは(引用)

ネットワーク機器に対して、IPアドレスを自動的に割り当て、利用するための機能。

 TCP/IPを実装したネットワーク機器やシステムでは、それぞれのシステムに対して、
重複しない固有のIPアドレスを割り当てておかなければお互いに通信することはできない。
しかしネットワークに詳しい管理者がいなかったり、DHCPサーバも用意されていないような
小規模なネットワークでは、IPアドレスを秩序立てて割り当てたり管理するのは困難である。
そこで考案されたのがAPIPAというIPアドレスの自動的な割り当て、管理機能である。

 APIPAを実装したシステムでは、最初に自分のシステムに割り当てるIPアドレスを
「169.254.1.0~169.254.254.255」の範囲内からランダムに1つ選択する。
そして、ARP要求をネットワークにブロードキャストすることによって、そのIPアドレスがほかの
システムで利用されていないかどうかを確認する。もしどこかのシステムからARPの応答が返ってくれば、
そのIPアドレスは使用中であるとみなし、別のIPアドレスで再試行する。このようにして
未使用のIPアドレスを見つけ、それを自分のシステムに割り当てることによって、
IPアドレスが重複しないことを保障する。
「169.254..」というIPアドレスはLINKLOCALアドレスといい、一般的なプライベートIPアドレスではないが、
どこの組織にも割り当てられていないことが保証された、APIPAでのみ有効な、特別なIPアドレスである。

 このように、APIPAを利用することにより、ユーザーはネットワークのIPアドレスをまったく意識することなく、
ネットワーク上のほかのシステムと通信をすることができる。

 ただしAPIPAは、小規模なネットワークで使うことを前提としているため、複数のネットワークをまたいで使うことはできない。
APIPAで割り当てられたIPアドレスを持つパケットは、ルータでルーティングしてはいけないことになっている。
そのため通信できる範囲は同一のネットワーク(ブロードキャストが届く範囲)に限定されることになる。
インターネットへ接続するのではなく、ローカルのLAN上でファイル共有やプリンタ共有しか使わないという用途にはこれでも十分である。

 APIPAは、最近のWindowsやMacintoshシステムなどで実装されている。これらのシステムでは、最初にDHCPなどでIPアドレスの
取得を試みるが、それが失敗するとAPIPAによってランダムなIPアドレスを割り当てるようになっている。
だがハブが壊れるなど、何らかの事情でネットワークが利用できない場合でも、自動的にランダムなIPアドレスが割り当てられたまま
システムが起動してしまうことになるので、一見するとネットワークが正常に機能しているようにみえることがある。
そのため、トラブルの原因を究明するのが困難になることもある。

Zeroconfを無効に

結局のところサーバ用途ではほぼ不要と思われるので、これを無効化します。

# vi /etc/sysconfig/network
NOZEROCONF=yes <-これを追記する

ネットワークを再起動して、再びルーティングテーブルを確認すると、無効化されることが
確認できますね。

# service network restart

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0
0.0.0.0         10.0.0.254      0.0.0.0         UG        0 0          0 eth0
16
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
13