ブロードバンドルータにはIPを割り当てるだけの簡単なDHCPしかなくてDNSもないので、QNAPにやってもらうことにします。
QNAPのDHCPは、ウェブ画面のネットワーク→TCP/IPタブから、編集ボタンを押すと設定できます。
ダイアログが表示されるので、適当に入力して「適用」ボタンを押すと動きます。
ただ、この状態の/etc/dhcpd.confは、
max-lease-time 86400;となっています。
default-lease-time 86400;
ddns-update-style ad-hoc;
allow booting;
allow bootp;
class "pxeclients" {
match if substring(option vendor-class-identifier,0,9)="PXEClient";
next-server 0.0.0.0;
filename "pxelinux.0";
}
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.xx 192.168.1.yy;
option routers 192.168.1.1;
option domain-name "xxx";
option netbios-name-servers 0.0.0.0;
option domain-name-servers aa.bb.cc.dd;
}
host myclient {
hardware ethernet XX:XX:XX:XX:XX:XX;
deny booting;
}
今回、fixed-addressを指定してMACでIPを固定したいのですが、ウェブ画面上にはインターフェースがないようなので、dhcpd.confを直に書き換えないといけません。
しかし、書き換えただけではだめです。何故かと言うと起動スクリプト/etc/init.d/dhcpd.shでrestart/startする際に、内部で/usr/sbin/create_dhcpd_confというバイナリが動いて、dhcpd.confをQNAPのオリジナルで上書きしてしまうというクソ仕様となっているからです。
いろいろ調べると、ダミーのパッケージ(QPKG)をこしらえて、そのOS起動時の実行スクリプト(autorun.sh)で置換をすればよい、という情報が出てくるのですが、これがまた動きません。厳密に言うとautorun.shは動くのですが、最後にdhcpdにHUPシグナルを送信したところでdhcpdが消滅して居なくなってしまいます。
しかたがないので、/etc/init.d/dhcpd.shを書き換えて対応。
@@ -13,6 +13,10 @@dhcpd.confをコピーするスクリプト。
/bin/kill -HUP `/bin/pidof dhcpd`
# Start daemons
/usr/sbin/create_dhcpd_conf > /dev/null
+
+ echo "fixup dhcpd.conf... "
+ /share/administ/fixup-dhcpd-conf
echo -n "Starting dhcpd: "
if [ `/sbin/getcfg "DHCP Server" "Enable" -u -d "FALSE"` = FALSE ]
#!/bin/sh新しいdhcpd.confには、QNAPの生成するオリジナルのファイルに以下を追記してIPとMACを固定するようにしました(特定MACアドレスに指定IPが払い出されるようになります)。
# copy dhcpd.conf
cp /etc/dhcpd.conf /etc/dhcpd.conf.qnaporg
cp /share/mydoc/dhcpd.conf /etc/dhcpd.conf
host rasp {さて、次はdnsmasqでDNSを立てようと思ったところで、dnsmaqにはDHCPが内蔵されていることが判明…。
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address 192.168.xx.xx;
option host-name "rasp";
}
dnsmasqに続く。
0 件のコメント:
コメントを投稿