web-dev-qa-db-ja.com

isc-dhcp-serverがインターフェース検出の失敗により起動しない

にAPモードをセットアップしようとしていますBCM4313ワイヤレスカード。

私の非常に基本的なhostapd configは次のようになります:

interface=wlan0
driver=nl80211
ssid=test
hw_mode=b
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=1234567890
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

ネットワークが正常にセットアップされ、ネットワークに接続できるようになりました。ただし、接続プロセスはIPアドレスの取得で停止します。

だから、私のdhcpd.confファイルはデフォルトとほぼ同じように見えますが、以下の挿入があります。

# option definitions common to all supported networks...
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

#default-lease-time 600;
#max-lease-time 7200;
...
option broadcast-address 10.10.0.255;

subnet 10.10.0.0 netmask 255.255.255.0 {
        interface wlan0;
        range 10.10.0.2 10.10.0.16;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        option routers 10.10.0.1;
}

ぼくの wlan0インターフェースは正しく設定されています(推測):

wlan0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        inet 10.10.0.1  netmask 255.255.255.0  broadcast 10.10.0.255
        ether 55:28:cc:23:14:a6  txqueuelen 1000  (Ethernet)

いつ /etc/default/isc-dhcp-serverには次の行があります:

DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
INTERFACESv4="wlan0"

結局、 journalctl -xeは私にこの出力を与えます:

Jul 10 10:11:25 srv dhcpd[3296]: Wrote 0 leases to leases file.
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: No subnet declaration for wlan0 (no IPv4 addresses).
Jul 10 10:11:25 srv dhcpd[3296]: ** Ignoring requests on wlan0.  If this is not what
Jul 10 10:11:25 srv dhcpd[3296]:    you want, please write a subnet declaration
Jul 10 10:11:25 srv dhcpd[3296]:    in your dhcpd.conf file for the network segment
Jul 10 10:11:25 srv dhcpd[3296]:    to which interface wlan0 is attached. **
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: Not configured to listen on any interfaces!
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: If you think you have received this message due to a bug rather
Jul 10 10:11:25 srv dhcpd[3296]: than a configuration issue please read the section on submitting
Jul 10 10:11:25 srv dhcpd[3296]: bugs on either our web page at www.isc.org or in the README file
Jul 10 10:11:25 srv dhcpd[3296]: before submitting a bug.  These pages explain the proper
Jul 10 10:11:25 srv dhcpd[3296]: process and the information we find helpful for debugging..
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: exiting.
Jul 10 10:11:27 srv isc-dhcp-server[3283]: Starting ISC DHCPv4 server: dhcpdcheck syslog for diagnostics. ... failed!
Jul 10 10:11:27 srv isc-dhcp-server[3283]:  failed!
Jul 10 10:11:27 srv systemd[1]: isc-dhcp-server.service: Control process exited, code=exited status=1
Jul 10 10:11:27 srv systemd[1]: Failed to start LSB: DHCP server.

これは私の /etc/network/interfaces

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
address 10.10.0.1
netmask 255.255.255.0

Sudo apt-get install -fコマンドはすでに試行されましたが、効果はありません。

私はmine( 12 、)に似た質問をたくさん見ましたが、それらはすべて私のケースには適していません。 DHCPサーバーを機能させるにはどうすればよいですか?

3
im_infamous

isc-dhcp-serverhostapdは(debian sidで)機能しますが、dhcpd.conf内のshared-networkでwlanインターフェースを定義しています。また、option broadcast-address定義内にsubnet {...}があります。

次のようなものを試してください:

shared-network net_wlan0 {
    subnet 10.10.0.0 netmask 255.255.255.0 {
        authoritative;
        range 10.10.0.2 10.10.0.16;
        option broadcast-address 10.10.0.255;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        option routers 10.10.0.1;
    }
}

私の/etc/default/isc-dhcp-serverにも以下が含まれています:

INTERFACESv4="br0 br1 wlan0"

これにより、どのインターフェースをリッスンするかがdhcpdに通知され、これらの引数を使用して実行されます(コマンドラインの最後にあるインターフェースに注意してください)。

# ps h -o cmd -C dhcpd
/usr/sbin/dhcpd -4 -q -cf /etc/dhcp/dhcpd.conf br0 br1 wlan0

注:以前のバージョンのisc-dhcp-serverパッケージは、INTERFACESv4ではなくINTERFACES変数を使用していました。この変化は今年2月に起こった。 etckeeperによると、/etc/default/isc-dhcp-serverの最新のコミットは2016年2月10日でした


また、ローカルキャッシングDNSリゾルバーを実行することをお勧めします(例:unboundまたはdnsmasqまたはいくつかの他の1つ)。フォワーダーとしてグーグルのDNSサーバーをポイントしますが、ローカルキャッシュはIMOに不可欠です。 squidなどのプロキシサーバーも役立ちます。ローカルのNTP=サーバーなので、ネットワーク上のすべてのマシンをまったく同じ時刻に同期できます。


ところで、私はath9k usb wifi NICを使用しています。dhcpdは他の2つのネットワークeth0とeth1(実際には、VMに対してbr0とbr1としてブリッジされます)にもサービスを提供していますが、違いはありません。

RTL 8192ベースのUSB NICが機能するようにしようとして、大きな問題を抱えていました。結局それをあきらめてAR9271を購入しました。

0cf3:9271 Atheros Communications, Inc. AR9271 802.11n

両方のUSB wifiデバイスは安く、それぞれ約10〜15ドル(同じブランド、同じ製造元(TP-Link)、異なるチップセット)だったので、8192を動作させるために多くの時間を費やす価値はありませんでした(IMO 8192ベース) NICはおそらくただのジャンクであり、クライアントとしても確実に機能しません。正常に機能し始め、接続をドロップしてハングします...削除する前に削除して再挿入する必要があります。再び働く)。

2
cas

エラーメッセージに応じて、「インターフェイスwlan0が接続されているネットワークセグメントのdhcpd.confファイルにサブネット宣言を記述してください。」

これはisc-dhcpdの既知の機能/制限です。 DHCP要求をリッスンしているメインインターフェイスのネットブロック/サブネットを強制的に定義する必要があります。

インターフェイスにはアドレス10.10.0.1とネットマスク255.255.255.0があるため、最初のDHCPサブネットとして追加します。

subnet 10.10.0.0 netmask 255.255.255.0 {
  option routers 10.10.0.1
  option subnet-mask 255.255.255.0;
}

DHCPデーモンを再起動します。これで動作するはずです。

1
Rui F Ribeiro

最後に、私は解決策を見つけました。これらのステップのいくつかは冗長かもしれませんが、すべて最終的にが機能するため、気にしません。

  1. Wi-fiはハードウェアロックされている可能性があります。そうでないことを確認してください。
  2. Wi-fiがダウンしている可能性があります。 Sudo ifconfig wlan0 up(またはwlan [〜#〜] x [〜#〜]その他の場合)
  3. Macとホスト間のバインディングを追加します。最後に、次のようになります。

subnet 10.10.0.0 netmask 255.255.255.0 {
        interface wlan0;
        range 10.10.0.2 10.10.0.16;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        option routers 10.10.0.1;
  Host wlan0 {
        hardware ethernet 40:2c:f4:36:d4:16;
        fixed-address 10.10.0.1;
  }
}
1
im_infamous