天天看點

linux 下dns server 與 dhcp server的內建(轉貼)

我們在辦室的時候,有時會去通路别的機器,如果是在windows下,我們我數時候會用機器名去通路,因為netbios/wins會幫我們來把機器名轉成IP的。下面給大家介紹一種用動态DNS來解析機器名的辦法。不過,不是用的w2k的DDNS,而是用的Linux.

  

  準備:一台(或兩台)Linux伺服器,用來做DHCP server和DNS server。也可以把它做成兩台伺服器。

  

  安裝:伺服器的安裝過程,請參考其它文檔,記住把 dhcp 和 bind, bind-utils 裝上就行了。

  

  配置:

  

   一、 DHCP 的配置:

  配置DHCP server 時很簡單,可以參考 /usr/share/doc/dhcp-x.xx/dhcpd.conf.sample來做。也可以先把這個檔案cp 到 /etc/dhcpd.conf,然後根據自己的需要做适當修改。下面貼出我的一個/etc/dhcpd.conf,供大家參考:

  

  ddns-update-style interim;

  ignore client-updates;

  

  key DHCP_UPDATER {

  algorithm HMAC-MD5;

  secret qhB OR5yWo8BTXwk/m4ng;

  };

  

  zone bj.pnx. {

  primary 127.0.0.1;

  key DHCP_UPDATER;

  }

  

  zone 251.168.192.in-addr.arpa. {

  primary 127.0.0.1;

  key DHCP_UPDATER;

  }

  

  subnet 192.168.251.0 netmask 255.255.255.0 {

  range 192.168.251.100 192.168.251.200;

  # --- default gateway

  option routers         192.168.251.254;

  option subnet-mask       255.255.255.0;

  

  #    option nis-domain        "domain.org";

  option domain-name       "bj.pnx";

  option domain-name-servers   192.168.251.63,192.168.251.254;

  

  #    option time-offset       28800; # PRC Standard Time

  #    option ntp-servers       192.168.251.220;

  #    option netbios-name-servers   192.168.1.1;

  

  #    range dynamic-bootp 192.168.0.128 192.168.0.255;

  default-lease-time 21600;

  max-lease-time 43200;

  

  }

  

   幾個要注意的地方: g

   1. "ddns-update-style"

  這個就是動态 DNS 的更新方式,有幾個選項,我用的是 interim ,可以用 man dhcpd.conf 找到另外的幾個選項。

  

   2. "ignore client-updates"

  這個選項是不允許客戶機更新 DNS 記錄。當然,也可能允許,但會有一點問題。

  

   3. "key DHCP_UPDATER"

  這個是更新 DNS 的 KEY ,是必須的。其中 algorithm 後的是生成 key 的算法, key 的生成是用 "dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER" 。

  

   4. "zone"

  要更新的 zone ,如果是本機就是 DNS server , primay 就寫 127.0.0.1 ,要是其它機器是 DNS server, 就寫那台機器的 IP 。

  

  别的都是一般 DNS 該有的了,要注意的是一定要有 range 那一行,不然就分不了 IP 啦。

  

  配好以後,可以啟動一下試試, service dhcpd start ,如果沒問題,把 dhcpd 改成開機就啟動, chkconfig --level 2345   dhcpd on 。

  

  二、 bind(named) 的配置。

  關于 bind(named) 配置的文章有很多了。這裡隻把與普通配置不同的地方寫出來。

  下面給我的 named.conf 供大家參考:

  

   // generated by named-bootconf.pl

  

   options {

   directory "/var/named";

  

   // forwarders { 192.168.1.254; };

   // query-source address * port 53;

   };

  

   //

   // a caching only nameserver config

   //

   controls {

   inet 127.0.0.1 allow { localhost; } keys { rndckey; };

   };

  

   key DHCP_UPDATER {

   algorithm HMAC-MD5;

   secret qhB OR5yWo8BTXwk/m4ng;

   };

  

   zone "." IN {

   type hint;

   file "named.ca";

   };

  

   zone "localhost" IN {

   type master;

   file "localhost.zone";

   allow-update { none; };

   };

  

   zone "0.0.127.in-addr.arpa" IN {

   type master;

   file "named.local";

   allow-update { none; };

   };

  

   zone "1.168.192.in-addr.arpa" IN {

   type master;

   file "1.168.192.zone";

   allow-update { key DHCP_UPDATER; };

   };

  

   zone "test.com" IN {

   type master;

   file "test.com";

   allow-update { key DHCP_UPDATER; };

   };

   include "/etc/rndc.key";

  

  其中多了的是

  

   key DHCP_UPDATER {

   algorithm HMAC-MD5;

   secret qhB OR5yWo8BTXwk/m4ng;

   };

  

  這就是更新 dns 要用的 key ,必須和 dhcpd.conf 裡的一樣。

  

  還有就是每個 zone 都可以用 key 來 update 了。

  

  這樣就行了。然後啟動一下試試吧。

  

  你就可以 ping 機器名來找你同僚的機器了。 ==========================================================   LINUX 中的 DHCP 配置檔案資訊 1. DHCP服2. 務的配置

