PXE依賴於DHCP技術
DHCP:
把一個主機接入TCP/IP網絡,要爲其配置哪些網絡參數
IP/MASK---只能本地網絡通訊
Gate---能夠跨網段通訊
DNS Server---能夠基於主機名通訊
Wins Server---基於windows主機名通訊
NTP Server
參數配置方式:
靜態指定
動態分配
bootp:boot protocol引導協議,無盤工做站使用,而且分配地址之後就固定了,由於服務端要綁定IP和操做系統。操做系統運行在內存中,跟硬盤沒有關係
dhcp:重複收回,臨時分配(有時候地址數小於主機數),引入了「租約」的bootp,也能夠實現爲特定主機保留某固定地址linux
DHCP:動態主機配置協議 arp:address resolving protocol地址解析協議 知道對方的IP但不知道對方的MAC rarp:reverse arp反向地址解析協議 知道對方的MAC但不知道IP 監聽的端口: Server:67/udp Client:68/udp---客戶端也須要監聽,必須是一個守護進程 工做流程:---都是經過廣播完成的 (1)Client:dhcp discover---發現報文 (2)Server:dhcp offer(ip/mask,gw,...)---響應 lease time:租約期限,能夠本身定義 (3)Client:dhcp request---請求使用服務器發給它的 (4)Server:dhcp ack---確認 續租:---單播 50%時提出續租,延長50%的租約時間,若是找不到在75%,再續租,若是找不到87%再廣播 單播給服務器: dhcp request dhcp ack---確承認以繼續用 dhcp request dhcp nak---不租了 dhcp discover:廣播 Centos: dhcp包:(ISC提供,還有named包)named提供dns dnsmasq包:提供dhcp&dns服務,很小的單進程,一般用在小規模環境中 dhcp:不能同時提供兩種服務 dhcpd:dhcp服務 dhcrelay:中繼服務
客戶端剛開機時,發送一個rarp報文,請求地址,服務端找有沒有能夠分配的地址,而後發給客戶端,客戶端配置給本身,若是有多個服務器,那麼誰的報文到達最快選擇誰
DHCP分配地址的範圍叫作做用域,管理多個做用域的時候還能夠定義超級做用域,dhcp必須在本地網絡爲本地網絡服務,不能爲外部網絡提供服務,dhcp還能夠提供讓客戶端去服務器加載文件的功能vim
option domain-name "magedu。com";---option用來定義配置時的配置選項
option routers 172.18.100.6;---指定網關
option domain-name-servers 172.18.0.1;windows
default-lease-time 43200;---默認租約期限,單位秒
max-lease-time 86400;---最大租約期限服務器
log-facility local7;網絡
subnet 10.152.187.0 netmask 255.255.255.0 {}---subnet定義一個做用域,稱爲一個子網dom
subnet 172.18.0.0 netmask 25.255.0.0 {
range 172.18.100.101 172.18.100.120;
}ide
subnet 10.254.239.0 netmask 255.255.255.224 {
range 10.254.239.10 10.254.239.20;---指明地址池
option routers rtr-239-0-1.example.org,rtr-239-0-2.example.org;---用來指明其餘參數,除了地址和掩碼之外的
}ui
subnet 10.5.5.0 netmask 255.255.255.224 {
range 10.5.5.26 10.5.5.30;
option domain-name-servers ns1.internal.example.org;---DNS服務器地址,能夠有多個,對linux而言最可能是三個
option domain-name "internal.example.org";---指明搜索後綴
option routers 10.5.5.1;---指明網關
option broadcast-address 10.5.5.31;---指明廣播地址
max-lease-time 7200;
}操作系統
host passacaglia {---指明一個主機名,並非真正的主機名,而只是在dhcp配置文件中區別不一樣的主機的標識
hardware ehternet 0:0::c0:5d:bd:95;---只要是這個mac地址
filename "vmunix.passacaglia";---獲取地址後腰去主機加載一個文件
server-name "toccata.fugue.com";---去這個主機加載這個文件
}unix
host fantasia {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com;---表示固定地址
}
定義好之後:
systemctl start dhcpd.service
ss -unl---dhcp監聽在udp的67號端口
視頻中演示:
先關閉虛擬機的dhcp功能,在客戶端使用命令dhclient -d命令(這就是監聽在客戶端68端口的進程)表示運行在前臺,不加-d表示運行在後臺,會看到客戶端發送的信息,此時若是修改dhcp的地址池,再重啓dhcp服務,那麼客戶端會從新得到一個IP地址
route -n---能夠查找網關,還能夠指定網關,全局指定或者在子網中指定
若是沒有變化,使用nmtui命令把獲取方式改成自動獲取
systemctl restart network.service
ifconfig
route -n
/etc/resolv.conf---dns在這裏配置
若是不想使用服務端分配的dns
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
NAME="eno16777736"
DEVICE="eno16777736"
ONBOOT=yes
NETBOOT=yes
UUID="c4e3e4b5-e373-4743-a25d-dc2c02546ff9"
IPV6INIT=no
BOOTPROTO=dhcp
TYPE=Ethernet
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
PEERDNS=yes---把這裏改成no
PEERROUTES=yes
而後編輯
vim /etc/resolv.conf
search magedu.com
nameserver 2.1.1.1
地址池中的地址分配給誰了,能夠去/var/lib/dhcpd/dhcpd.leases查看