首页 > 代码库 > 服务—-DHCP

服务—-DHCP

学习服务的经验:
1.是什么?
英文全称
工作原理 ---->最重要--->排错
2.有什么用?
3.如何配置?
配置文件
4.验证及排错
看日志
具体如何搭建不是最重要的,因为有文档。

DHCP Dynamic Host Configuration Protocol(动态主机配置协议)
作用:负责为客户机动态分配TCP/IP信息
IP地址
子网掩码
默认网关
首选DNS服务器

广播地址:FF-FF-FF-FF-FF-FF
广播IP 地址
:255.255.255.0

为什么要采用DHCP:
减小管理员的工作量
减小输入错误的可能
避免IP冲突
提高了IP地址的利用率


DHCP服务的原理:
当IP地址不是固定绑定到哪台主机时,并且需要在客户机上先配置静态的ip,然后再改为动态获取,这时则为二个广播二个单播,否则都是广播
客户机请求IP地址(DHCPDiscover)广播
服务器响应请求(DHCPOffer)-->单播,发Offter之前,会发一个广播,确认所分配的IP地址是不是静态配置的
客户机选择IP地址(DHCPRequest)广播
服务器确认租约(DHCPAck)单播
续约的时候发的是request包,时间大概在租期的80%的时间,如果续租不到,就重新发discover包,重新到别的dhcp服务器获得ip地址



当客户端是win7的时候,dhcp工作原理4步的过程都是广播
服务器开67 udp
客户机开68 udp
discover包--》源ip为0.0.0.0 目的ip为255.255.255.255
源端口为68 目的端口67 udp协议

当客户端是linux的时候,dhcp工作原理4步的过程discover和request是广播,offer和ack是单播

bootp 自举协议 ---》会包含服务器给客户机分配的ip地址
dhcp协议里,会包含分配ip的服务器的信息及分配的网关、dns、子网掩码



当使用wireshark进行抓包时,如果想要看到DHCP四条动态时,则需要删除租约文件,并且重新刷新服务,目的是清除以前分配的IP地址
[root@teacher dhcpd]# rm -rf /var/lib/dhcpd/dhcpd.leases :服务器租约文件
service dhcpd restart
[root@station ~]# cat /var/lib/dhclient/dhclient-eth0.leases :客服机也是有租约文件
lease {
interface "eth0";
fixed-address 10.0.0.63;
filename "pxelinux.0";


[root@station ~]# vim /etc/dhcp/dhcpd.conf DHCP配置文件,设置相应的网段,掩码等相关信息
[root@lichao520 dhcp]# cat dhcpd.conf
default-lease-time 600; -----默认租约时间 600秒
max-lease-time 7200; ------最大租约时间,当快到租约时间的时候,会续租。
log-facility local7; -------指定日志设备类型,日志哪里存放(mail,cron,anthpriv)
subnet 10.5.5.0 netmask 255.255.255.0 { ------指定分配哪个网段的IP地址及子网掩码
range 10.5.5.26 10.5.5.130; ------ 地址池的范围
option domain-name-servers 8.8.8.8; -----dns服务器
option domain-name "sxkeji.com.cn"; ------dns域名
option routers 10.5.5.254; -------------网关
}
host fantexi {
hardware ethernet 00:0c:29:11:22:ab; ------指定机器的mac地址,分配固定的IP
fixed-address 10.5.5.88;
}

假如客户机动态获得ip的地址是169.254开头的,说明没有获得到有效的ip,自己配置了一个这样的ip
服务器会监听67号端口,支持udp协议
[root@localhost network-scripts]# netstat -anplut|grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 2440/dhcpd

windows里的机器
ipconfig /release :释放ip---》169.254开头的ip,说明已经没有有效ip了
ipconfig /renew :获得ip

/etc/sysconfig/dhcpd
提供额外执行参数,例如可修改 DHCPDARGS项,限制dhcp服务器提供服务的网络接口

[root@localhost ~]# vi /etc/sysconfig/dhcpd
DHCPDARGS="eth0 " 在eth0接口提供dhcp服务


tail -f /var/log/boot.log 对dhcpd服务进行监听
May 30 10:43:50 lichao520 dhcpd: DHCPDISCOVER from 00:0c:29:11:22:ab (PC-20130503LURF) via eth0
May 30 10:43:51 lichao520 dhcpd: DHCPOFFER on 10.0.29.10 to 00:0c:29:11:22:ab (PC-20130503LURF) via eth0
May 30 10:43:51 lichao520 dhcpd: DHCPREQUEST for 10.0.29.10 (192.168.1.1) from 00:0c:29:11:22:ab (PC-20130503LURF) via eth0
May 30 10:43:51 lichao520 dhcpd: DHCPACK on 10.0.29.10 to 00:0c:29:11:22:ab (PC-20130503LURF) via eth0
May 30 10:43:57 lichao520 dhcpd: DHCPINFORM from 10.0.29.10 via eth0: not authoritative for subnet 10.0.29.0
May 30 10:44:00 lichao520 dhcpd: DHCPINFORM from 10.0.29.10 via eth0: not authoritative for subnet 10.0.29.0


[ro
ot@lichao520 ~]# chkconfig --list dhcpd
dhcpd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
[root@lichao520 ~]# chkconfig dhcpd on 开机自动运行
[root@lichao520 ~]# chkconfig --list dhcpd
dhcpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

注意事项
做dhcpd实验时
1.建议禁用NetworkManager服务
2.建议关闭防火墙 iptables -F
3.关闭selinux

service NetworkManager stop 停止服务
chkconfig NetworkManager off 设置开机不启动

虚拟机接口意义
vmnet0 ---》bridged
vmnet1--》hostonly
vmnet8--》nat

排错思路设计
1.配置文件修改,去掉; 多加内容 ip弄错等
2.ip不配置

3.网卡类型不匹配,网络连接断开



服务—-DHCP