1.  安裝DHCP的服2. 務軟體包

#  mount  /dev/cdrom(插入第二張安裝CD光牒)

#  cd  /mnt/cdrom/RedHat/RPMS

#  rpm  -ivh  dhcp-3.0pl1-23.i386.rpm

相關檔案和目錄:

/var/lib/dhcp目錄   //存放租約檔案。

/etc/dhcpd.conf      //核心配置檔案, 要手工建立。

/var/lib/dhcp/dhcpd.leases //客戶租約的資料庫檔案。

/etc/sysconfig/dhcpd  //配置DHCP的啟動參數。

/etc/sysconfig/dhcrelay  //配置DHCP中繼代理。

/etc/rc.d/init.d/dhcpd (/etc/init.d/dhcpd):DHCP服務的啟動腳本

3.  /etc/dhcpd.conf

#  vi  /etc/dhcpd.conf

格式:

選項/參數(放在所有作用域之上的選項/參數,作用範圍是整個DHCP伺服器)

聲明 {

選項/參數

}

說明:

(1) 聲明

 subnet  網絡号  netmask  子網路遮罩  {n ……..}

功能:定義子網 (定義作用域 )

注意:網絡号必須與伺服器的網絡号相同,如果伺服器有多塊網卡時,必須為每一個網卡都建立一個相同網絡号的子網,但是不用配置設定位址的子網可以不定義位址範圍

n range 起始IP位址   終止IP位址;

功能:定義作用域範圍

注意:subnet聲明中至少有一個range,也可以在一個subnet中有多個range,但多個range所定義IP範圍不能重複。

n   {………}nhost  主機名

功能:定義保留位址

注意:通常放在subnet聲明中

 groupn {……..}

功能:定義組參數

注意:常用于包含host聲明和subnet聲明

 稱n shared-network  名n {………..}

功能:設定DHCP伺服器多個IP子網共享同一個實體網絡

注意:通常用于包含多個subnet聲明

(2) 參數

n ddns-update-style  (none|ad-hoc|interim) ;

功能:定義動态更新類型

注意:none  表示不支援動态更新

ad-hoc  表示特殊 更新模式

interim  表示互動更新模式

在檔案中必須包含該參數,且放在第一行

n ignore  client-updates;

功能:忽略客戶機更新

注意:該選項隻能作為伺服器選項

n default-lease-time   數字 ;

功能:指定預設位址租約

注意:可以作為伺服器選項和作用域選項,預設機關為秒

n max-lease-time  數字;

功能:指定最長的位址租期

注意:可以作為伺服器選項和作用域選項,預設機關為秒

 hardware n  硬體類型  硬體位址;

功能:指定硬體接口類型及硬體位址

注意:硬體類型可以取ethernet/token-ring

硬體位址為網卡位址的MAC位址

該選項隻能用于host聲明中

n fixed-address  ip位址;

功能:定義DHCP客戶機指定的IP位址

注意:該選項隻能用于host聲明中

n  ;nserver-name  主機名

功能:通知DHCP客戶機伺服器的主機名

