红联Linux门户
Linux帮助

Linux下的DHCP服务的原理及搭建

发布时间:2015-04-10 09:53:23来源:linux网站作者:ice_pakchoi

DHCP:
动态主机配置协议Dynamic host configuration protocol
DHCP工作在OSI的应用层,可以帮助计算机从指定的DHCP服务器获取配置信息的协议。(主要包括:ip地址,子网掩码,网关和dns等)


工作原理:
1、客户机寻找服务器:广播发送discover包,寻找dhcp服务器
2、服务器响应请求:单播发送offer包,对客户机做出响应。提供客户端网络相关的租约以供选择
其中服务器在收到客户端的请求后,会针对客户端的mac地址与本身的设定数据进行一下工作:
a、到服务器的登录文件中寻找该用户之前曾经使用过的ip,若有且该ip目前没有人使用,这提供此ip为客户机
b、若配置文件中有针对该mac提供额外的固定ip,且该ip没有被使用,则提供此ip给客户机
c、如果没有符合以上两个条件,则随机取用目前没有被使用的ip参数给客户机并记录到leases文件中。
3、客户机发送ip请求:广播request包,选择一个服务器提供的网络参数租约回报服务器。
此外,客户机会发送一个广播封包给局域网内的所有主机,告知自己已经接受服务器的租约。
4、服务器确认租约:单播Ack包,服务器与客户机确认租约关系并记录到服务器的leases文件中。
客户端打开68号端口,服务器打开67号端口。

  
配置:
配置文件都放在/etc/dhcp目录下;主配置文件为dhcpd.conf
将/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample文件复制到配置文件目录下,并覆盖dhcpd.conf文件,即可获得主配置文件。
主配置文件的主要内容介绍:
option domain-name "example.org";  --指定网域的域名
option domain-name-servers ns1.example.org, ns2.example.org;--指定域名解析服务器(DNS)的ip地址。
default-lease-time 600;--默认租约时间,单位为s
max-lease-time 7200;--最大租约时间,单位为s。过期续约,续约直接发送request包即可。
log-facility local7;--日志设备类型为local7.一般日志设备类型包括mail、crontab。通过此选项可以找到该服务的日志记录路径
subnet 10.5.5.0 netmask 255.255.255.224 {  --指定分配网段的ip地址以及子网掩码,括号内部为局部配置。
range 10.5.5.26 10.5.5.30;  --可使用的地址池范围
option domain-name-servers ns1.internal.example.org;--该网段的域名,可以省略
option domain-name "internal.example.org";  --网段DNS
option routers 10.5.5.1;--指定网关
option broadcast-address 10.5.5.31;--指定广播地址
default-lease-time 600;--租约时间
max-lease-time 7200;--最大租约时间。
}
host passacaglia {  --主机名称
hardware ethernet 0:0:c0:5d:bd:95;  --主机的MAC地址
filename "vmunix.passacaglia";
server-name "toccata.fugue.com";--文件名和服务器名,不太需要。
fixed-address fantasia.fugue.com;  --固定的ip地址
}  --保留主机,此选项用于指定内部存在的MAC地址的主机在请求ip时固定分配指定的地址。如果该指定ip已经被分配使用的话,保留主机的指定ip将不能使用。  
  
一个局域网内最好只有一个dhcp服务器,当一个局域网内存在多个服务器时,客户机只选择最先到达的offer。


解疑答惑:
如何知道客户机从哪个server获得ip地址?
答:win中直接查看网络链接详细信息,有个dhcp服务器,可以看到服务器的ip地址。linux下查看/var/lib/dhclient/dhclient.leases,这是个租约文件,服务器端的租约文件在/var/lib/dhcpd/dhcpd.leases。
服务器分配ip的顺序?
答:从小的ip开始分配
为何客户机在获得一个ip后,释放再获得ip时会获得以前使用的ip?
答:客户机内有一个租约文件存放自己曾经获得的ip地址,服务器端也有一个租约文件存放了自己已经分配的ip以及其对应的主机mac。
服务器会在哪些端口提供dhcp服务?
答:默认在任何端口提供dhcp服务。实际上只是在与dhcp同一网段的网卡上提供dhcp服务。  
如果租约到期,而服务器并没有续约,该如何处理?  
答:会向其他服务器寻找dhcp服务。  


VNC  
X Window,实现图形化界面的一个软件,KDE,GNOME等都是链接到x window实现图形化界面。  
vnc的安装:
yum install tigervnc*


搭建vnc服务:
vncserver :num  --可以开启num号的桌面
vncpasswd  --修改vnc的密码
vncserver -kill :num--关闭num号的桌面。  


差异:
linux下,需要服务器和客户端开启同一个桌面才能看到服务器的操作
win下,服务器开启后,客户机可以直接看到服务器的操作。


linux互联:
直接使用vnc,客户端和服务器
win与linux:
可以是使用xshell链接字符界面,vnc可以链接图形界面。linux上开启桌面,win上运行客户端软件,输入ip和桌面号即可。
linux链接win
在win上安装服务端,linux上运行客户端脚本即可。