【17 小说源码】【sns 招聘 源码】【vue 58源码】dhcpc源码详解

1.dhcp是码详什么协议
2.DHCP原理详解
3.DHCP服务介绍及Linux下DHCP服务的管理配置

dhcpc源码详解

dhcp是什么协议

       dhcp是动态主机配置协议。动态主机配置协议 DHCP(Dynamic Host Configuration Protocol,码详动态主机配置协议) 是码详 RFC (已被 RFC 取代)定义的标准协议,该协议允许服务器向客户端动态分配 IP 地址和配置信息。码详

       DHCP协议支持C/S(客户端/服务器)结构,码详主要分为两部分:

       1、码详17 小说源码DHCP客户端:通常为网络中的码详PC、打印机等终端设备,码详使用从DHCP服务器分配下来的码详IP信息,包括IP地址、码详DNS等。码详

       2、码详DHCP服务器:所有的码详IP网络设定信息都由DHCP服务器集中管理,并处理客户端的码详DHCP请求。

       DHCP采用UDP作为传输协议,码详sns 招聘 源码客户端发送消息到DHCP服务器的的号端口,服务器返回消息给客户端的号端口。

DHCP原理详解

       DHCP的原理与配置

       DHCP叫做动态主机配置协议,它可以帮助主机动态下发IP地址以及网关DNS服务器等信息,减少大型组网中手动配置IP地址的过程,将管理员的工作简化。

       ä»¥ä¸Šæ˜¯DHCP的原理,至于配置方面由于厂商很多,配置脚本也很多,,大家在配置的时候只需要记住几个点:

       1、创建地址池

       2、地址池中包含的网段信息,即可分配给主机的所有可用地址

       3、网关地址信息

       4、DNS服务器地址信息

       5、在接口上挂接地址池

       æ— è®ºä»€ä¹ˆå“ç‰Œçš„设备,只要遵循这五个步骤,都可以完成DHCP的基础配置,当然,DHCP中还有很多更加深入技术点,例如基于DHCP安全的DHCP SNOOPING,以及DHCP RELAY等等。

