DHCP 服务器架设
2015-08-06 00:43
274 查看
文章链接:http://harttle.com/2014/10/02/dhcp.html
DHCP(dynamic host configuration protocol)提供了一个给TCP/IP网络中的主机传递配置信息的框架。定义在RFC 2131中。通常用于局域网中动态分配IP地址。
该行为发生在客户机启动、或者网卡重启时。
若DHCP服务器发现该MAC曾用过某IP,且该IP空闲则继续分给他;若存在该MAC的静态IP设置,则分配该静态IP;上述都不满足时,分配新的IP并进行记录。
因为局域网中的DHCP服务器可能有多个,客户端做好选择后广播发出通知。未被采取的DHCP服务器将收回其IP。
此时服务器开始租期计时。用户断线(
拿来鸟哥的示例配置:
对于多网卡服务器,可以设置
然后启动并观察
查看路由表:
全零IP只能用于源地址,当源主机不知道自己IP时使用。
查看68端口的地址续租程序:
参考:鸟哥的私房菜、RFC 2131
DHCP(dynamic host configuration protocol)提供了一个给TCP/IP网络中的主机传递配置信息的框架。定义在RFC 2131中。通常用于局域网中动态分配IP地址。
DHCP协议
DHCP协议的操作过程分为四个步骤:discovery客户端发送广播(全1地址的IP包),获取配置。
该行为发生在客户机启动、或者网卡重启时。
offerDHCP服务器响应该广播,通过单播发送配置。
若DHCP服务器发现该MAC曾用过某IP,且该IP空闲则继续分给他;若存在该MAC的静态IP设置,则分配该静态IP;上述都不满足时,分配新的IP并进行记录。
request客户端发送广播,通知选择的配置。
因为局域网中的DHCP服务器可能有多个,客户端做好选择后广播发出通知。未被采取的DHCP服务器将收回其IP。
acknowledge服务器发送确认。
此时服务器开始租期计时。用户断线(
ifdown,
reboot,
shutdown)或租约到期(未续租)则收回该配置。正常客户端会在0.5T时重新请求IP,如果不成功则在0.875T是再请求一次。这一过程中客户端与服务器的端口分别为:68、67。
服务器配置
CentOS中,DHCP服务器配置文件为:/etc/dhcp/dhcpd.conf;守护进程为:
/usr/sbin/dhcpd;地址租期记录在:
/var/lib/dhcp/dhcpd.leases。
拿来鸟哥的示例配置:
# file: /etc/dhcp/dhcpd.conf # 1. 整體的環境設定 ddns-update-style none; <==不要更新 DDNS 的設定 ignore client-updates; <==忽略用戶端的 DNS 更新功能 default-lease-time 259200; <==預設租約為 3 天 max-lease-time 518400; <==最大租約為 6 天 option routers 192.168.100.254; <==這就是預設路由 option domain-name "centos.vbird"; <==給予一個領域名稱 option domain-name-servers 168.95.1.1, 139.175.10.20; # 上面是 DNS 的 IP 設定,這個設定值會修改用戶端的 /etc/resolv.conf 檔案內容 # 2. 關於動態分配的 IP subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.101 192.168.100.200; <==分配的 IP 範圍 # 3. 關於固定的 IP 啊! host win7 { hardware ethernet 08:00:27:11:EB:C2; <==用戶端網卡 MAC fixed-address 192.168.100.30; <==給予固定的 IP } } # 相關的設定參數意義,請查詢前一小節的介紹,或者 man dhcpd.conf
对于多网卡服务器,可以设置
dhcpd监听其某个接口。在
/etc/sysconfig/dhcpd中添加
DHCPDARGS="eth0"即可。
然后启动并观察
dhcpd服务:
/etc/init.d/dhcpd start netstat -tlunp | grep dhcp tail -n 30 /var/log/messages
客户端配置
在客户端,设置/etc/sysconfig/network-scripts/ifcfg-eth0为采用DHCP后,重启网络
/etc/init.d/network restart。观察域名解析文件的变化:
# file: /etc/resolv.conf search centos.vbird <==還記得設定過 domain-name 否? domain centos.vbird <==還記得設定過 domain-name 否? nameserver 168.95.1.1 <==這就是我們在 dhcpd.conf內的設定值 nameserver 139.175.10.20
查看路由表:
$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.100.254 0.0.0.0 UG 0 0 0 eth0 # 嗯!沒錯!路由也被正確的捉到了!OK的啦!
全零IP只能用于源地址,当源主机不知道自己IP时使用。
查看68端口的地址续租程序:
netstat -tlunp | grep dhc
参考:鸟哥的私房菜、RFC 2131
相关文章推荐
- Rails Jquery datepicker 使用教程
- Linux中查找文件的常见命令
- python的Error集,17个新手常见Python运行时错误
- python的Error集,17个新手常见Python运行时错误
- Rails中 使用carrierwave实现图片上传
- java学习笔记——接口
- Rails 项目中安装bootstrap的几个小
- BestCoder Round #49 Untitled / hdu5339 (搜索)
- 类加载机制及双亲委派
- Android studio快捷键大全 和 eclipse对照(原)
- Spring 数据源配置二:多数据源
- Android Studio如何导入SlidingMenu超详细版
- java学习笔记——抽象 abstract
- Ubuntu安装gradle
- springMVC各个包的详细说明
- MDP接入
- 云存储FSS使用规范
- HDU 5344 多个数的和异或-思维-(位运算)
- 双链表:实现基本的增删查改,正反向现实双链表的节点
- iPhone开发入门系列1(iOS8+Swift版)天天打靶APP学习10-11