DHCP在企業網絡中的應用

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網網絡協議,使用UDP協議工作, 主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作爲對所有計算機作中央管理的手段,在RFC 2131中有詳細的描述。DHCP3個端口,其中UDP67UDP68爲正常的DHCP服務端口,分別作爲DHCP ServerDHCP Client的服務端口

工作模式:

1.manual 

Mac 與ip地址捆綁,需要手工一個一個輸入,但是地址利用率低。

  1. Automatic

dhcp server做地址池,只需要寫出起始地址和結束地址,不需要一個一個輸入。Dhcp client 連接後會被永久記錄,造成地址利用率低。

  1. Dynamic

相比與第二種多了地址租期,地址利用率提高了。

拓撲圖

DC967F65F4C544369B7A0847FE2DC7FE 

原理:

1 dhcpdiscover: 此爲client開始DHCP過程中的第一個請求報文  
2 dhcpoffer : 此爲server dhcpdiscover 報文的響應  
3 dhcprequst : 此爲client dhcpoffer 報文的響應  
4 dhcpdeclient: client發現server 分配給它的IP地址無法使用,如 IP地址發生衝突時,將發出此報文讓server禁止使用這次分配的IP地址。  
5 dhcpack : server對 dhcprequst 報文的響應,client收到此報文後才真正獲得了IP地址和相關配置信息。  
6 dhcpnack : 此報文是serverclientdhcprequst報文的拒絕響應,client 收到此報文後,一般會重新開始DHCP過程。  
7 dhcprelease :此報文是 client主動釋放IP地址,當server 收到此報文後就可以收回地址分配給其他的client.

Centos  dhcp配置方法

IP[root@wang ~]# mkdir /media/cdrom

[root@wang ~]# mount /dev/cdrom /media/cdrom  掛載光盤 

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@wang ~]# ll |grep dhcp   查找dhcp相關的包  

[root@wang ~]# cd /media/cdrom/Packages/

[root@wang Packages]# ll |grep dhcp

-r--r--r--. 2 root root   838344 Nov 25  2013 dhcp-4.1.1-38.P1.el6.centos.i686.rpm

-r--r--r--. 3 root root   145240 Nov 25  2013 dhcp-common-4.1.1-38.P1.el6.centos.i686.rpm

-r--r--r--. 2 root root   154624 Jul  3  2011 sblim-cmpi-dhcp-1.0-1.el6.i686.rpm

[root@wang Packages]# rpm -qlp dhcp-4.1.1-38.P1.el6.centos.i686.rpm  查找猜想的安裝包內容進一步確認安裝包是不是所需要的額

/usr/sbin/dhcpd

/usr/sbin/dhcrelay

/usr/share/doc/dhcp-4.1.1

/usr/share/doc/dhcp-4.1.1/3.0b1-lease-convert

/usr/share/doc/dhcp-4.1.1/IANA-arp-parameters

可以看出是所需要的

[root@wang Packages]# yum --disablerepo=\* --enablerepo=c6-media install dhcp-4.1.1-38.P1.el6.centos.i686.rpm -y  安裝軟件包

[root@wang Packages]# vim /etc/dhcp/dhcpd.conf

5A8507EA107E4B9DA2B4CC0D0987C36E 

D5090A318EA147FBBB04200FE4977F92 

:r  /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  在vim地行模式模式下讀取例子文件

然後根據例子說明配置dhcp參數

subnet 192.168.2.0 netmask 255.255.255.0 {

    range 192.168.2.100 192.168.2.199;   //dhcp域範圍

    option routers 192.168.2.1;       //dhcp 網關

    option domain-name-servers 1.1.1.1, 2.2.2.2;   //dhcp dns

    option domain-name "wang.com";    //dhcp 域名

 }

[root@wang Packages]# service dhcpd configtest  測試配置文件是否正確,如果不正確將會提示錯誤地方,進行修改即可

也可以在 /var/log/messages 文件中查詢錯誤內容即

[root@wang Packages]# tail -f -n 20 /var/log/messages

