[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:38120] <Q> How to make a dhcp server for two subnets?



柴田(あ)です。

■設定ついて
二つのサブネット向けの dhcp サーバの設定でたいへん困っております。
チェック漏れ等ご指摘いただければ幸いに思います。
Debian specific か悩んだのですが、 Debian のパッケージの
説明を読んでも ISC の DHCP サーバかわからなかったのですが、
読んでいくとどうもそのようだし、どこかでそう読んだような
きがしますが、 man を読むと ISC の設定構文と同じなので ISC の
DHCP サーバと同じ挙動をするつもりで設定しています。


■質問
<Q>
二つのサブネットに向けて dhcp で IP アドレスを振りたいです。
どのようにしたらよいでしょうか?
</Q>


■困っていること
下記ネットワーク図で dhcp client A には希望通り 172.18.200.1 のような
アドレス(希望通り)が振られるのですが、 dhcp client B にも 172.18.200.1 の
ようなアドレス(希望とは違う)が振られてしまって困っています。
希望としては dhcp client B には 172.20.100.1 のようなアドレスになって
欲しいと設定をしてるつもりです。


■現状
●ディストリビューションとパッケージバージョン
Debian GNU/Linux 3.0 Woody
$ dpkg -l | grep dhcp
ii  dhcp           2.0pl5-11      DHCP server for automatic IP address assignm


●実験ネットワーク構造
dhcp server
|    172.16.241.11
|
+------------------------------+
|    172.16.240.1/16           |   172.16.240.2/16
router1                       router2
|    172.18.0.1/16             |   172.20.0.1/16
|                              |
dhcp client A                 dhcp client B

router1 router2 ともに debian で構築したルータで
dhcp-relay パッケージにてリレーしておりますので
dhcp サーバからクライアントは情報をもらっています。

● dhcp サーバの設定
(登録していない MAC アドレスには dns の情報を
 あげないようにしています)
shibata@debian:~$ cat /etc/dhcpd.conf
default-lease-time 60;
max-lease-time 72;
option subnet-mask 255.255.0.0;
option domain-name-servers 127.0.0.1;
option domain-name "intra.hoge.jp";

host 1 {
        hardware ethernet 00:e0:98:77:41:56 ;
        option domain-name-servers 172.16.241.10 ;
        }
shared-network CM {
        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;
        }
}

● dhcp サーバのルーティング情報
shibata@debian:~$ netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
172.18.0.0      172.16.240.1    255.255.0.0     UG       40 0          0 eth0
172.16.0.0      *               255.255.0.0     U        40 0          0 eth0
172.20.0.0      172.16.240.2    255.255.0.0     UG       40 0          0 eth0
default         172.16.0.2      0.0.0.0         UG       40 0          0 eth0


● /var/lib/dhcp/dhcpd.leases の様子
(途中で NIC を変えてみたりしました。)
shibata@debian:~$ sudo cat /var/lib/dhcp/dhcpd.leases
# All times in this file are in UTC (GMT), not your local timezone.   This is
−略−
lease 172.18.200.0 {
        starts 3 2003/09/03 09:47:04;
        ends 3 2003/09/03 09:48:04;
        hardware ethernet 00:e0:98:77:41:56;
        uid 01:00:e0:98:77:41:56;
        client-hostname "pc-shibata";
}
lease 172.18.200.0 {
        starts 3 2003/09/03 09:47:04;
−略−
        uid 01:00:90:fe:56:c5:e0;
        client-hostname "pc-shibata";
}
lease 172.18.200.1 {
        starts 3 2003/09/03 10:02:48;
        ends 3 2003/09/03 10:03:48;
        hardware ethernet 00:90:fe:56:c5:e0;
        uid 01:00:90:fe:56:c5:e0;
        client-hostname "pc-shibata";
}
lease 172.18.200.1 {
        starts 3 2003/09/03 10:02:48;
        ends 3 2003/09/03 10:03:48;
        hardware ethernet 00:90:fe:56:c5:e0;
        uid 01:00:90:fe:56:c5:e0;
        client-hostname "pc-shibata";
}

● /var/log/daemon.log の様子
多分正常動作してます
↓
Sep  3 18:57:57 debian dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:90:fe:56:c5:e0 via eth0
Sep  3 18:57:57 debian dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:90:fe:56:c5:e0 via eth0
Sep  3 18:57:57 debian dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:90:fe:56:c5:e0 via 172.16.240.1
Sep  3 18:57:57 debian dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:90:fe:56:c5:e0 via 172.16.240.1
Sep  3 18:57:57 debian dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:90:fe:56:c5:e0 via 172.18.0.1
Sep  3 18:57:57 debian dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:90:fe:56:c5:e0 via 172.18.0.1
差替え
Sep  3 18:59:47 debian dhcpd-2.2.x: DHCPDISCOVER from 00:90:fe:56:c5:e0 via 172.20.0.1
Sep  3 18:59:48 debian dhcpd-2.2.x: DHCPOFFER on 172.18.200.1 to 00:90:fe:56:c5:e0 via 172.20.0.1
Sep  3 18:59:48 debian dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:90:fe:56:c5:e0 via 172.20.0.1
Sep  3 18:59:48 debian dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:90:fe:56:c5:e0 via 172.20.0.1
↑
多分正常動作してない 172.20.0.0/16 の中なのに 172.18.200.1 が振られている

ここで正常動作すると思われるサブネットへと NIC を差替えしました。

多分正常動作してます
↓
Sep  3 19:00:18 debian dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:90:fe:56:c5:e0 via eth0
Sep  3 19:00:18 debian dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:90:fe:56:c5:e0 via eth0
Sep  3 19:00:18 debian dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:90:fe:56:c5:e0 via 172.16.240.1
Sep  3 19:00:18 debian dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:90:fe:56:c5:e0 via 172.16.240.1
Sep  3 19:00:18 debian dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:90:fe:56:c5:e0 via 172.18.0.1
Sep  3 19:00:18 debian dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:90:fe:56:c5:e0 via 172.18.0.1
Sep  3 19:00:48 debian dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:90:fe:56:c5:e0 via eth0
Sep  3 19:00:48 debian dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:90:fe:56:c5:e0 via eth0
Sep  3 19:00:48 debian dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:90:fe:56:c5:e0 via 172.16.240.1
Sep  3 19:00:48 debian dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:90:fe:56:c5:e0 via 172.16.240.1
Sep  3 19:00:48 debian dhcpd-2.2.x: DHCPREQUEST for 172.18.200.1 from 00:90:fe:56:c5:e0 via 172.18.0.1
Sep  3 19:00:48 debian dhcpd-2.2.x: DHCPACK on 172.18.200.1 to 00:90:fe:56:c5:e0 via 172.18.0.1

■参考情報:ルータ用 Debian マシンの dhcp リレーについて
●起動スクリプト
shibata@fuga:~$ cat /etc/init.d/dhcp-relay
#!/bin/sh
#
# $Id: dhcp-relay.init.d,v 1.1.1.1.2.1 2002/02/11 03:44:26 eparis Exp $
#

# Add all interfaces you want dhcpd to handle here

test -x /usr/sbin/dhcrelay || exit 0

DHCRELAYPID=/var/run/dhcrelay.pid

case "$1" in
        start)
                start-stop-daemon --start --quiet --pidfile $DHCRELAYPID \
                        --exec /usr/sbin/dhcrelay -- -q -i eth0 -i eth1 172.16.241.11
                ;;
        stop)
                start-stop-daemon --stop --quiet --pidfile $DHCRELAYPID
                ;;
        restart)
                start-stop-daemon --stop --quiet --pidfile $DHCRELAYPID
                sleep 2
                start-stop-daemon --start --quiet --pidfile $DHCRELAYPID \
                        --exec /usr/sbin/dhcrelay -- -q -i eth0 172.16.241.11
                ;;
        *)
                echo "Usage: /etc/init.d/dhcp-relay {start|stop|restart}"
                exit 1
esac

exit 0

●動作状況
shibata@proxy001:~$ ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        S      0:03 init [2]
    2 ?        SW     0:00 [keventd]
−略−
  195 tty6     S      0:00 /sbin/getty 38400 tty6
  537 ?        S      0:00 /usr/sbin/dhcrelay-2.2.x -q -i eth0 -i eth1 172.16.241.11
  547 ?        S      0:00 /usr/sbin/sshd
  549 ?        S      0:00 /usr/sbin/sshd
  550 pts/0    S      0:00 -bash
  552 pts/0    R      0:00 ps ax

shibata@fuga:~$ ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        S      0:04 init [2]
    2 ?        SW     0:00 [keventd]
−略−
  204 tty5     S      0:00 /sbin/getty 38400 tty5
  205 tty6     S      0:00 /sbin/getty 38400 tty6
  223 ?        S      0:00 /usr/sbin/dhcrelay-2.2.x -q -i eth0 -i eth1 172.16.241.11
 1515 ?        S      0:00 /usr/sbin/sshd
 1517 ?        R      0:00 [sshd]
 1518 pts/0    S      0:00 -bash
 1522 pts/0    R      0:00 ps ax


●参考にした URL
http://www.matsusaka-u.ac.jp/~okumura/networking/dhcp.html
http://www.a-yu.com/net/net_dhcp.html
http://www.linux.or.jp/JM/html/dhcp2/man5/dhcpd.conf.5.html
http://www.wakhok.ac.jp/netadmin/node290.html
http://homepage1.nifty.com/Que/plamo/dhcpd/



-- 
SHIBATA Akira      ケーブルテレビはまちづくり
shibata@xxxxxxxxxxxxxx   phone : +81-429-74-3611