FreeBSD設定和使用DHCP(轉)

gugu99發表於2007-08-11
FreeBSD設定和使用DHCP(轉)[@more@]

  在FreeBSD的Packages Collection中,有兩個不同的DHCP客戶機和伺服器軟體,一個為ISC-DHCP,另一個為WIDE-DHCP,兩個軟體都包括了DHCP客戶軟體和伺服器軟體,其中ISC-DHCP 更為常用一些,這裡就以ISC-DHCP為例介紹在FreeBSD上安裝和設定DHCP。

  為了支援DHCP,首先要確認系統核心支援偽裝置bpfilter,如果沒有,就需要重新編譯核心。偽裝置bpfilter 是一個允許應用程式接收網路的原始資料包的介面,這樣應用程式就能接收目的地址非本機IP地址的資料包了。DHCP使用bpfilter的原因是在DHCP設定好計算機的TCP/IP之前,由於計算機本身沒有定義IP地址,而TCP/IP堆疊本身不會接收不具備本機IP地址的資料包。要接收DHCP伺服器傳送回客戶的資料包,就需要繞過TCP/IP堆疊,而必須使用偽裝置bpfilter。

pseudo-device  bpfilter  4

  定製核心之後,還要保證/dev/目錄下具有對應bpfilter的裝置檔案。

# cd /dev

# sh MAKEDEV bpf0 bpf1 bpf2 bpf3

  從Packages Collecion中安裝DHCP軟體,這將DHCP軟體中的dhcpd,dhclient和dhcprelay 安裝到/usr/local/sbin目錄下。

$ ls /usr/local/sbin/dhc*

/usr/local/sbin/dhclient  /usr/local/sbin/dhcpd

/usr/local/sbin/dhcrelay

  

  • 設定伺服器

  為了設定DHCP伺服器dhcpd,首先就要設定其配置檔案/etc/dhcpd.conf。這個配置檔案語法簡單,比較容易理解。

server-identifier 192.168.3.1;

subnet 192.168.3.0 netmask 255.255.255.0 {

    range 192.168.3.10 192.168.3.20;

    default-lease-time 600;

    max-lease-time 7200;

    option subnet-mask 255.255.255.0;

    option broadcast-address 192.168.3.255;

    option routers 192.168.3.1;

    option domain-name-servers 192.168.3.1;

    option domain-name "exampleorg.org.cn";

}

host a1 {

    hardware ethernet 00:90:27:4e:92:09;

    fixed-address 192.168.3.32;

    option subnet-mask 255.255.255.0;

    option broadcast-address 192.168.3.255;

    option routers 192.168.3.1;

    option domain-name-servers 192.168.3.1;

    option domain-name "exampleorg.org.cn";

}

  基本的dhcpd.conf首先使用server-identifier定義了本伺服器的IP地址,這對於有多個IP地址的伺服器系統十分重要,一般不必設定這個引數,dhcpd能自動偵測。然後定義要分配IP地址的客戶機組,每組擁有一個可用的IP地址範圍。有兩種客戶機組的劃分方式,一種為指定子網段來區分,一種為指定主機來區分。

  這個例子中的第一組定義了一個子網192.168.3.0/24,這個子網段內,可供DHCP伺服器分配的I P地址範圍為192.168.3.10到192.168.3.20,這個地址範圍也可以不是連續的,不連續的地址可以使用多個range設定引數來設定。此外,還設定了這一組內分配的IP地址的租期限制default-lease-time 和max-lease-time,可以使用預設值,而不必改動。後面的option引數設定DHCP的附加功能,例如設定DHCP客戶的網路掩碼、廣播地址、DNS伺服器、域名等等。事實上這些option設定選項也可以被用作全域性選項設定,即放置在server-identifier之後,對所有的客戶機組起作用。

  例子的第二組是針對某個特定主機a1進行的設定,這個主機被限定為乙太網地址為hardware ethernet 引數值的計算機,將給這個計算機分配一個固定地址。這種分配方式實際等價於固定地址分配方式,唯一的好處就是能夠對IP地址進行集中管理,不必每個計算機分別設定了。這裡同樣也可以使用option引數,設定TCP/IP的引數。

  dhcpd.conf中還能有更多的組,包括對非本網段的子網上的客戶機指定的組。

  當設定了dhcpd.conf之後,就能啟動dhcpd守護程式了,由於計算機會有多個網路介面,需要指定dhcpd 伺服器的網路介面,以便回應相應介面上的DHCP請求。

# /usr/local/sbin/dhcpd fxp0

  在除錯階段,可以使用-d引數,這樣dhcpd就不會進入後臺執行,而一直保留在前臺,並顯示各個與客戶計算機通訊的過程。當一切都除錯完畢之後,就能去除-d引數,並將執行命令放入rc.local啟動指令碼中,以便系統能夠自動執行。

  此後,dhcpd正常執行的時候,會將每一次客戶請求及其回應的IP地址分配的記錄,都記錄在/var/run/dhcpd.leases 檔案中。為了使dhcpd能正常進行日誌記錄,應該在啟動dhcpd之前使用touch 命令,生成一個新的日誌檔案。以後就可以檢視這個日誌檔案的內容,以得到當前DHCP伺服器的狀態和客戶機IP地址分配的情況。以下是一個日誌檔案的部分內容。

lease 192.168.3.11 {

     starts 3 1998/11/26 05:46:28;

     ends 4 1998/11/27 05:46:28;

     hardware ethernet 0:80:c2:12:fd:d;

     uid 1:0:80:c2:12:fd:d;

    }

  touch命令的優點是在存在相關的檔案時,不刪除或更改檔案內容,只更新其訪問時間設定,只有在檔案不存在時才生成新檔案。

  然後就能設定網路中的客戶計算機使用DHCP協議,獲取合法的IP地址了。通常Windows計算機的TCP/IP設定中能直接設定支援DHCP協議,如果為Unix(包括FreeBSD)設定DHCP客戶軟體,就需要dhclient的支援。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-944625/,如需轉載,請註明出處,否則將追究法律責任。

相關文章