[root@wang Packages]# iptables -L  查看防火牆規則,如果有的話需要將防火牆關閉

[root@wang Packages]# service iptables stop

[root@wang Packages]# setenforce 0   將控制規則設置爲警告級別

然後打開客戶機測試是否能夠動態獲取ip地址

F2E37D085FB946A79949B30AE6FFA40E 

將客戶機設置爲自動獲取ip地址

D585EC04AD94489A85043F2F4610C5E3 

自動獲取成功

在日誌文件中可以看到相關的信息

Aug  9 17:09:08 wang dhcpd: DHCPOFFER on 192.168.2.100 to 00:0c:29:12:c1:b8 (he-e7e9531dbfcd) via eth0:0

Aug  9 17:09:08 wang dhcpd: DHCPREQUEST for 192.168.2.100 (192.168.2.51) from 00:0c:29:12:c1:b8 (he-e7e9531dbfcd) via eth0:0

Aug  9 17:09:08 wang dhcpd: DHCPACK on 192.168.2.100 to 00:0c:29:12:c1:b8 (he-e7e9531dbfcd) via eth0:0

Aug  9 17:09:08 wang dhcpd: DHCPREQUEST for 192.168.2.100 (192.168.2.51) from 00:0c:29:12:c1:b8 (he-e7e9531dbfcd) via eth0

Aug  9 17:09:08 wang dhcpd: DHCPACK on 192.168.2.100 to 00:0c:29:12:c1:b8 (he-e7e9531dbfcd) via eth0

在客戶端的命令行模式下查看域名

8BB8FB39D08C4E5AA90C1FB8281AE29F 

域名正確

如果需要排除地址,就需要分段進行設置作用域以達到排除的目的。

[root@wang ~]# vim /var/lib/dhcpd/dhcpd.leases    可以查看dhcp服務器分配的地址記錄

如果需要綁定一個ip地址,需要修改

vim /etc/dhcp/dhcpd.conf

subnet 192.168.2.0 netmask 255.255.255.0 {

  range 192.168.2.100 192.168.2.149;    作用域設置

  range 192.168.2.151 192.168.2.199;

  option routers 192.168.2.1;

  option domain-name-servers 1.1.1.1, 2.2.2.2;

  option domain-name "wang.com";

host fantasia {

  hardware ethernet 00:0c:29:12:c1:b8;   綁定的mac地址

  fixed-address 192.168.2.150;       對應mac地址的ip

}

}

然後dhcp客戶端重新獲取ip地址

1A7EF79E674B4651A928B7DDF5AEBBBF 

703E1F908D4C4492ADC824C4798EE096 

獲取192.168.2.50成功

 

Dhcp超級作用域配置方法

 

需求:將多個小的作用域綁定爲一個大的作用域

比如講192.168.1.0/24192.168.2.0/24的作用域綁定到一起

其他的都一樣,就需要就配置文件修改

[root@wang Packages]# vim /etc/dhcp/dhcpd.conf

shared-network  chaoji{    超級作用域包括2個一般作用域

subnet 192.168.2.0 netmask 255.255.255.0 {

  range 192.168.2.100 192.168.2.100;

  option routers 192.168.2.254;

  option domain-name-servers 1.1.1.1, 2.2.2.2;

  option domain-name "wang.com";

}

subnet 192.168.3.0 netmask 255.255.255.0 {

  range 192.168.3.100 192.168.3.100;

  option routers 192.168.3.254;

  option domain-name-servers 1.1.1.1, 2.2.2.2;

  option domain-name "wang2.com";

}

}

因爲我們需要試驗,所以將作用域的ip地址設置爲只有1

[root@wang Packages]# service dhcpd restart

然後進行測試

第一臺客戶端設置爲自動獲取ip

48B267E7C32746F7854DEA90ECAF1E1B 

2臺客戶端也設置爲自動獲取ip

7E57E64282B149B3A7299ECBCAF6DE8C 

分別獲取了地址池的2個ip地址,試驗成功!

DHCP 中繼

