DHCP服務的官方網(wǎng)站https://www./
dhcp=Dynameic Host Configuration Protocol
是基于TCP/IP,用于動態(tài)配置工作站的網(wǎng)絡接口,使工作站的網(wǎng)絡接口管理自動化,可以自動配置主機的IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)及DNS等
TCP/IP信息。工作原理請大家到網(wǎng)上找一下。這里不做介紹。
下面介紹一下DHCP的配置文件
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample 這個是配置文件的樣本,可以直接COPY這個文件到/etc/
dhcpd.conf配置文件中可以進行相當復雜的設置,以滿足不同的應用需求,要了解具體的其他配置項使用方法,可以去查閱dhcp.conf文件的
手冊頁。
dhcpd.conf配置文件詳解
ddns-update-style interim;
# 作用:定義所支持的DNS動態(tài)更新類型。
# none:表示不支持動態(tài)更新
# interim:表示DNS互動更新模式
# ad-hoc:表示特殊DNS更新模式
ignore client-updates;
# 作用:忽略客戶端更新
subnet 192.168.0.0 netmask 255.255.255.0 {
# 作用:定義作用域,指定子網(wǎng)
# 注意:網(wǎng)絡號必須與DHCP服務器的網(wǎng)絡號相同
# --- default gateway
option routers 192.168.0.1;
# 作用:為客戶端指定默認網(wǎng)關(guān)
option subnet-mask 255.255.255.0;
# 作用:設置客戶端的子網(wǎng)掩碼
option nis-domain "domain.org";
# 為客戶設置NIS域
option domain-name "domain.org";
# 為客戶設置域名
option domain-name-servers 192.168.1.1;
# 作用:為客戶端指定DNS服務器地址
option time-offset -18000; # Eastern Standard Time
# 設置偏移時間。
option ntp-servers 192.168.1.1;
# 設置NTP服務器。
option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
# 設置wins服務器
range dynamic-bootp 192.168.0.128 192.168.0.254;
# 作用:指定動態(tài)IP地址范圍
# 注意:可以指定多個range,但多個range所定義IP范圍不能重復
default-lease-time 21600;
# 作用:定義默認IP租約時間為6小時
max-lease-time 43200;
# 作用:定義客戶端IP租約時間的最大值
# we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
# 設置由于定義服務器從引導文件中裝入的主機名,用于無盤站。
hardware ethernet 12:34:56:78:AB:CD;
# 作用:定義網(wǎng)絡接口類型和硬件地址
fixed-address 207.175.42.254;
# 作用:定義DHCP客戶端指定的IP地址
}
# 作用:給客戶端分配固定IP地址
}
租約數(shù)據(jù)庫文件 /var/lib/dhcpd/dhcpd.leases
案例詳解
【案例1】架設一臺DHCP服務器,并按照下面的要求進行配置。
(1)為子網(wǎng)192.168.31.0/24建立一個IP作用域,并將在192.168.31.20~192.168.31.100范圍之內(nèi)的IP地址動態(tài)分配給客戶機。
(2)假設子網(wǎng)中的DNS服務器地址為192.168.31.2,IP路由器地址為192.168.31.1,所在的網(wǎng)域名為example.com,將這些參數(shù)指定給客戶機
使用。
(3)為某臺主機保留192.168.31.50這個IP地址, DNS服務器地址為192.168.31.5 。
這個安全其實就是按要求來改就OK。注意里面是不是有寫錯的,有沒有;結(jié)尾。
下面給出配置文件,最后別忘記了重新啟動DHCPD這個服務?。?/p>
ddns-update-style interim;
ignore client-updates;
subnet 192.168.31.0 netmask 255.255.255.0 {
option routers 192.168.31.1;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.31.2;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.31.20 192.168.31.100;
default-lease-time 21600;
max-lease-time 43200;
host ns {
hardware ethernet 12:34:56:78:AB:CD;#這個MAC地址大家可以用ifconfig 查看,在WIN下可以用ipconfig /all來查看
fixed-address 192.168.31.50;
option domain-name-servers 192.168.31.5;
}
}
【案例2】公司原有機器為250臺,IP地址規(guī)劃為192.168.31.0/24網(wǎng)段,動態(tài)管理網(wǎng)絡IP地址?,F(xiàn)在升級到500臺。如何在保持原有IP地址的規(guī)
劃不變的情況下,可以擴容現(xiàn)有的網(wǎng)絡IP地址。
下面用多作用域來實現(xiàn)。只要在原先的配置文件里面COPY一個出來就OK。

