DHCPD服务配置

DHCP(Dynamic Host Configuration protocol, DHCP) 是一个局域网的网络协议,使用UDP进行数据传输(服务器UDP端口67,客户端UDP端口 68)。主要功能是将内部网络或ISP的IP资源分配给用户。DHCP通常配置在网关路由器或者三成交换机上,也可以配置在服务器上。
DHCP运行分为四个步骤:
(1). 请求IP租约(discover)
客户端采用广播的形式去寻找DHCP服务器。如果这个网段内有多个DHCP服务器,那么最先响应的DHCP服务器将先进行DHCP服务。
(2). 提供IP租约(offer)
DHCP在地址池中挑选一个未被使
用的IP地址给客户端使用。
(3). 选择IP租约(request)
当客户端收到一个IP租约提供时,它必须广播来所有DHCP服务器它已经接受了一个租约offer。因此,该客户会发送一个DHCPREQUEST消息,其中包含提供租约的服务器的IP。当其他DHCP服务器收到了该消息后,它们会收回该的租约。并将IP地址重新放回到可用地址池中。
(4). 确认IP租约(ack)
当DHCP服务器收到来自客户端的DHCPREQUEST消息后,它就开始了配置过程的最后阶段。这个响应阶段包括发送一个DHCPACK包给客户。这个包包含租期和客户可能请求的其他所有配置信息(如DNS服务器等)

1. 安装DHCP服务器

yum install dhcp

2. 配置dhcpd.conf

安装完成dhcp后, /etc/dhcp下并没有全局配置文件dhcpd.conf。需要拷贝一个模版出来:
cp /usr/share/doc/dhcp*/dhcpd.conf.sample
其中几个关键的配置如下:
#enable/disable dynamic dns updates globally
#interim allows your DHCP server to update a DNS server whenever it hands out a lease
ddns-update-style none
#域名服务器信息
option domain-name “debugo.com”;
option domain-name-servers 192.168.1.1;
#租期
# the length in seconds that will be assigned to a lease if the client requesting the lease does not ask for a specific expiration time.
default-lease-time 6000;
max-lease-time 72000;
#日志级别
log-facility local7;
#配置对应子网的IP资源池,可以将参数写入subnet段中,这样将覆盖全局设置。
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
}
#分配固定的IP地址:
host vm2 {
hardware ethernet 00:0C:29:DE:A0:02;
fixed-address 192.168.1.201;
}
#启动服务:
[root@OS01 ~]# service dhcpd restart
Starting dhcpd: [ OK ]
[root@OS01 ~]# chkconfig dhcpd on
#配置iptables
[root@OS01 ~]# iptables -A input -p udp –dport 67 -j ACCEPT
[root@OS01 ~]# iptables -A input -p udp –dport 68 -j ACCEPT

3. 配置客户端

#在另一台上配置网卡为dhcp模式
[root@OS02 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:0c:29:de:a0:02
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
#重启服务
[root@OS02 network-scripts]# service network restart
Shutting down interface eth0: Device state: 3 (disconnected)
[ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/2
state: activated
Connection activated [ OK ]
#检查网卡
[root@OS02 network-scripts]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:DE:A0:02
inet addr:192.168.1.201 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fede:a002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1213 errors:0 dropped:0 overruns:0 frame:0
TX packets:3294 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:111951 (109.3 KiB) TX bytes:143424 (140.0 KiB)

Posted in Linux, Ops, Tools.