DHCP企业实战
DHCP服务简介
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、网关地址、DNS服务器地址等信息,并能够提升地址的使用率。
DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。
DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的68号端口,DHCP服务器回应应答消息给主机的67号端口。
DHCP服务的工作原理:
1、DHCP Client以广播的方式发出DHCP Discover报文。
2、有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。
3、DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。
4、DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文。
5、DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。
6、DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址。
DHCP服务器配置
DHCP服务器:10.0.0.240
DHCP 客户端:10.0.0.8
1、安装DHCP软件包
yum install -y dhcp dhcp-devel |
2、dhcp配置文件
subnet 10.0.0.0 netmask 255.255.255.0 { #网段和子网掩码 range 10.0.0.3 10.0.0.254; #可自动获取的IP地址范围 option domain-name-servers 61.139.2.69; #dns服务器名称 option routers 10.0.0.2; #网关地址 option broadcast-address 10.0.0.255; #广播地址 option ntp-servers 10.0.0.240; #设定时间服务器地址 default-lease-time 600; #默认租约期限,单位秒 max-lease-time 7200; #最长租约期限,单位秒 } |
3、启动DHCP
systemctl start dhcpd [root@yum etc]# netstat -lntup|grep 67 udp 0 0 0.0.0.0:67 0.0.0.0:* 25197/dhcpd |
4、把客户端10.0.0.8的eth0网卡模式更改为dhcp,配置文佳如下:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=yes NAME=eth0 DEVICE=eth0 ONBOOT=yes |
5、在dhcp服务器端监控dhcp
tcpdump -nn -i eth0 port 67 |
6、重启客户端
systemctl restart network |
7、查看客户端是否获取IP
[root@mysql ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.0.5 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe80::20c:29ff:fe4f:670f prefixlen 64 scopeid 0x20<link> ether 00:0c:29:4f:67:0f txqueuelen 1000 (Ethernet) RX packets 575652 bytes 370650678 (353.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 376213 bytes 142439337 (135.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
8、在dhcp服务端查看抓取的信息
[root@yum etc]# tcpdump -nn -i eth0 port 67 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 12:05:11.165917 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0c:29:4f:67:0f, length 300 12:05:11.168283 IP 10.0.0.240.67 > 10.0.0.5.68: BOOTP/DHCP, Reply, length 300 |
9、配置客户端获取固定IP 10.0.0.8,DHCP服务器的配置文件如下
subnet 10.0.0.0 netmask 255.255.255.0 { #网段和子网掩码 range 10.0.0.3 10.0.0.254; #可自动获取的IP地址范围 option domain-name-servers 61.139.2.69; #dns服务器名称 option routers 10.0.0.2; #网关地址 option broadcast-address 10.0.0.255; #广播地址 option ntp-servers 10.0.0.240; #设定时间服务器地址 default-lease-time 600; #默认租约期限,单位秒 max-lease-time 7200; #最长租约期限,单位秒 } #配置固定IP host mysql { #客户端的主机名 hardware ethernet 00:0c:29:4f:67:0f; #客户端的网卡MAC fixed-address 10.0.0.8; #配置的固定IP } |
10、重启dhcp
systemctl restart dhcpd |
11、重启客户端网卡服务
systemctl restart network |
12、查看客户端IP信息
[root@mysql ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.0.8 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe80::20c:29ff:fe4f:670f prefixlen 64 scopeid 0x20<link> ether 00:0c:29:4f:67:0f txqueuelen 1000 (Ethernet) RX packets 12496 bytes 17114035 (16.3 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 5465 bytes 371841 (363.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
13、dhcp服务端的抓包信息
[root@yum etc]# tcpdump -nn -i eth0 port 67 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 12:52:32.169685 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0c:29:4f:67:0f, length 300 12:52:32.169893 IP 10.0.0.240.67 > 10.0.0.8.68: BOOTP/DHCP, Reply, length 300 |
目录 返回
首页