静的IPを指定したのに動的IPを取得する

静的IPを指定したのに動的IPを取得する

アクセス ポイントとして機能する Raspberry 上の Linux マシンがあります。

Linux raspberrypi 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l GNU/Linux

また、DHCP サーバーもインストールしています。/etc/network/interfaces で静的 IP アドレスを定義しましたが、起動するたびに、静的 IP ではなく DHCP サーバーからの IP が取得されます。この動作は一貫しておらず、静的 IP が取得されることもあります。

これは、スクリプトのパラメータに基づいて、AP として機能する場合もあれば、クライアントとして機能する場合もあるプロジェクトの一部のモジュールです。すべてのケースで conf ファイルが以下のようになっているにもかかわらず、AP に戻すと IP が間違ってしまう場合があります。

これは私のhostapd.confです

interface=wlan0    
driver=rtl871xdrv    
ssid=my ssid
hw_mode=g
channel=6
auth_algs=1
ieee80211n=1

これは私のインターフェースファイルです

auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
  address 192.168.0.1
  netmask 255.255.255.0

dhcpd.conf

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
  range  192.168.0.10 192.168.0.50;
  option broadcast-address 192.168.0.255;
  option routers 192.168.0.1;
  default-lease-time 600;
  max-lease-time 7200;
  option domain-name "domain";
}

ifconfig wlan0

wlan0     Link encap:Ethernet  HWaddr 74:da:38:26:9f:d6
          inet addr:192.168.0.33  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:129 errors:0 dropped:5369 overruns:0 frame:0
          TX packets:0 errors:0 dropped:726 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:65760423 (62.7 MiB)  TX bytes:12737873 (12.1 MiB)

ifquery wlan0

address: 192.168.0.1
netmask: 255.255.255.0
broadcast: 192.168.0.255

192.168.0.1へのpingが192.168.0.33に変更され、宛先に到達できなくなりました。192.168.0.33へのpingは機能します。

eth0 は IP を取得できませんでした。

答え1

eth0 と wlan0 が異なる IP アドレス範囲にあり、DHCP サーバーが wlan0 デバイスのみをリッスンしていることを確認してください。また、wlan0 MAC アドレスのリースのアドレスが含まれていないことを確認してください。

次に、wlan0 に関係する他のサービスがアクティブでないことを確認します (NetworkManager、wicd などのサービスが考えられます)。また、「クライアント モード」から「AP モード」に切り替えるときに競合状態が発生しないことを何らかの方法で保証する必要があります。そうしないと、クライアント モードから外れた DHCP クライアントが IP アドレスを元に戻してしまう可能性があります。

答え2

DHCP クライアントと「AP モード」の間に競合状態が発生しました。つまり、自分の DHCP から IP を取得したことになります。

私は、MAC アドレスのみに制限するという制約を付けて、必要な静的 IP を DHCP サーバーに提供することでこの問題を解決しました。

関連情報