如果有多個不同的vlan獲取dhcp,則需要dhcp中繼技術。

實現此技術既可以用虛擬機模擬實驗,也可以用路由器,交換機實驗。

用虛擬機模擬實驗:

0B8E0F9E11CC47DA99EE099C812E02C3 

先配置dhcp服務器:

[root@wang ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 先編輯網卡,將網關設置爲192.168.2.1

3D1B6266A6C24060B6BDABB6734DBD73添加一個網關即可

[root@wang ~]# service network restart  重啓網絡

[root@wang ~]# service iptables stop  關閉防火牆

[root@wang ~]setenforce 0   將控制規則設置爲警告級別

[root@wang ~]# vim /etc/dhcp/dhcpd.conf   編輯dhcp配置文件

subnet 192.168.3.0 netmask 255.255.255.0 {

  range 192.168.3.2 192.168.3.254;

  option routers 192.168.3.1;

  option domain-name-servers 1.1.1.1, 2.2.2.2;

  option domain-name "vmnet2.com";

}

subnet 192.168.4.0 netmask 255.255.255.0 {

  range 192.168.4.2 192.168.4.254;

  option routers 192.168.4.1;

  option domain-name-servers 1.1.1.1, 2.2.2.2;

  option domain-name "vmnet3.com";

}

subnet 192.168.2.0 netmask 255.255.255.0 {

}           編輯2個作用域  網段分別是192.168.3.0/24   192.168.4.0/24  網關是dhcp中繼服務器各個網卡的ip,然後必須有自己網段的空作用域才能開啓dhcp

[root@wang ~]# service dhcpd restart

Starting dhcpd:                                            [  OK  ]

重啓dhcp即可

再配置dhcp中繼服務器:

windows server2003 實現:

55A6922A01594B76B3621FB44061BD58 

現在網絡適配器裏面添加2塊網卡,一共3塊網卡。

7F92BBC17C3D4DD6A78D5CF38C882BC5 

3塊網卡上配置3個對應的ip地址:

731DF495350049EA9E74B6E43C9725D4 

2E9B196187E14FDFB37B4AE467F85F70 

進入路由和遠程訪問

5002751502984610B815BAE612079E29 

配置並啓用路由和遠程訪問

71D216A0498149A9B6E773F9BE565C2B 

下一步

D4D45B39BB4A4ED59240137C14A21ED9 

自定義配置

8B5D13AB17894266BB31BB4E4C882EBF 

3DE5A13D86B443A5A3A6B5F73C046F1A 

完成

EC7B08B9407E4DB09739984D82D25F97 

右鍵常規→新增路由協議

04294059660E4F1C99EFA54C44F20E81 

選擇DHCP中繼代理程序

0B0E21CE6ED34AF78E8CB4158C56B95D 

右鍵dhcp中繼代理→新增接口

然後添加vmnet2vmnet3

DC70CF5042B448F0929E1BCBA9FB73A0 

 

4DB1CFEF56B64D69BEAA0265BC7C317F 

右鍵dhcp中繼服務器→屬性

3DCC8EFB01EA403DBB4A03BA37F3C5FE 

添加dhcp server的ip地址

進行測試

再打開一臺虛擬機,將網卡設置爲vmnet2,然後自動獲取ip地址

BAFBCE8AFAC64B66BF3F5231AD9123A8 

成功

然後將網卡設置爲vmnet3,自動獲取

803E1B574FC64F35A1F3550F565713AC 

成功

如果dhcp中繼服務器設置爲linux,而不用windows server 2003需要:

同樣的將linux添加2個網卡,成爲3個網卡,將ip地址分別設置爲:

eth0      Link encap:Ethernet  HWaddr 00:0C:29:C9:67:5B  

          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fec9:675b/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:137 errors:0 dropped:0 overruns:0 frame:0

          TX packets:112 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:14169 (13.8 KiB)  TX bytes:17121 (16.7 KiB)

          Interrupt:19 Base address:0x2000 

 

eth1      Link encap:Ethernet  HWaddr 00:0C:29:C9:67:65  

          inet addr:192.168.3.1  Bcast:192.168.3.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fec9:6765/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:1 errors:0 dropped:0 overruns:0 frame:0

          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:253 (253.0 b)  TX bytes:468 (468.0 b)

          Interrupt:19 Base address:0x2080 

 

eth2      Link encap:Ethernet  HWaddr 00:0C:29:C9:67:6F  

          inet addr:192.168.4.1  Bcast:192.168.4.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fec9:676f/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:1 errors:0 dropped:0 overruns:0 frame:0

          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:253 (253.0 b)  TX bytes:468 (468.0 b)

          Interrupt:16 Base address:0x2400 

[root@station21 ~]# vim /etc/sysctl.conf   開啓路由功能

0007F5C806054024AE572FE9238BF2D6 

net.ipv4.ip_forward = 0設置爲1

需要安裝相關的軟件包

[root@station21 ~]# mkdir /media/cdrom

[root@station21 ~]# mount /dev/cdrom /media/cdrom

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@station21 ~]# cd /media/cdrom/Packages/   掛載光盤

