2005/12/21

OpenWRT進階設定 - DHCP Server

Openwrt預設安裝的dhcp server是dnsmasq, dnsmasq基本上是一個小型的domain name server但也同時提供dhcp server的功能, 又小又好用, 功能也不少, 實在沒什麼好挑剔的, 不過剛好我的環境中需架設PXE Server, 需要dhcp server, 偏偏dnsmasq不提供指向tftp server的功能, 可是同一lan中同時有兩個dhcp server會很麻煩, 分開兩個lan也是麻煩, 所以一直很想使用功能較完整的dhcp server來取代dnsmasq的dhcp功能, 首先下載我們需要的dhcp server, 可以在這裡http://openwrt.alphacore.net/ 找到,

    root@wrt54gs:~# wget \
    http://openwrt.alphacore.net/dhcpd_3.0.1_mipsel.ipk

接下來進行安裝,

    root@wrt54gs:~# ipkg install dhcpd_3.0.1_mipsel.ipk

安裝好後, 還需要撰寫/etc/dhcpd.conf, 內容大致如下,

    #/etc/dhcpd.conf
    default-lease-time 7776000;
    max-lease-time 7776000;
    ddns-update-style none;
    server-name drbl;
    option routers 192.168.200.254;
    option domain-name "alphalab.org";
    option domain-name-servers 192.168.200.254;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.200.255;

    filename = "pxelinux.0";

    subnet 192.168.200.0 netmask 255.255.255.0 {
      range 192.168.200.240 192.168.200.249;
      host p5020 {
        hardware ethernet 00:0B:5D:24:20:63;
        fixed-address 192.168.200.100;
      }
    }

因為dhcpd執行的時候需要dhcpd.leases檔案存在, 所以我們先產生一個空的給他,

    root@wrt54gs:~# echo "" > /etc/dhcpd.leases

接下來撰寫啟動腳本, 我們將dhcpd的啟動放在dnsmasq之後, 請建立一個檔案/etc/init.d/S51dhcpd, 內容如下,

    #!/bin/sh
    /usr/sbin/dhcpd -lf /etc/dhcpd.leases br0

為了不與dnsmasq的dhcp server衝突, 我們必須關閉dnsmasq的dhcp功能, 請修改/etc/init.d/S50dnsmasq如下,

    #!/bin/sh
    /usr/sbin/dnsmasq

No comments: