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查看