想要學好DHCP服務器的內容,對於它的基本概念和配置內容我們都要清楚。那麼這裡我們先來簡單了解一下DHCP。DHCP基於客戶/服務器模式。當DHCP客戶端啟動時,它會自動與DHCP服務器通信,由DHCP服務器為DHCP客戶端提供自動分配IP地址的服務。當然高級的DHCP,不光只是分配地址這麼簡單,今天我們的課程只是架設一個普通的DHCP的服務器, client端能獲取到上網必須的網絡配置信息。安裝了DHCP服務軟件的服務器稱為DHCP服務器,而啟用了DHCP功能的客戶機稱為DHCP客戶端,DHCP服務器是以地址租約的方式為DHCP客戶端提供服務的,它有以下兩種方式:限定租期 和 永久租用。學DHCP服務器,就一定要知道DHCP服務器的工作原理:
DHCP DISCOVER(DHCP發現)
DHCP OFFER(DHCP提供)
DHCPREQUEST(DHCP請求)
DHCPACK(DHCP確認)
這個4個步驟,是client獲取IP地址必經的步驟
DHCP提供的時候,服務器已經給client分配了IP地址,第二部分分給client的IP地址是臨時的,client得到這個IP地址後,會發出DHCP請求,請求租用這個地址,服務器收到請求後,就會正式把這個地址分配給client,繼而向client發送DHCP確認。 這個四步主要是應對同一網絡多個DHCP服務器。
後台進程:dhcpd
腳本:/etc/rc.d/init.d/dhcpd
使用端口:67
所需RPM包:dhcp
相關RPM包:
-
dhcp-devel-3.0.5-7.el5.i386.rpm
-
dhcpv6-0.10-33.el5.i386.rpm
-
dhcpv6_client-0.10-33.el5.i386.rpm
配置文件:/etc/dhcpd.conf
日志:/var/log/xferlog
再提示一點吧,網絡啟動方式也叫bootpc,這樣獲取的IP地址是不會受服務器的租期限制的,它永遠有效好了,我們先安裝DHCP服務器
一、下載或從光盤上找到DHCP服務安裝包。
二、安裝(dhcp*代表其安裝包名稱):
-
# rpm -ivh dhcp*
三、配置DHCP文件:
-
復制/usr/share/doc/dhcp*/dhcpd.conf.sample 到/etc目錄下,更名為:dhcpd.conf
-
# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf
-
當然,也可以先vi /etc/dhcpd.conf,然後在末行模式運行以下命令:
-
r /usr/share/doc/dhcp*/dhcpd.conf.sample
-
這樣這個dhcpd.conf.sample文件的內容就導進來了。
-
打開dhcpd.conf,要修改的幾個地方:
-
subnet 後面接的是你所定義的網段,要與本機的IP地址同網段,
-
每一語句以分號“;”結尾,不要忘記。
-
例如:我的IP是“192.168.2.11”,下面是我的配置文件:
-
ddns-update-style interim;
-
ignore client-updates;
-
subnet 192.168.2.0 netmask 255.255.255.0 {
-
option routers 192.168.2.1;
-
option subnet-mask 255.255.255.0;
-
option nis-domain "domain.org";
-
option domain-name "domain.org";
-
option domain-name-servers 192.168.2.1;
-
option time-offset -18000;
-
range dynamic-bootp 192.168.2.100 192.168.2.254
-
default-lease-time 21600;
-
max-lease-time 43200;
-
filename "/pxelinux.0";
-
next-server 192.168.2.11;
-
host ns {
-
next-server marvin.redhat.com;
-
hardware ethernet 12:34:56:78:AB:CD;
-
fixed-address 207.175.42.254;
-
}
-
}
四、詳細注解:
-
ddns-update-style interim; #定義所支持的DNS動態更新類型(必選),一般我們設置成關閉,
-
#interim和none都是關閉的意思
-
allow/ignore client-updates; #允許/忽略客戶機更新DNS記錄
-
allow/deny unknown-clients; #是否動態分配IP給未知的使用者
-
allow/deny bootp; #是否響應激活查詢
-
allow/deny booting; #是否響應使用者查詢
-
subnet 192.168.2.0 netmask 255.255.255.0 { #設置子網聲明
-
# --- default gateway
-
option routers 192.168.2.1; #設置缺省網關為192.168.2.1
-
option subnet-mask 255.255.255.0; #設置客戶端的子網掩碼
-
option nis-domain "domain.org"; #為客戶設置NIS域
-
option domain-name "domain.org"; #為客戶設置域名
-
option domain-name-servers 192.168.2.1; #為客戶設置域名服務器
-
option time-offset -18000; # Eastern Standard Time #為客戶端指定格林威治時間偏移時間,單位秒,
-
# 該選項可以在全局配置、局部配置均可使用
-
# option ntp-servers 192.168.2.1; #NTP是時間服務器
-
# option netbios-name-servers 192.168.2.1; 設置wins服務器
-
# --- Selects point-to-point node (default is hybrid). Don't change this unless
-
# -- you understand Netbios very well
-
# option netbios-node-type 2; #設置netbios節點類型 我不清楚這個netbios節點是什麼東西
-
range dynamic-bootp 192.168.2.28 192.168.2.254; #設置動態的地址池
-
default-lease-time 21600; #設置缺省的地址租期
-
max-lease-time 43200; #設置客戶端最長的地址租期
-
# we want the nameserver to appear at a fixed address
-
filename "/pxelinux.0"; #開始啟動文件的名稱,應用於無盤安裝,可以是tftp的相對或絕對路徑
-
next-server 192.168.2.11; #This is the name of the server they should get it from
-
#tftp服務器,可以和dhcp服務器不在同一機器上,一般是PXE網絡使用此參數
-
#設置主機聲明
-
host ns {
-
next-server marvin.redhat.com; #設置由於定義服務器從引導文件中裝入的主機名,用於無盤站
-
hardware ethernet 12:34:56:78:AB:CD; #指定dhcp客戶的mac地址
-
fixed-address 207.175.42.254; #給指定的mac地址分配ip
-
}
-
}
五、配置好dhcpd.conf文件後就可以啟動dhcp服務了:
# service dhcpd restart
這時可以用“netstat -nlutp”命令查看dhcp服務是否有啟動。
六、其它相關文件:
1、這個文件/var/lib/dhcpd/dhcpd.leases,可以看到被租出去的IP地址和相關信息。
2、這個文件/etc/sysconfig/dhcpd是指定DHCP服務器監聽的網卡,如果只有一個網卡,一般不用設置 DHCPDARGS=eth0 或者是eth1 ,如果全部監聽就不用管。
3、這個文件/etc/sysconfig/dhcrelay就是設置DHCP中繼的文件,大家打開看看吧。interfaces 就是來自這個端口的DHCP DISCOVER(請求)都會轉發到後面的DHCPSERVERS服務器。設置了DHCP中繼,需要啟動中繼服務:service dhcrelay start
七、在linux客戶機下面,你可以手動配置你的dhcp:
察看你的網絡配置文件,如果你沒有設置為自動啟動聯網,則要修改你的網絡配置文件。
-
# vi /etc/sysconfig/network
-
添加“NETWORKING=yes”(讓引導的時候啟動聯網)
-
或者使用
-
# @echo “NETWORKING=yes”> /etc/sysconfig/network
-
然後再修改你的網卡配置文件
-
/etc/sysconfig/network-scriptes/ifcfg-eth0 文件應該包含這幾行:
-
DEVICE=eth0
-
BOOTPROTO=dhcp
-
ONBOOT=yes