[root@station21 Packages]# yum --disablerepo=\* --enablerepo=c6-media install dhcp -y  安裝軟件包

[root@station21 Packages]# vim /etc/sysconfig/dhcrelay  進入dhcrelay配置dhcp中繼

# DHCPv4 only

INTERFACES="eth2 eth1"   需要中繼的網卡接口

# DHCPv4 only

DHCPSERVERS="192.168.2.50"  dhcp服務器的ip地址

[root@wang ~]# service iptables stop  關閉防火牆

[root@wang ~]setenforce 0   將控制規則設置爲警告級別

[root@station21 Packages]# service dhcrelay start

Starting dhcrelay:                                         [  OK  ]開啓dhcp中繼

[root@station21 Packages]# netstat -tupln |grep dhc  查看端口,判斷是否啓動dhcp中繼

測試:

開啓一臺虛擬機,網卡設置爲vmnet2,設置爲自動獲取ip

F5CF882251714B94AC4FD2BE7838B6CA 

獲取成功

再開啓一臺虛擬機,網卡設置爲vmnet3,設置爲自動獲取ip

F4512AD67852453FA95050717D7CEF7B 

獲取成功

如果用交換機路由器實驗,則步驟爲:

實驗拓撲:

DAFA8283101A42D8B674E0A9F0A9D935 

路由器:

[Quidway]Int eth0/0/0.1

[r1-Ethernet0/0.1]ip add 192.168.2.1 24

[r1-Ethernet0/0.1]dhcp select relay 

[r1-Ethernet0/0.1]ip relay address 192.168.2.50

[r1-Ethernet0/0.1]Vlan-type dot1q vid 10

[r1-Ethernet0/0.1]int eth0/0.2

[r1-Ethernet0/0.2]ip address 192.168.3.1 24

[r1-Ethernet0/0.2]dhcp select relay 

[r1-Ethernet0/0.2]ip relay address 192.168.2.50

[r1-Ethernet0/0.2]vlan-type dot1q vid 20

[r1-Ethernet0/0.2]int eth0/0.3 

[r1-Ethernet0/0.3]ip address 192.168.4.1 24

[r1-Ethernet0/0.3]dhcp select relay 

[r1-Ethernet0/0.3]ip relay address 192.168.2.50

[r1-Ethernet0/0.3][r1-Ethernet0/0.2]vlan-type dot1q vid 30

 

交換機

interface Ethernet1/0/1

 port access vlan 10

#

interface Ethernet1/0/2

 port access vlan 20

#

interface Ethernet1/0/3

 port access vlan 30

interface Ethernet1/0/24

 port link-type trunk                     

 port trunk permit vlan all

測試

Linux Dhcp服務器插入交換機eth1/0/1

客戶機插入eth1/0/2或者1/0/3測試

Dhcp服務器打開tail -f /var/log/message 查看過程

76F0AAAD5FAE4E379240CCC28109952F獲取成功


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章