一、前言
當我們面對局域網中大量的主機需要配置ip地址時,手動配置很
難保證各主機ip不會產生衝突,爲了能夠有序、自動配置局域網的ip
地址需要用到DHCP,該協議能實現ip地址的自動配置,並且對分配出
去的ip地址進行記錄。
二、與DHCP相關的參數
DHCP: Dynamic Host Configuration Protocol 主機動態配置協議
IP/Netmask 能與其他主機通信的必要條件
Gateway 與外網通信經過網關
DNS Server 域名解析服務,可解析域名ip訪問主機
三、DHCP的工作流程
bootp: boot protocol --> dhcp
DHCP請求流程
ARP:IP-->MAC 該廣播協議中知道目標ip地址請求mac
RARP:MAC-->IP 該廣播協議中知道自己的MAC請求獲取ip
1、Client: dhcp discover:客戶端在局域網中用廣播尋找
DHCP服務器。
2、Server: dhcp offer:(IP/netmask, gw):服務器收到廣播後
響應客戶端,告知其ip/netmask和gw。
3、Client:dhcp request :客戶端收到dhcp的ip和gw後
用RARP對其發起IP獲取請求。
4、Server: dhcp ack:服務器收到請求後在自己的可用ip列表挑選
一個ip給客戶端,同時對其進行等級。
續租:
DHCP服務器對分配出去的地址實行租約形式
一般形式如下:
2hours:列如服務器規定租約期限是2小時
50%: 1hours --> 2hours :
當我們使用了1小時(每50%請求一次),客戶端就
向服務端發出續租請求,如此直到續租成功。
75%: 0.5hours --> 2hours
87.5%: 0.25hours --> 2hours
dhcp discover:如果續租不成功,就再次執行dhcp
服務器發現命令
Client: dhcp request
Server: dhcp ack
Server: dhcp nak
四、Linux DHCP協議的實現程序:dhcp, dnsmasq
dhcp:
1、/usr/sbin/dhcpd DHCP服務器程序
配置文件
/etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd
/etc/dhcp/dhcpd6.conf --> /etc/rc.d/init.d/dhcpd6
2、/usr/sbin/dhcrelay DHCP中繼服務器
配置文件
/etc/rc.d/init.d/dhcrelay
67/udp 服務器監聽端口
dhclient: 68/udp 客戶端監聽端口
3、配置文件
dhcpd.conf:
常用選項
option :用於指明除ip和掩碼外的其他選項,可以在全局中
定義也可以在subnet定義
default-lease-time 600 :默認租約時間
max-lease-time 7200 :最大租約時間
subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.100.151 172.16.100.170
option routers 172.168.100.1
...
} :作用域,指定一個子網,該處爲子網爲172.16.0.0(一定是
當前主機所在的網絡)子段內的主機分配ip,分配的ip範圍是,
起172.16.100.151到 172.16.100.170,並且爲其指定網關是
172.168.100.1。
host {
}
4、查看地址分配記錄
cat /var/lib/dhcpd/dhcpd.leases
5、其它配置選項:
filename: 指明引導文件名稱;
next-server:提供引導文件的服務器IP地址;
filename "pxelinux.0";
next-server 172.16.100.67;