企業網DHCP服務器的應用
1. DHCP定義
DHCP的全稱是Dynamic Host Configuration Protocol,是一個局域網的網絡協議,使用UDP協議工作,主要是用來給網絡客戶機分配動態的ip地址。這些被分配的ip地址都是從DHCP服務器預先保留的一個或多個地址組成的地址集,並且它們一般都是一段連續的地址。
DHCP服務器提供DHCP服務使用的是UDP67端口。而客戶機使用的是UDP68端口。
2.地址分配方式
Manual Allocation
人工分配,或得的IP地址也叫靜態地址,網絡管理員爲在這個網絡中某些少數特定的計算機或網絡設備綁定固定的ip地址,且地址永不會過期。但是這種分配方式地址利用率低。
Automatic Allocation
自動分配,其情形是:一旦DHCP客戶端第一次成功的從DHCP服務器獲得這個ip地址後,就永久使用這個地址。這種分配方式地址使用效率也比較低。
Dynamic Allocation
動態分配,當DHCP客戶端第一次從DHCP服務器端租用到ip地址後,並非一直使用該地址,只要足月到期,客戶端就得釋放這個ip地址,以給其它設備使用。這種分配方式利用率較高。
我們一般也最經常使用的就是第三種動態獲得
3.分配過程
客戶端從服務器獲得IP地址經過四個步驟
(1)DHCPDISCOVER (DHCP 發現)
(2)DHCPOFFER (DHCP 提供)
(3)DHCPREQUEST (DHCP請求)
(4)DHCPPACK (DHCP 確認)
在Linux下實現DHCP服務器
Linux操作系統爲:Centos 6.4
案例:
在192.168.3.0網段動態分配IP地址
地址池 192.168.3.200 ~192.168.3.240
子網掩碼 :255.255.255.0
網關 :192.168.3.254
dns指向 :222.222.222.22
222.222.222.21
過程:
先安裝DHCP服務:
[root@localhost ~]# yum --disablerepo=\* --enablerepo=c6-media install dhcp
我們查詢一下DHCP的安裝目錄
[root@localhost ~]# rpm -qal dhcp
/etc/dhcp
/etc/dhcp/dhcpd.conf //這個就是dhcp服務的配置文件
/etc/dhcp/dhcpd6.conf
/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample //這個文件是配置dhcp服務的樣例文件,我們可以參考這個樣例文件對dhcp進行配置
/usr/share/doc/dhcp-4.1.1/dhcpd6.conf.sample
我們來看一下這個配置文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
1 #
2 # DHCP Server Configuration file.
3 # see /usr/share/doc/dhcp*/dhcpd.conf.sample
4 # see 'man 5 dhcpd.conf'
5 #
~
這個文件裏總共有五行並且都是註釋。第二行指明這是一個dhcp服務的配置文件,第三行讓我們參考 /usr/share/doc/dhcp*/dhcpd.conf.sample這個文件,就是我們剛纔說的樣例文件。
我們把這個樣例文件讀取到這個配置文件中
:read /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample //在/etc/dhcp/dhcpd.conf中的底行模式下執行這個讀取命令
讀取之後我們我們可看到N多行的配置說明,而今天我們做的這個是個簡單的dhcp實現,所以我們不管那麼多,只配置可以實現我們這個的案例的都可以了,我們根據樣例改一下配置
修改後:
保存退出
配置完之後我們都要對這個配置文件進行語法檢測,我們可以這樣來做
[root@localhost ~]# service dhcpd //查看都有哪些選項
Usage: /etc/init.d/dhcpd {start|stop|restart|force-reload|condrestart|try-restart|configtest|status}
[root@localhost ~]# service dhcpd configtest //configtest 配置測試
Syntax: OK
啓動dhcpd服務
[root@localhost ~]# service dhcpd start
Starting dhcpd: [ OK ]
[root@localhost ~]# chkconfig dhcpd on 設置爲開機自啓動
接下來,我們測試一下,我們用一臺windows操作系統的機器從DHCP服務器來獲得地址。
我是在VMware虛擬機上做的實驗,需要把虛擬機的網卡編輯裏,不能勾選使用本地DHCP服務將ip地址分配給虛擬機。否則的話測試時不能從我們配置的DHCP服務器上獲取到IP地址。
在windows 2008 server測試結果:
我們可以看到獲得的ip地址爲:192.168.3.200 子網掩碼爲:255.255.255.0
網關:192.168.3.254 DNS:222.222.222.22 222.222.222.21
DHCP服務器搭建成功!
案例二:DHCP超級作用域(對於網絡中大量主機使用)
DHCP服務器的搭建參考案例一
編輯DHCP服務器配置文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
測試語法是否正確,如果正確,重啓DHCP服務器
[root@localhost ~]# service dhcpd configtest
Syntax:OK
[root@localhost ~]# service dhcpd restart
Shutting down dhcpd: [ OK ]
Starting dhcpd: [ OK ]
主機一獲取地址:
主機二獲取地址:
案例三:DHCP中繼
dhcp中繼
在大型的網絡中,可能會存在多個子網。DHCP客戶機通過網絡廣播消息獲得DHCP服務器的響應後得到IP地址。但廣播消息是不能跨越子網的。因此,如果DHCP客戶機和服務器在不同的子網內,客戶機還能不能向服務器申請IP地址呢?這就要用到DHCP中繼代理。DHCP中繼代理實際上是一種軟件技術,安裝了DHCP中繼代理的計算機稱爲DHCP中繼代理服務器,它承擔不同子網間的DHCP客戶機和服務器的通信任務。
拓撲圖:
所需設備:
H3C F100-C 防火牆1臺
華爲quidway S3526 交換機1臺
CentOS(DHCP Server)配置:
編輯DHCP服務器配置文件
DHCP服務器在CentOS下實現,配置參考案例一
SW1配置:
[Quidway]sysname SW1
[SW1]vlan 10
[SW1-vlan10]port e0/10
[SW1-vlan10]vlan 20
[SW1-vlan20]port e0/20
[SW1-vlan20]vlan 30
[SW1-vlan30]port e0/24
[SW1-vlan30]quit
[SW1]int e0/22
[SW1-Ethernet0/22]port link-type trunk
[SW1-Ethernet0/22]port trunk permit vlan all
[SW1-Ethernet0/22]dis vlan
Now, the following VLAN exist(s):
1(default), 10, 20, 30
H3C配置:
<H3C>system-view
System View: return to User View with Ctrl+Z.
[H3C]int eth0/0.1
[H3C-Ethernet0/0.1]vlan-type dot1q vid 10
[H3C-Ethernet0/0.1]ip add 192.168.10.1 24
[H3C-Ethernet0/0.1]int eth0/0.2
[H3C-Ethernet0/0.2]vlan-type dot1q vid 20
[H3C-Ethernet0/0.2]ip add 192.168.20.1 24
[H3C-Ethernet0/0.2]int eth0/0.3
[H3C-Ethernet0/0.3]vlan-type dot1q vid 30
[H3C-Ethernet0/0.3]ip add 192.168.30.1 24
[H3C-Ethernet0/0.3]quit
[H3C]firewall zone trust
[H3C-zone-trust]add int eth0/0.1
[H3C-zone-trust]add int eth0/0.2
[H3C-zone-trust]add int eth0/0.3
[H3C-zone-trust]quit
[H3C]undo insulate
[H3C]ping 192.168.30.100
PING 192.168.30.100: 56 data bytes, press CTRL_C to break
Reply from 192.168.30.100: bytes=56 Sequence=1 ttl=64 time=13 ms
Reply from 192.168.30.100: bytes=56 Sequence=2 ttl=64 time=6 ms
Reply from 192.168.30.100: bytes=56 Sequence=3 ttl=64 time=5 ms
Reply from 192.168.30.100: bytes=56 Sequence=4 ttl=64 time=5 ms
Reply from 192.168.30.100: bytes=56 Sequence=5 ttl=64 time=5 ms
--- 192.168.30.100 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 5/6/13 ms
[H3C]dhcp enable
DHCP task has already been started!
[H3C]dhcp select relay interface eth0/0.1 to eth0/0.2
[H3C]int eth0/0.1
[H3C-Ethernet0/0.1]ip relay add 192.168.30.100
[H3C-Ethernet0/0.1]int eth0/0.2
[H3C-Ethernet0/0.2]ip relay add 192.168.30.100
技術部主機1獲取地址:
市場部主機1獲取地址: