环境:centos 64

 

案例一:

 

192.168.2.0网络动态分配地址

 

地址池: 192.168.2.200 192.168.2.240

 

子网掩码:255.255.255.0

 

网关:192.168.2.254

 

dns指向:202.102.224.68 203.102.227.68

 

原理:dhcpcover  客户端向各个dhcp服务器发送广播,看谁可以分配地址。

 

         dhcpoffer 各个服务器发送dhcpoffer,但是只包含ip地址,没有掩码等信息。

 

         dhcprequest 向第一个送给他地址的服务器要一个地址,而且还会告诉其他服务器自己已经有地址,不需要他们分配了。

 

          dhcpack 第一个也就是最先给客户端ip地址的服务器,会给客户端一个地址。

 

拓扑图:

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento

                                      图1

 

 

实现:

 

.

 

1.安装dhcp

 

先挂载,在再安装 

 

mount  /dev/cdrom /media/cdrom

 

[root@host1 ~]# yum install dhcp

 

2.查看dhcp软件包的详细文件信息:

 

[root@host1 ~]# rpm -ql dhcp |less

 

其中:

 

/etc/dhcp/dhcpd.conf   // dhcp服务器的配置脚本:

 

/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample //样例文件,可以参考它进行配置。

 

3.

 

1 #

 

  2 # DHCP Server Configuration file.

 

  3 #   see /usr/share/doc/dhcp*/dhcpd.conf.sample

 

  4 #   see 'man 5 dhcpd.conf'

 

  5 #

 

底行模式下执行:r /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample把其读取到/etc/dhcp/dhcpd.conf中。

 

第一处修改:

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_02

                             图2

 

修改为

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_03

                               图3

 

第二处修改:

 

删掉28,29 2行,因为是空作用域。

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_04

                            图4

 

第三处修改:删除掉第38行到最后的所有内容。

 

底行模式下执行38$d

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_05

                            图5

 

第4处修改

 

 

30到34行修改为:

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_06

                           图6

 

注:sbunet是作用域,作用一个网段,option routers 是默认网关。

 

注意:这个作用域里面的网段一定要和你的虚拟机的网卡是同一个网段。

 

我的虚拟机网卡是2.0网段,seunet后面也应该是2.0网段的,这样DHCP服务才能工作。

 

 

1.service dhcpd 下面有什么选项 

 

[root@host1 ~]# service dhcpd 

 

Usage: /etc/init.d/dhcpd {start|stop|restart|force-reload|condrestart|try-restart|configtest|status}

 

选项configtest 可以测试语法是否正确

 

[root@host1 ~]# service dhcpd configtest

 

Syntax: OK

 

2.启动dhcpd服务

 

[root@host1 ~]# service dhcpd start

 

开机自启动dhcpd服务

 

[root@host1 ~]# chkconfig dhcpd on

 

查看和dhcp有关的端口状态

 

[root@host1 ~]# netstat -tupln |grep dhcp

 

udp        0      0 0.0.0.0:67                  0.0.0.0:*                               1826/dhcpd 

 

.

 

建一个windows server 2003虚拟机进行测试,看是否能通过dhcp获得一个ip地址.

 

