我們在辦室的時候,有時會去通路别的機器,如果是在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