[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 應用技術 > 其它 > 正文
架設DHCP全攻略
本文出自: 作者: (2001-10-15 08:00:00)
  DHCP 的好處我已經在“網絡基礎”之“DHCP 協議”裡面花了不少筆墨了您應該知道的了
  這裡也就不再多說。 
   
  設置DHCP 
   
  別以為我在“網絡基礎”那裡說得那復雜但在 Linux 下面設置 DHCP 一點也不復雜您所有
  要做的只有一個文件/etc/dhcpd.conf 。 
   
  下面我用我自己的設置文件來說說怎修改這個文件 
   
  default-lease-time 259200; 
  max-lease-time 777600; 
  option domain-name "siyongc"; 
   
  這幾行我放在文件的開頭部份。第一和第二行我定義出租約的預設期限和最高期限數值以秒來計
  算也就是‘三天’和‘九天’。 
  然我指定了網絡使用的網域名稱。 
   
  接下來是 
   
  subnet 192.168.0.0 netmask 255.255.255.0 { 
   range 192.168.0.21 192.168.0.30; 
   range 192.168.0.121 192.168.0.230; 
   option broadcast-address 192.168.0.255; 
   option routers 192.168.0.17; 
   option domain-name-servers 192.168.0.17, 203.56.8.1; 
  } 
   
  subnet 203.30.35.128 netmask 255.255.255.224 { 
   range 203.30.35.140 203.30.35.157; 
   option broadcast-address 203.30.35.159; 
   option routers 203.30.35.134 
   option domain-name-servers 203.30.35.134 203.56.8.1; 
  } 
   
   
  這裡我一共有兩塊網卡分別向兩個網絡提供 DHCP 服務。在第一個網絡(192.168.0.0)下面我指定
  出兩個 scope 也就是用來分配 DHCP 的 IP 范圍192.168.0.21 到 192.168.0.30 和 
  192.168.0.121 到 192.168.0.230 。另外我還指定了‘廣播地址’‘路由器地址’和‘DNS的地址’。 
  第二個網絡因為使用了27 bit 的 netmask所以 Net ID 是 203.30.35.128 而廣播地址則是
  203.30.35.159 。 
   
  最我還設置了這樣的句子 
   
  host pii266 { 
   hardware ethernet 48:54:E8:27:75:77; 
   fixed-address 192.168.0.15; 
  } 
   
  正如我們所知通過 DHCP 獲取 IP 的客戶端機器如果其租約已經過期了那好可能失去了原來
  的 IP 。不過我又想我的 pii266 這台主機永遠都使用一個固定的 IP 地址。上面的句子就是為了
  這個目的而設的了。首先我得找到在 pii266 這台機器上連接到我這個網絡的界面種類和硬件地址
  也就是ethernet 48:54:E8:27:75:77 然我用‘fixed-address’將 192.168.0.15 這個不在 
  DHCP scopes 之內的 IP 分配給 pii266。 
   
  如果您參考我上面這個文件進行設置的話務必留意每一個標點符號有些數字是用‘’來分隔
  而有些則用空格鍵來分隔而每一個句子都要用‘’做結尾(和 perl script 一樣)否則下
  面一行將會視為該行的延續部份而不會當是新的一行看待。 
   
  當這個 /etc/dhcpd.conf 文件設置好之您還要用下面的命令創建一個 /etc/dhcp.leases 的空
  白文件 
  touch /etc/dhcp.leases 
  注意您不要嘗試自行修改這個文件假如該文件有問題的話將之刪除或改名然再用 touch 
  命令創建就是了。 
   
  我們在“網絡基礎”中已經知道在 DHCP 運作的初期client 是使用廣播方式來查詢 DHCP 信息
  的。問題是我這裡有兩塊網卡DHCP 要響應 client 的查詢時很難判斷出要傳到哪個網絡中去因
  為一開始的時候 client 端還沒分配到 IP 地址所以我在我的 /etc/hosts 中增加了這樣一行 
   
  255.255.255.255 all-ones all-ones 
   
  然我還在 /etc/rc.d/rc.local 中增加了這樣的敘述 
  # Lines added by netman, 
  # for enabling DHCP routing on multi-nics environement: 
  echo "Adding IP routing for DHCP server..." 
  route add -host 255.255.255.255 dev eth0 
  route add -host 255.255.255.255 dev eth1 
   
  這樣當機器激活的時候DHCP 的路由就設置好了。然而看來現在新版的 Linux 似乎無需再擔心
  這個問題了假如您發現 DHCP 未能成功提供服務的話再考慮使用這個辦法吧。 
   
  最您要做的是重新激活 DHCP 服務 
  /etc/rc.d/init.d/dhcpd restart 
  留意一下有沒有錯誤信息有則做出適當修改再來嘗試激活 dhcpd (使用 start 代替 restart)。 
   
  為 IP Alias 設置 DHCP 
   
  在某些場合中我們或許會運用到 IP Alias 來連接網絡。這時候我們還可以為 alias 所在的網
  絡提供 DHCP 服務呢不過要留意一點是您只能為一塊界面提供一個 sub-net 的服務就算界
  面上面捆綁了好幾個 alias 也一樣。 
   
  設置也是蠻簡單的啦 
   
  將 alias 所在的網絡設置好。 
  然將 /etc/dhcpd.conf 原本關原有 IP 所在的 subnet 取消。 
  只留下 alias 所在網絡的 range 就可以了。 
   
  在我的測試中/etc/dhcpd.conf 不是最重要的關機還是要確定 ip alias 已經成功激活而且 
  routing 一定要設置好。 
   
  下面是我初步整理出來的流程 
   
   
  1激活 dhcpd: 
   
  如果您有任何 interface 已經 up 起來了 
  && 
  且 routing 已經設置好 { 
   
   如果原有界面 sub-net 已經 declare 好 { 
   ## 那無論您是否 delcare 好 alias 所在 sub-net 
   dhcpd 可以激活成功。 
   } 
   
   否則 { #如果原有界面 sub-net 沒有 declare 
   如果 alias 所在 sub-net 已經 declare 的時候 { 
   如果 alias 所在 sub-net 已經設置好 routing { 
   dhcpd 可以成功激活 
   } 
   否則 { #如果 alias 所在 sub-net 還沒設置好 routing 
   當您激活 dhcpd 的時候您應該會得到 
   No subnet declaration for ethx(原有 IP 網絡) 
   的信息而失敗。 
   } 
   } 
   
   否則 { #如果 alias 所在 sub-net 沒有 declare 的話 
   也會得到 No subnet declaration for ethx 錯誤 
   } 
   } 
  } 
   
  ------- 
  2運作 dhcpd 
   
  當您的 dhcpd 成功激活之 { 
   
   如果您有 declear 原有界面所在 sub-net { 
   有 range 設置 { 
   ## 那無論您是否設置好 alias 所在的 sub-net 和 range 
   dhcpd 都只會offer 原有界面的 sub-net 
   } 
   否則 { #沒有 range 設置 
   ## 那無論您是否設置好 alias 所在的 sub-net 和 range 
   dhcpd 收到 DHCPDISCOVER 之都會響應說 
   no free leases on subnet (原有界面之 sub-net) 
   } 
   
   否則 { #如果您並沒有 declear 原有界面所在 sub-net 
   如果有 alias 所在 sub-net { #沒有的話 dhcpd 激活的時候已失敗 
   有 range 設置 { 
   dhcpd 會 offer alias 所在 sub-net 
   } 
   否則 { #沒有 range 設置 
   dhcpd 收到 DHCPDISCOVER 之都會響應說 
   no free leases on subnet (alias 所在 sub-net) 
   } 
   } 
  } 
   
  ======== 
  如果看我的范例會是這樣 
   
  default-lease-time 259200; 
  max-lease-time 777600; 
  option domain-name "siyongc"; 
   
  ## 下面我將原有界面 sub-net 批注起來 
  #subnet 192.168.0.0 netmask 255.255.255.0 { 
  # range 192.168.0.21 192.168.0.30; 
  # range 192.168.0.121 192.168.0.230; 
  # option broadcast-address 192.168.0.255; 
  # option routers 192.168.0.17; 
  # option domain-name-servers 192.168.0.17, 203.56.8.1; 
  #} 
   
  ## 這才是 alias 所在 sub-net 的設置 
  subnet 192.168.1.0 netmask 255.255.255.0 { 
   range 192.168.1.21 192.168.1.30; 
   option broadcast-address 192.168.1.255; 
   option routers 192.168.1.17; 
   option domain-name-servers 192.168.1.17, 203.56.8.1; 
  } 
   
   
  ## 這裡也還可以用 fixed IP 的辦法來分配 
  ## 不過為了測試我暫時批注起來了 
  #host pii266 { 
  # hardware ethernet 00:00:21:D2:30:DA; 
  # fixed-address 192.168.0.15; 
  #} 
   
   
  測試DHCP 
   
  要測試 HDCP 是否工作還不簡單找一台在同一個網絡的 Linux 機器將它的界面轉成使用 
  DHCP 就是了。例如修改 /etc/sysconfig/network-scripts/ifcfg-eth0 這個文件將之改
  成這樣 
   
  DEVICE="eth0" 
  IPADDR="" 
  NETMASK="" 
  ONBOOT="yes" 
  BOOTPROTO="dhcp" 
   
  然執行 ifdown eth0 和 ifup eth0 將界面重新激活再執行 ifconfig 您就知道DHCP 是否
  運作了。 
   
  如果您使用的是 Windows 系統那 開始 --> 設置 --> 控制台 --> 網絡 --> 
  ‘TCP/IP ->網卡’--> IP 地址 --> 自動取得 IP 地址 --> 確定 --> 確定 -->重新激活機器。
  當登錄之執行 開始 --> 執行 --> winipcfg --> 尚有信息 。您就可以一驗証 DHCP 的設置了。
  如果您要在 DHCP 服務器那端改動設置可以按“全部更新”看看新設置是否生效。 
   

 

(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
代理接入服務器(三)DHCP服務器 (2002-02-14 07:15:01)
架設DHCP全攻略 (2001-10-15 08:00:00)
RedHat6.2服務器配置方案大全--第三章 DHCP,第四章 Samba (2001-09-28 09:00:00)
IP基礎--2.DHCP協定 (2001-06-04 08:10:00)
關配置DHCP服務器時的路由問題分析 (2001-05-31 08:10:00)
SCO OpenServer 5.0.5中DNS和DHCP的配置 (2001-05-12 10:33:39)
架設 DHCP Server (2001-05-02 03:57:28)
 

★  樊強制作 歡迎分享  ★