双击本地连接,双击Internet 协议(TCP/IP,选择自动获得IP地址,自动获得DNS服务器地址。

 

 

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_07

                                    图7

 

tail -f  /var/log/messages  通过查看日志可以清楚地看到DHCP的工作过程。dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_08

 

                                     图8

 

双击本地连接,选择支持,可以看到虚拟机已经通过DHCP服务器获得了地址。

 

详细信息选项可以查看详细信息。

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_09

 图9

 

虚拟机里

 

ipconfig /renew 可以重新获得地址。

 

.也可以给这个虚拟机一个静态绑定的地址,比如把192.168.2.211永久分配给它。

 

查看样例文件来获得帮助!

 

vim  /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

 

格式下面这样的:

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_10

                    图10

 

7578行内容追加到/etc/dhcp/dhcpd.conf里面。

 

:75,78 w >>/etc/dhcp/dhcpd.conf

 

编辑文件

 

vim /etc/dhcp/dhcpd.conf

 

通过查看日志知道虚拟机网卡的MAC,这里面的00:0c:29:c1:53:c0 就是我的虚拟机的MAC.

 

 

Apr 27 12:22:44 host1 dhcpd: DHCPRELEASE of 192.168.2.200 from 00:0c:29:c1:53:c0 (kkkk-804lqin0ew) via eth0 (found)

 

Apr 27 12:22:50 host1 dhcpd: DHCPDISCOVER from 00:0c:29:c1:53:c0 via eth0

 

Apr 27 12:22:50 host1 dhcpd: DHCPOFFER on 192.168.2.200 to 00:0c:29:c1:53:c0 (kkkk-804lqin0ew) via eth0

 

Apr 27 12:22:50 host1 dhcpd: DHCPREQUEST for 192.168.2.200 (192.168.2.60) from 00:0c:29:c1:53:c0 (kkkk-804lqin0ew) via eth0

 

Apr 27 12:22:50 host1 dhcpd: DHCPACK on 192.168.2.200 to 00:0c:29:c1:53:c0 (kkkk-804lqin0ew) via eth0

 

进而把MAC换成虚拟机的。

 

绑定地址也换成192.168.2.211,

 

38 host fantasia {

 

 39   hardware ethernet 00:0c:29:c1:53:c0;

 

 40   fixed-address 192.168.2.211;

 

 41 }

 

再把3841行剪切到声明里面(subnet里面)就好了。还有由于绑定的地址211range200240之间,所以要把它排除掉,即它不参与dhcp分配。

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_11

                       图11

 

测试语法是否正确。

 

[root@host1 ~]# service dhcpd configtest

 

Syntax: OK

 

重启dhcpd服务。

 

[root@host1 ~]# service dhcpd restart

 

\Shutting down dhcpd:                                      [  OK  ]

 

Starting dhcpd:                                            [  OK  ]

 

通过日志跟踪分配情况:

 

[root@host1 ~]# tail -f /var/log/messages

 

ipconfig /release 释放地址,

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_12

 

                                图12

 

ipconfig /renew重新获得地址!

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_13

 

案例二

题目:网络比较,有500PC:

作用域(subnet1 192.168.2.0

192.168.2.2-192.168.2.253

网关  192.168.2.254

dns1  1.1.1.1

dns2  2.2.2.2

 作用域(subnet)2192.168.3.0

    192.168.3.2 -192.168.3.253

网关  192.168.3.254

dns1  1.1.1.1

dns2  2.2.2.2

这个和案例一基本相似,只需要在一的基础上改动一下就好。

1.编辑/etc/dhcp/dhcpd.conf文件就行。

   1.1查看手册,知道怎么配置超级作用域:

[root@host1 ~]# man dhcpd.conf

查到超级作用域用法如下:

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_14

                              图14

  1.2 编辑/etc/dhcp/dhcpd.conf文件,作如下修改:

[root@host1 ~]# vim /etc/dhcp/dhcpd.conf

第一处修改:

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_15

                             图15

第二处修改:

我的dhcp服务器地址为192.168.2.60,所以要把这个地址排除掉.

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_16

16

wq 保存退出。

2.

2.1测试语法是否正确

[root@host1 ~]# service dhcpd configtest

Syntax: OK

2.2启动dhcpd服务

[root@host1 ~]# service dhcpd start

chkconfig dhcpd on       开机启动

打开一台server 2003虚拟机测试:(注意:这个虚拟机选择桥接,对应的网卡VMnet1改为自动获得ip地址和DNS服务器地址)

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_17

                                 图17

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_18

                               图18

打开本地连接:

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_19

 图19

另外 vim /var/lib/dhcpd/dhcpd.leases 也可以看到已经分配出去的地址。

案例

题目:网络中存在多个vlan每一个vlan中的机器都dhcp client

存放各种servervlan架构dhcp server

实验拓扑图:

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_20

                       图20

1.宿主机和虚拟机配置

宿主机网卡配置:

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_21

                                  图21

虚拟机配置(DHCP server): 192.168.30.100

centos系统的dhcp server 虚拟机选择桥接.

2.[root@host1 ~]# vim /etc/dhcp/dhcpd.conf

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_22

                    图22

[root@host1 ~]# service dhcpd configtest

Syntax: OK

[root@host1 ~]# vim /etc/dhcp/dhcpd.conf

[root@host1 ~]# service dhcpd restart

Starting dhcpd:                                            [  OK  ]

[root@host1 ~]# chkconfig dhcpd on

3.设备配置

交换机:

[Quidway]vlan 10

[Quidway-vlan10]port  eth0/10   

[Quidway-vlan10]vlan 20 

[Quidway-vlan20]port eth0/20

[Quidway-vlan20]vlan 30     

[Quidway-vlan30]port eth0/22

[Quidway-vlan30]int eth0/24

[Quidway-Ethernet0/24]port link-type trunk

[Quidway-Ethernet0/24]port trunk permit vlan all

防火墙:

取消端口隔离:

[H3C]undo insulate

划分子接口,加标签,配置地址

[H3C-Ethernet0/0.1]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

[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

[H3C-Ethernet0/0.3]vlan-type dot1q vid 30

[H3C-Ethernet0/0.3]ip add 192.168.30.1 24

查看路由表:有10,20,30网段

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_23

 

                                图23

3个接口都加入防火墙trust区域

[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]q

[H3C]firewall  packet-filter default permit 

ping dhcp服务器192.168.30.100:能通

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_24

                               图24

防火墙1的eth0/0.1和eth0/0.2上做dhcp中继,eth0/0.3接口不用做中继。

[H3C]dhcp select relay interface eth0/0.1

[H3C]dhcp select relay interface eth0/0.2 

进入2个子接口,都中继给192.168.30.100

[H3C]int eth0/0.1

[H3C-Ethernet0/0.1]ip relay address 192.168.30.100

[H3C-Ethernet0/0.1]int eth0/0.2                   

[H3C-Ethernet0/0.2]ip relay address 192.168.30.100

3.测试:

把测试用的防火墙1(是用来当PC)先连接到eth0/0接口上面,模拟10.0网段的一台PC,看是否能获得地址。

[H3C]firewall packet-filter default permit

[H3C]firewall zone trust 

[H3C-zone-trust]add int eth0/0

去掉eth0/0的地址

[H3C]sysname PC

[PC]int eth0/0

[PC-Ethernet0/0]undo ip add

设置该接口自动获得地址:

[PC-Ethernet0/0]ip address dhcp-alloc 

进入ETH0/0看是否通过DHCP获得了地址:

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_25

                               图25

也得到了网关:

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_26

                                 图26

也得到了DNS.

 

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_27

                 图27

把测试用的防火墙2(是用来当PC的)连接到交换机eth/20接口,

通过DHCP动态获得了地址

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_28

                          图28

也获得了DNS和网关192.168.20.1

dhcp在企业网络中的实现 centos系统_linux dhcp服务器  cento_29

                                            图29