注意一點,服務器的IP就是管理的各網(wǎng)段的網(wǎng)關(guān),也就是說DHCP服務器的網(wǎng)卡擔當網(wǎng)關(guān)功能,然后再打開DHCP服務器的轉(zhuǎn)發(fā)功能。(這是讓兩
個網(wǎng)段的機器可以相互通信)
vim /etc/sysctl.conf
找到net.ipv4.ip_forward = 0 把0改成1
然后就刷新一下 sysctl -p
下面的就是這個案例的配置文件
ddns-update-style interim;
ignore client-updates;
subnet 192.168.31.0 netmask 255.255.255.0 {
option routers 192.168.31.3;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.31.2;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.31.20 192.168.31.100;
default-lease-time 21600;
max-lease-time 43200;
}
subnet 192.168.32.0 netmask 255.255.255.0 {
option routers 192.168.32.3;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.32.2;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.32.20 192.168.32.100;
default-lease-time 21600;
max-lease-time 43200;
}
下面用超級作用域來實現(xiàn)。只要在上面的配置文件里面稍做更改就OK。
ddns-update-style interim;
ignore client-updates;
shared-network test {
subnet 192.168.31.0 netmask 255.255.255.0 {
option routers 192.168.31.1;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.31.2;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.31.20 192.168.31.100;
default-lease-time 21600;
max-lease-time 43200;
}
subnet 192.168.32.0 netmask 255.255.255.0 {
option routers 192.168.32.1;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.32.2;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.32.20 192.168.32.100;
default-lease-time 21600;
max-lease-time 43200;
}
}
以上配置兩個網(wǎng)段不能相互通信,所以要解決這個問題,我們就要用到中繼
DHCP中繼原理及配置
應用場合:
當一個網(wǎng)絡中的主機數(shù)目較大時,手工分配IP不僅麻煩而且容易出錯。DHCP服務的出現(xiàn)大大方便了主機IP地址的分配。現(xiàn)在的企業(yè)組網(wǎng)時
,根據(jù)實際需要來劃分vlan,成了必不可少的一個步驟。如何讓一個DHCP服務器同時為多個網(wǎng)段提供服務,就是我們所要討論的問題。
DHCP中繼原理:
DHCP客戶使用IP廣播來尋找同一網(wǎng)段上的DHCP服務器。當服務器和客戶段處在不同網(wǎng)段,即被路由器分割開來時,路由器是不會轉(zhuǎn)發(fā)這樣
廣播包的。因此可能需要在每個網(wǎng)段上設置一個DHCP服務器,雖然DHCP只消耗很小的一部分資源的,但多個 DHCP服務器,畢竟要帶來管理上
的不方便。DHCP中繼的使用使得一個DHCP服務器同時為多個網(wǎng)段服務成為可能。
為了讓路由器可以幫助轉(zhuǎn)發(fā)廣播請求數(shù)據(jù)包,使用ip help-address命令。通過使用該命令,路由器可以配置為接受廣播請求,然后將其以
單播方式轉(zhuǎn)發(fā)個指定IP地址。缺省情況下ip help-address轉(zhuǎn)發(fā)以下8種UDP服務:
1.Time 2.Tacacs 3.DNS 4.BOOTP/DHCP服務器
5. BOOTP/DHCP客戶 6.TFTP 7.NetBios名稱服務 8. NetBios數(shù)據(jù)報服務
在DHCP廣播情況下,客戶在本地網(wǎng)段廣播一個 DHCP發(fā)現(xiàn)分組。網(wǎng)關(guān)獲得這個分組,如果配置了幫助地址,就將DHCP分組轉(zhuǎn)發(fā)到特定地址。

下面是具體的步驟
把DHCP服務器的IP改為192.168.31.10
我們用另外一臺LINUX系統(tǒng)的DHCP軟件來實現(xiàn)這個中繼功能。
首先中繼要有兩塊網(wǎng)卡,IP為各網(wǎng)段的網(wǎng)關(guān),并安裝了DHCP這個軟件,其實這個就是dhcrelay這個配置文件
我們編輯一下
vim /etc/sysconfig/dhcrelay
在
INTERFACES="eth0 eth1" #指定中繼監(jiān)聽的網(wǎng)絡設備
DHCPSERVERS="192.168.31.10" #指定DHCP服務器的IP
同樣要開啟轉(zhuǎn)發(fā)功能
vim /etc/sysctl.conf
找到net.ipv4.ip_forward = 0 把0改成1
然后就刷新一下 sysctl -p
DHCP服務器上的配置文件不用更改。
通過中繼就能實現(xiàn)不同網(wǎng)關(guān)的通信了。
下面給出了一些中繼的常見位置,僅供大家參考
