DHCP服务器简介
来源:互联网 发布:java equals int 编辑:程序博客网 时间:2024/06/06 04:08
1、常识
dhcp概念:全称 Dynamic Host Configuration Protocol
dhcp功能: 动态分配IP地址
dhcp常识:
dhcp是基于udp的服务器监听在67号端口,客户端监听在68号端口上
UDP:
67/udp
68/udp
计算机想要通信需要具备:
TCP/IP
IPADDR
NETMASK
GATEWAY
DNS
2、DHCP工作原理
dhcp工作原理:
客户端发起广播udp的数据包给服务器
Client--> DHCPDISCOVER
服务器回应客户端的数据包
DHCPOFFER <-- Server
客户端回复确认包,当有多个dhcp服务器时需要回复确认使用哪个服务器分配过来的ip(广播包)
Client--> DHCPREQUEST
服务器回复确认包。
DHCPACK <-- Server
客户端续租ip(这里就不是广播包了)
Client--> DHCPREQUEST
DHCPACK <-- Server
注释:我们的每台电脑(不管是linux,windows,ios)都会时时刻刻运行着dhcpclient客户端(用于请求ip地址)。这个客户端会在你启动设备时广播发送DHCPDISCOVER数据包,路由器上的dhcpserver(路由器也是一台电脑)服务端接受广播数据包,dhcpserver回送DHCPOFFER数据包(数据包包含给你分配的ip地址,注意这时你的网络中可能不止一台dhcpserver服务器或者这样说你家里不止一个无线网。它们会同时响应你的ip请求报文的),这时dhcpclient接收到数据包然后再次广播发送DHCPREQUEST数据包(如果有多个dhcpserver给你提供ip,你需要选一个,一般来说那个dhcpserver的数据包先到就用那个),这时dhcpserver服务器收到DHCPREQUEST数据包后回复确认包DHCPACK并记录下分配给你的ip地址,这时你就可以上网了。之后每6小时会重新续租(这个ip你只有6个小时的使用权,时间到是需要续租的)。
3、dhcp安装
//查询是否安装
rpm -qi dhcp
//若未安装直接安装
yum install dhcp -y
//查看都生成了那些文件
rpm -ql dhcp
//主要的文件
/usr/sbin/dhcpd #服务
/usr/sbin/dhcrelay#中继服务,一般不用。中继服务和dhcpd服务两个只能有一个运行。(当dhcpserver端和decpcilent不在一个网段时一般来说是不能接收到客户端的请求数据包的。因为路由器不会转发广播报文。这时如果路由器上能运行这个dhcrelay服务就能够将这个请求从别的网络转发到dechserver所在的网络中。之后另外网络中的dhcpclient就能获取到ip地址。这里不介绍这个服务,请自行google查询使用方法。)
/etc/dhcpd.conf #配置文件
/var/lib/dhcpd/dhcpd.leases#租约文件,记录了分配出去的ip地址。一般会有一个dhcpd.leases~文件存在,这才是真正记录分配IP地址记录的文件。
当然客户机需要设置成dhcp获取ip地址(具体怎么设置1、直接setup命令设置。2、直接配置网卡(/etc/sysconfig/network-scripts/ifcfg-eth#))
vim /etc/dhcpd.conf #dhcp服务的配置文件如下。
注释:
最上边的两行(ddns-update-style interim ignore client-update)是动态改写dns的选项,目前不用了保持不变。
subnet 172.16.0.0 ...这就是你所在的局域网网络(你的这台dhcp服务器的ip和你的客户机们必须都在这个网络中,否则不能启动dhcpd服务)。说白这个就是你要分配的地址池,所有的ip都出自这个网络。
option routers 就是dhcp给你指定的网关
option subnet-mask 就是你这个网络的子网掩码
option domain-name 就是你所在的域的名字。学名叫做搜索域。我还不知道干什么用的呢,这里没什么用不用搭理。
option domain-name-servers 就是给你指定的dns服务器(这个就会被NetworkManager程序写到你的/etc/resolv.conf中,我指的是linux。这就是为什么你的 这个文件经常重启的时候被清空。因为你所在网络中的dhcp服务器没给你指定dns服务器--你的路由器上配置的这条是空的。因此还是把你的dns服务器配置到ifcfg-eth#文件里边去吧,那就不会被更改了。免得你每次域名都没办法解析必须重写这个文件。)
range 172.16.100.10...这行就是你要把这个网段中那些ip分配出去。这里配置的就从10-20一共才11个ip
default-leases-time... #这个就是给你的租期6小时。一般来说每隔3小时就会续租了。
#这个可以给某台计算机指定一个ip,这台机器的ip将一直是这个。注意这个ip不能在上边动态分配出去的地址中(不能再那11个ip中)。如果有多个机器要固定ip就多写几个
host ns { #ns随便起的名字,你可以随便起一个,不重复就行。
harderware ..... #要固定ip地址的那台机器的mac地址
fixd-address.... #给这台机器的ip
}
尝试下在你的局域网中自己启动个dhcp服务器,那么你的小伙伴就有可能从你那里请求ip地址了。如果你通过路由器管理界面获取到它的mac地址,你故意给他配置一个固定的ip(那这里仍然是有可能使用你提供的固定的ip,还是谁先到用谁的。)。并且把他的路由设置成错的。那他的数据包就出不了这个网络了,也就上不了外网了。我在虚拟机上玩过了,是有效果的。但手机上就没有效果,原因我想应该是这样的,手机在广播请求ip的时候,因为我的dechserver在虚拟机上所以肯定会比真正的路由器上的dechserver响应慢,这样就麻烦了,拿手机肯定不会用我给他的固定的那个而是直接用路由器上的那个dhcpserver给它提供的ip。所以就没效果了。不过你可以试一试在真机上启动一个dhcpserver。比如在windows上启动一个,或者你想办法关掉路由器上的dhcpserver那这肯定就会有效果了。因为手机的操作系统也是linux的。
测试的时候可以使用命令:dhclient -d 看看请求ip地址的过程是怎样的,看看是谁给提供的ip地址。
- DHCP服务器简介
- DHCP简介
- DHCP服务器
- dhcp服务器
- DHCP服务器
- DHCP 服务器
- dhcp服务器
- DHCP服务器
- DHCP服务器
- dhcp的简介
- DHCP协议简介
- DHCP之简介
- 命令行安装DHCP服务器
- DHCP服务器需求条件
- DHCP服务器的迁移
- 如何建立DHCP服务器
- 如何建立DHCP服务器
- 如何建立DHCP服务器
- 面试中排序算法问题
- 决策树
- MySQL多条件查询语句
- Linux下IPC主题三----------------共享内存
- RMQ算法
- DHCP服务器简介
- vim使用及配置策略
- 博为峰JavaEE技术文章 ——MyBatis BLOB字段
- Linux常用命令大全
- 1043 想法有待实现
- MySql (1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)
- Tomcat系统架构分析
- (iOS-框架封装)AFN3.x 网络请求封装
- c++primer第十二章读书笔记