注意:可以作為伺服器選項和作用域選項

(3) 選項

n  ”;noption  domain-name   “域名

功能:為客戶機指明DNS域名

注意:可以作為伺服器選項和作用域選項

n noption  domain-name-servers  ip位址[, ip位址…………];

功能:指定客戶機的DNS伺服器的位址

注意:可以作為伺服器選項和作用域選項

n  ”;noption  host-name  “主機名

功能:為客戶機指定主機名

注意:可以作為伺服器選項和作用域選項

n  ip位址……….];noption  routers  ip位址[,

功能:為客戶機指定預設網關

注意:可以作為伺服器選項和作用域選項

n noption   netbios-name-servers  ip位址[, ip位址……..];

功能:為客戶機指定WINS伺服器位址

注意:可以作為伺服器選項和作用域選項

n option  broadcast-address  廣播位址;

功能:設定客戶機的廣播位址

注意:可以作為伺服器選項和作用域選項

n option  subnet-mask  子網路遮罩;

功能:設定客戶機的子網路遮罩

注意:可以作為伺服器選項和作用域選項

n noption  nis-domain   “名 稱”;(應用于LINUX客戶機)

功能:定義客戶機的所屬NIS域的名稱

注意:可以作為伺服器選項和作用域選項,且隻對unix/linux客戶機有效

n noption  nis-servers  ip位址[, ip位址……];

功能:定義客戶機的NIS域伺服器的位址

注意:可以作為伺服器選項和作用域選項,且隻對unix/linux客戶機有效

執行個體:設定dhcpd.conf檔案,達到以下要求:

(1) 不(2) 支援dns動态更新,且忽略客戶機的更新

(3) 服(4) 務器的預設位址租約時間為3600秒,(5) 最大位址租約時間為7200秒

(6) 所有作用域的客戶機字尾域名(7) 為abc.com,DNS服(8) 務器位址為192.168.0.254

(9) 所有作用域的客戶機預設網關位址192.168.0.1

(10) 定義作用域192.168.0.0子網,(11) 位址掩碼為255.255.255.0,位址範圍為192.168.0.2-----192.168.0.250

(12) 保留192.168.0.0子網中的192.168.0.8給以太網卡實體位址為00:E0:4C:70:33:65的客戶機

#vi   /etc/dhcpd.conf

ddns-update-style  none;

ignore  client-updates;

default-lease-time   3600;

max-lease-time   7200;

option routers 192.168.0.1;

option domain-name “abc.com”;

option domain-name-servers  192.168.0.254;

subnet  192.168.0.0  netmask  255.255.255.0 {

range  192.168.0.2  192.168.0.250;

host  c1 {

hardware   ethernet  00:E0:4C:70:33:65;

fixed-address  192.168.0.8;

}

}

4. 設定DHCP守護程序的工作參數

#vi   /etc/sysconfig/dhcpd

DHCPDARGS=eth0(設定DHCP守護程序監聽網卡接口)

5. 啟動DHCP服6. 務器

#service dhcpd  start

3. DHCP用戶端的配置

1. Linux用戶端

(1) 設定網卡采用dhcp啟動協定,(2) 自動擷取ip位址資訊

#vi   /etc/sysconfig/network-scripts/ifcfg-ethX(X可以0,1,2……)

修改BOOTPROTO為:

BOOTPROTO=dhcp

(3) 擷取IP位址

#ifdown ethX ;ifup ethX  (X可以取0,1,2,……)

注意:linux系統的dhcp用戶端使用dhclient腳本來擷取IP位址資訊

2. Windows用戶端

(1) 右擊網路上的芳鄰----屬性------輕按兩下tcp/ip協定----選擇“自動獲動IP位址”

(2) c:/>ipconfig/release

c:/>ipconfig/renew

三、DHCP中繼代理設定

1、#vi   /etc/sysconfig/dhcrelay

INTERFACES=“接口名”           //設定與DHCP伺服器相連的接口名

DHCPSERVERS=“DHCP伺服器IP”   //設定DHCP伺服器的位址

2、#service  dhcrelay   start

繼續閱讀