DHCP服务介绍及Linux下DHCP服务的管理配置

       1. DHCP服务简介

       DHCP是Dynamic Host Configuration Protocol,动态主机配置协议,是用来在物理网络给主机分配ip地址的一种方式,区别于bootp,一次分配终身使用的缺点。

       DHCP提出的vue 58源码租约的概念,使得可以根据需要动态确定主机需要的IP地址,并且IP地址可以循环使用。

       2. DHCP结构

       DHCP是典型的C/S结构,需要服务端启动守护进程来保证来自client段的请求能被响应,DHCP的工作原理如下:

       可以通过DORA来记忆:

       Client: DHCP DISCOVER #客户端向相同网络发送广播包,企图寻找DHCP服务器

       Server: DHCP OFFER#如果DHCP服务段收到DISCOVER包,则向客户端回复OFFER广播包

       Client: DHCP REQUEST#客户端收到来自DHCP的电子烟源码OFFER广播包后,则确定DHCP服务器,继续向DHCP服务器发送REQUEST包,来申请ip信息

       Server: DHCP ACK#DHCP服务端向客户端发送ACK包,携带ip和租约信息给客户端, DHCP发现过程结束

       注意: dhcp在跨网段的路由器另一侧,则路由器需要开启dhcp relay来支持转发客户端DISCOVER的广播包给DHCP服务器,这些通过路由器的代理服务源码转发,都是单播

       因为路由器和dhcp之间的连接是有ip信息的。

       DHCP服务端端口 UDP

       DHCP客户端端口 UDP

       DHCP reservation: 地址保留:

       专用于某特定客户端的地址,不应该使用地址池中的地址;优先于地址池中的地址;

       3. Linux下DHCP服务安装配置

       由于CentOS6/7的系统管理机制不同,所以开机自启动服务的方式有所不同,但是配置文件,帮助文档大同小异

       3.1 CentOS 6下 DHCP安装:

       #yum install dhcp

       #通过rpm -ql dhcp 来查询hdcp包所创建安装的文件,我们可以分析他的使用方式:

       这里列举几个比较重要的文件:

       #DHCP服务配置文件:

       /etc/dhcp/dhcpd.conf

       /etc/dhcp/dhcpd6.conf

       #服务脚本,控制dhcp服务的启动,关闭,状态查询,reload等

       /etc/rc.d/init.d/dhcpd

       /etc/rc.d/init.d/dhcpd6

       /etc/rc.d/init.d/dhcrelay

       /etc/rc.d/init.d/dhcrelay6

       #dhcp命令参数配置文件: 此文件内容提供一些区段给dhcpd守护进程在系统引导时使用,dhcpd守护进程使用DHCP及BOOTP协议为主机自动分配IP地址

       /etc/sysconfig/dhcpd

       /etc/sysconfig/dhcpd6

       /etc/sysconfig/dhcrelay

       /etc/sysconfig/dhcrelay6

       #dhcp二进制程序

       /usr/sbin/dhcpd

       /usr/sbin/dhcrelay

       #dhcp的ip地址租约库,可以查到ip分配情况

       /var/lib/dhcpd/dhcpd.leases

       /var/lib/dhcpd/dhcpd6.leases

       4.1 CentOS6下dhcp服务配置文件管理:

       4.1.1 首先编辑dhcp主配置文件:

       /etc/dhcp/dhcpd.conf

       option domain-name "richie.com"; #dhcp主机名

       option domain-name-servers ...; #名称服务器的地址

       default-lease-time ; #默认租约秒数

       max-lease-time ;#最大租约秒数

       log-facility local7; #log级别

       subnet ...0 netmask ...0 {

       range ... ...; #可供分配的ip段

       option routers ...1, ...2; #如果在最近配置的option routers那就直接饮用,如果没有,那就会自动继承上一级的option

       } #子网配置格式

       当编辑完,保存退出,可以使用这个命令来检测语法错误:

       service dhcpd configtest

       4.1.2 配置ip地址预留:

       需要在subnet { } 内部,配置host{ }格式如下:

       subnet ...0 netmask ...0 {

       host windows1 {

       hardware ethernet :0c::0:f3:;

       fixed-address ...;

       option routers ..0.1 #这里可以针对这台机器设置option routers的值,而不用继承上一级的网关信息

       }

       }

       最后,保存退出

       service dhcpd force-reload

       测试效果:

       linux client:

       dhclient -d eth0

       window client:

       ipconfig /renew

       4.1.3 配置开机自启动:

       还是老命令chkconfig dhcpd on, 默认会将init级别2,3,4,5都设置为开机自启动, 也可以使用 chkconfig --level 2,3,4 来自己指定需要的运行级别自启

       4.1.4 管理dhcp服务

       service dhcpd { start|stop|restart|force-reload|condrestart|try-restart|configtest|status}

       4.2 CentOS 7下的DHCP服务管理

       4.2.1 配置文件:

       同CentOS6上的配置,参见4.1.1

       4.2.2 配置ip地址预留:

       同CentOS6上的配置,参见4.1.2

       4.2.3 配置开机自启动:

       由于CentOS6/7的系统服务管理机制的不同,CentOS7引入了systemd来管理所有的服务,所以不能再使用chkconfig命令来设置,需要使用:

       # systemctl is-enabled DAEMON.service 查看dhcp服务状态, 相当于C5的 chkconfig --list dhcpd

       # systemctl enable DAEMON.service启用开机自启动dhcp服务, 相当于C5的 chkconfig dhcpd on

       # systemctl disable DAEMON.service 禁用开机自启动dhcp服务, 相当于C5的 chkconfig dhcpd off

       4.2.4 管理dhcp服务

       # systemctl { start|stop|restart|status} DAEMON.service

       5. DHCP配置命令总结

       一个简单dhcp服务的配置文件至少需要包含如下的配置信息:

       dhcpd.conf

       option domain-name

       option domain-name-servers

       option routers

       subnet NETWORK netmask MASK {

       range START_IP END_IP;

       host HOSTID {

       hardware ethernet :::::;

       fixed-address IP;

       }

       }

       ========================================================

       例子:

       dhcpd.conf

       option domain-name "richie.com";

       option domain-name-servers ...;

       default-lease-time ;

       max-lease-time ;

       log-facility local7;

       subnet ...0 netmask ...0 {

       range ... ...;

       option routers ...1, ...2;

       host windows1 {

       hardware ethernet :0c:::f3:;

       fixed-address ...;

       }

       }

更多内容请点击【百科】专栏