[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:38135] Re: <Q> How to make a dhcp server for twosubnets?
柴田(あ)です。
中間報告です。
# ダメ元はダメでした。
In message <E19urLY-0007Bi-00@xxxxxxxxxxxxxxxxxxxxx>
"[debian-users:38134] Re: <Q> How to make a dhcp server for twosubnets?"
"Thu, 4 Sep 2003 19:28:19 +0900"
"Masaki Ikeda <masaki@xxxxxxxxxxxx>" wrote:
> 池田@オレンジです。
検討ありがとうございます。
> > router は下記の通りでリレーしていると考えています。
> > 実際 dhcp-relay パッケージを入れるまで IP アドレスは
> > dhcp サーバからは振られていませんでした。
>
> DHCPのリレーエージェントというのは、サブネットにいるクライアントから直接
> ブロードキャストの届かないDHCPサーバへの中継をする役割で、今柴田さんが設
> 定されているネットワークでは「偶然」IPルータとリレーエージェントが稼動し
> ているモノが同一ホストであるに過ぎません。
>
> たとえば
>
> +--dhcpd
> |
> +-router
> |
> +--relay agent
> |
> +-client
>
> という構成も存在し得ます。
> もちろんルータ配下に複数のサブネットがある場合もあり得ます。
> とすると、dhcpdはその複数サブネットをどう識別すれば良いかという問題に帰
> 結するのですが、「ルータのアドレス」では識別できないのは明らかです。
実機で実験してきました。
希望通り動作しているところからサブネットを分けたいと
いうことで活動しているので、従来のところに支障がでない
範囲で設定変更してみたのです。
不思議なことに下記のように dhcp サーバでルータのサブネットの
アドレスを検出しています。
上の方(希望通り稼動)のほうでは、 172.18.0.0 の中で 172.18.0.1 が
ルータのアドレスであり、実際に振られたアドレスは 172.18.200.1 でした。
で、ログの下の方では 172.20.0.1 を検出しています。
(なお、ルータには複数のアドレスを振られていて 172.19.0.1 も振られています。)
shibata@dhcp:/usr/local/dhcp_update$ sudo grep 00:e0:98:77:41:56 /var/log/daemon.log
Sep 4 20:14:51 dhcp dhcpd-2.2.x: DHCPDISCOVER from 00:e0:98:77:41:56 via 172.18.0.1
Sep 4 20:14:52 dhcp dhcpd-2.2.x: DHCPOFFER on 172.18.200.1 to 00:e0:98:77:41:56 via 172.18.0.1
Sep 4 20:14:54 dhcp dhcpd-2.2.x: DHCPDISCOVER from 00:e0:98:77:41:56 via 172.18.0.1
Sep 4 20:14:54 dhcp dhcpd-2.2.x: DHCPOFFER on 172.18.200.1 to 00:e0:98:77:41:56 via 172.18.0.1
Sep 4 20:15:02 dhcp dhcpd-2.2.x: DHCPDISCOVER from 00:e0:98:77:41:56 via 172.18.0.1
Sep 4 20:15:02 dhcp dhcpd-2.2.x: DHCPOFFER on 172.18.200.1 to 00:e0:98:77:41:56 via 172.18.0.1
Sep 4 20:15:02 dhcp dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:e0:98:77:41:56 via 172.18.0.1
Sep 4 20:15:02 dhcp dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:e0:98:77:41:56 via 172.18.0.1
Sep 4 20:15:05 dhcp dhcpd-2.2.x: DHCPRELEASE of 172.18.200.1 from 00:e0:98:77:41:56 via eth0 (found)
Sep 4 20:15:08 dhcp dhcpd-2.2.x: DHCPDISCOVER from 00:e0:98:77:41:56 via 172.18.0.1
Sep 4 20:15:08 dhcp dhcpd-2.2.x: DHCPOFFER on 172.18.200.1 to 00:e0:98:77:41:56 via 172.18.0.1
Sep 4 20:15:08 dhcp dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:e0:98:77:41:56 via 172.18.0.1
Sep 4 20:15:08 dhcp dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:e0:98:77:41:56 via 172.18.0.1
↑
希望通り動作している
移動して差替えて dhcp リクエスト出してみました。
希望通りになっていない
↓
Sep 4 20:16:06 dhcp dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:e0:98:77:41:56 via 172.19.0.1
Sep 4 20:16:06 dhcp dhcpd-2.2.x: DHCPNAK on 172.18.200.1 to 00:e0:98:77:41:56 via 172.19.0.1
Sep 4 20:16:10 dhcp dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:e0:98:77:41:56 via 172.19.0.1
Sep 4 20:16:10 dhcp dhcpd-2.2.x: DHCPNAK on 172.18.200.1 to 00:e0:98:77:41:56 via 172.19.0.1
Sep 4 20:16:18 dhcp dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:e0:98:77:41:56 via 172.19.0.1
Sep 4 20:16:18 dhcp dhcpd-2.2.x: DHCPNAK on 172.18.200.1 to 00:e0:98:77:41:56 via 172.19.0.1
Sep 4 20:54:43 dhcp dhcpd-2.2.x: DHCPDISCOVER from 00:e0:98:77:41:56 via 172.20.0.1
Sep 4 20:54:44 dhcp dhcpd-2.2.x: DHCPOFFER on 172.18.200.1 to 00:e0:98:77:41:56 via 172.20.0.1
Sep 4 20:54:44 dhcp dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:e0:98:77:41:56 via 172.20.0.1
Sep 4 20:54:44 dhcp dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:e0:98:77:41:56 via 172.20.0.1
Sep 4 21:08:21 dhcp dhcpd-2.2.x: DHCPDISCOVER from 00:e0:98:77:41:56 via 172.20.0.1
Sep 4 21:08:22 dhcp dhcpd-2.2.x: DHCPOFFER on 172.18.200.1 to 00:e0:98:77:41:56 via 172.20.0.1
Sep 4 21:08:22 dhcp dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:e0:98:77:41:56 via 172.20.0.1
Sep 4 21:08:22 dhcp dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:e0:98:77:41:56 via 172.20.0.1
> また同様に、クライアントに渡す "option routers" はクライアントがデフォル
> トゲートウェイにすべきルータのアドレスを「サーバがクライアントへ」知らせ
> るためのオプションですから、これではサーバはクライアントの(存在するサブ
> ネットの)識別はできない事も明らかです。
option というのはオマケということで、コチラから
クライアントに知らせてやる情報であるというのは
理解していました。
結局のところ
-------------------------『 man dhcpd.conf 』より抜粋
shared-network ISC-BIGGIE {
shared-network-specific parameters...
subnet 204.254.239.0 netmask 255.255.255.224 {
subnet-specific parameters...
range 204.254.239.10 204.254.239.30;
}
subnet 204.254.239.32 netmask 255.255.255.224 {
subnet-specific parameters...
range 204.254.239.42 204.254.239.62;
}
}
-------------------------------
の「 subnet-specific parameters... 」をいかに指定するか
ということですよね。
ですから、当方が記述している /etc/dhcpd.confの
------------------------------- 前略
host 1129 {
hardware ethernet 00:90:99:ad:62:b5 ;
option domain-name-servers 172.16.241.11 ;
}
host 1130 {
hardware ethernet 00:90:99:b9:33:87 ;
option domain-name-servers 172.16.241.11 ;
}
shared-network Cable-Modem {
subnet 172.16.0.0 netmask 255.255.0.0 {
}
subnet 172.18.0.0 netmask 255.255.0.0 {
range 172.18.200.0 172.18.220.254;
option broadcast-address 172.18.255.255;
option routers 172.18.0.1;
}
subnet 172.20.0.0 netmask 255.255.0.0 {
range 172.20.100.0 172.20.120.254;
option broadcast-address 172.20.255.255;
option routers 172.20.0.1;
}
}
---------------------------------
というところで、 specific parameters を述べていないと
いうことがわかり、ソコに記述できることを探すのが
解決に結びつくことであると理解したと思います。
> で、manをつらつらと眺めてみたのですが、"option agent.circuit-id"あたりを
> 使ってどのagentからリレーされてきたパケットなのかをサーバ側で識別し、適
> 切なclassなりgroupなりのアドレスを返すという形になるのではないでしょうか?
>
> see man 5 dhcp-options "RELAY AGENT INFORMATION OPTION"
という言葉をヒントに今夜勉強してみたいと考えます。
明日も工事なので、ソレを終えて実験に取り組みます。
嬉しい報告ができることを自分自身で期待しています。
--
SHIBATA Akira ケーブルテレビはまちづくり
shibata@xxxxxxxxxxxxxx phone : +81-429-74-3611