DHCP
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)通常被應用在大型的局域網絡環境中,主要作用是集中的管理、分配IP地址,使網絡環境中的主機動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,并能夠提升地址的使用率。
DHCP協議采用客戶端/服務器模型,主機地址的動態分配任務由網絡主機驅動。當DHCP服務器接收到來自網絡主機申請地址的信息時(基于rarp協議廣播,rarp協議即由mac地址到ip地址的地址解析),才會根據實現定義的地址池向網絡主機發送相關的地址配置等信息,以實現網絡主機地址信息的動態配置。
工作流程:基于廣播的方式,dhcp不可以跨網段工作
1、Client:dhcp discover 客戶端發送請求報文 2、Server: dhcp offer 服務端響應報文,向客戶端提供IP/Netmask,GW, DNS Server,還可以有 NTP Server, Wins Server。。。 3、Client:dhcp request 客戶端發送確認報文,確認使用dhcp服務器提供的哪個地址。 4、Server:dhcp ack 服務器端確認客戶端可使用此地址
lease time:租約期限;
客戶端從服務端獲取地址以后,此地址的可使用時長,客戶端在使用期限到達一半的時候向服務器端發送續租請求,如果第一次請求為得到響應,則繼續使用此地址待剩余租期的一半時間時再次向服務端發送續租請求,依次類推,直到獲得續租響應為止,得到續租響應以后租期會重新從最初租約期限開始,再次到達租約期限一般的時候重新發起續租請求。如果直到租約到期還為得到續租響應的話,客戶端則會在租約期限的93.75時再次向服務端發送申請新的地址請求。
dhcp relay:dhcp中繼
由代理服務路由器隔開的兩個局域網,且兩個局域網之間可以相互通信,其中局域網1啟動一個dhcp服務器,局域網2的地址請求統統發往中間代理,這個中間代理接收到局域網2廣播地址的請求之后,由單播形式將請求轉發至局域網1中的dhcp服務器,然后得到dhcp服務器的單播形式的響應。繼而中間代理再通過廣播形式向局域網2中響應請求。整個工作流程中中間代理和局域網1中的dhcp服務器通信都是單播形式的,和局域網2的通信都是廣播形式的。就就叫做dhcp relay server
dhcp協議的實現
dhcp:(isc.org) – The dhcp package provides the ISC DHCP service and relay agent.
dnsmasq:(dns, dhcp) – Dnsmasq is lightweight, easy to configure DNS forwarder and DHCP server. It is designed to provide DNS and, optionally, DHCP, to a small network.
程序環境
dhcp server:dhcp服務 /usr/sbin/dhcpd IPV4網絡: /etc/dhcp/dhcpd.conf /usr/lib/systemd/system/dhcpd.service IPV6網絡: /etc/dhcp/dhcpd6.conf /usr/lib/systemd/system/dhcpd6.service dhcrelay:dhcp代理 /usr/sbin/dhcrelay /usr/lib/systemd/system/dhcrelay.service
監聽的地址和端口:
Server: 67/udp Client: 68/udp
配置文件:/etc/dhcp/dhcpd.conf
配置指令: option選項:配置給客戶端的相信息 指令:定義dhcp server的工作特性 配置級別: 全局配置 子網配置 主機配置 常用的配置: default-lease-time 600; 默認租約期限 max-lease-time 7200; 最大租約期限 option domain-name "search_domain.tld"; 指定搜索域 option domain-name-servers DNS_SERVER1, DNS_SERVER2, DNS_SERVER3; 指明配置給客戶端的dns服務地址 option routers GW1, GW2, ...; 配置給客戶端的默認網關 option broadcast-address BROADCAST_ADDRESS; 配置給客戶端的廣播地址 定義網絡作用域,即一個子網,主要用于指明地址池; subnet NETWORK netmask MASK { IP和掩碼 range START_IP END_IP; 起始地址IP和結束地址IP } 為某一個地址固定分配一個地址,固定ip的優先級比subnet優先級高,切subnet的網關配置對固定ip不生效 host passacaglia { hardware ethernet 0:0:c0:5d:bd:95; 主機的mac地址 fixed-address IP_ADDR; 要分配給主機的固定IP地址 } 其他配置指令 filename:指明引導文件名稱; next-server:指明引導文件所在的服務器的主機IP; filename “pxelinux.0"; next-server 10.1.0.6; tftp server
配置示例:
]# yum install dhcp -y 安裝服務程序 ]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 復制配置文件樣本到配置文件目錄 ]# vim /etc/dhcp/dhcpd.conf option domain-name "ali.com"; 搜索域 option domain-name-servers 192.168.25.138,8.8.8.8,114.114.114.114; 指明配置給客戶端的dns服務地址 option routers 192.168.25.138; 指明配置給客戶端的網關 default-lease-time 3600; 默認租約期限 max-lease-time 7200;最大租約期限 log-facility local7; 日志發送位置 subnet 192.168.25.0 netmask 255.255.255.0 { 定義一個子網網段和網關 range 192.168.25.143 192.168.25.150; 指定起始ip和結束ip option routers 192.168.25.200; 在子網中指明的網關優先級高 } :.,$s/^[[:space:]]*[#&]/#/g 在配置文件中使用vim命令注釋掉其他行 ]# service dhcpd start 啟動服務 ]# ss -unl 查看udp67號端口是否已經打開 ]# 手動設置虛擬機服務器端和客戶端的網絡接口為vmnet1 然后啟動客戶端主機 ]# dhclient -d 客戶端執行命令進行測試 查看是否獲得地址池中的地址,注意測試時需要關閉虛擬機的dhcp服務 ]# route -n 客戶端執行命令進行測試 查看是否獲得指定的網關,注意測試時需要關閉虛擬機的dhcp服務
配置示例,給一個地址固定的ip地址
]# ifconfig 先查看一個主機的mac地址 ether 00:0c:29:5f:86:eb ]# vim /etc/dhcp/dhcpd.conf 編輯配置文件 host fantasia { hardware ethernet 00:0c:29:5f:86:eb; 主機的mac地址 fixed-address 192.168.25.155; 需要給其配置的固定ip可以是地址池之外的ip option routers 192.168.25.100;指明配置給客戶端的網關 } ]# service dhcpd restart 重啟dhcp服務 ]# dhclient -d 響應的mac地址的客戶端進行測試 ]# route -n 客戶端執行命令進行測試 查看是否獲得指定的網關
原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/58173