DHCP服務實現
dhcp的工作過程是基于UDP協議的,其中用到了UDP的67(服務器),68(客戶端)端口
使用場景
自動化安裝系統
解決IPV4資源不足的問題
同網段多dhcp服務
dhcp服務必須基于本地
先到先得
跨網段
RFC 1542
dhcpclient客戶端向dhcpsercer服務器請求續約時,中間相隔多網段時,如果路由器是
RFC1542 Compliant Routers 兼容的路由器時,要求路由器符合1542標準的路由器,是
允許跨路由廣播通過的,只有特定的discover才能通過
dhcrelay:中繼
設置一個dhcp的中繼代理,中繼代理跟客戶端是在一個網段,客戶端發廣播申請地址的
時候,這個網絡中是沒有dhcp服務器的,不做任何響應,中繼代理就收到discover,然
后再轉發(單波)到dhcpserver服務器,單波可以穿過路由器,服務器通過代理把地址轉
發到客戶端(路由器的接口配置也可以成為中繼代理)
服務流程
0 selinux 關 iptables 禁
1 安裝包
2 配置文件
3 準備數據
4 啟動服務
5 測試
(7)
實驗環境:一定要修改網卡僅主機模式,關閉主機本地dhcp服務橋接網卡斷掉
做服務器的主機必須是靜態IP
1 systemctl start dhcp
啟動dhcp服務器時由于沒有配置/etc/dhcp/dhcpd.conf文件是不能啟動的
2 cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
覆蓋此文件,生成配置文件在此基礎上修改
option domain-name “centos.com”;(分號)
客戶端申請地址域名也可以自動獲取,獲取這個域名/地址,訪問某一個主機的時候沒有
域后綴,會自動補后綴(不是很重要設置)
option domain-name-servers 114.114.114.114,8.8.8.8;(分號)
DNS設置(非實驗環境需連接外部網絡)
option routers 192.168.27.1;
網管
default-lease-time 86400;
默認的最大租期(秒為單位)服務器壓力大,時間可以設置長
max-lease-time 864000;
最大租期
subnet 192.168.27.0 netmask 255.255.255.0 { (這里必須跟自己網段匹配,否則服務不能啟動)
range(范圍)192.168.27.50 192.168.27.200
}
IP地址的分配,把哪個網段的IP地址分配出,可制定范圍內
subnet (可為多個網段分配IP)
subnet 192.168.27.0 netmask 255.255.255.0 {
range 192.168.27.50 192.168.27.200;
option routers 192.168.27.254;
option domain-name-servers 223.5.5.5;
filename “pxelinux.0”; *
next-server 192.168.27.0; *
。。。
以下字段都不需要,注釋掉
:.,$s/^/#/
:set nohlsearch 取消高亮
3 打開一臺客戶機自動獲取地址
4 watch -n1 tail /var/lib/dhcpd/dhcpd.leases
查看dhcp服務器給那些客戶端分配了地址
5 cat /var/lib/dhclient/dhclient-eth1.leases
查看客戶端的dhcp信息
killall dhclient;dhclient -d 呼到前臺殺掉進程
自動化安裝系統
DHCP配置文件
其他配置選項
filename:指明引導文件名稱(指定一個文件名,將來用來啟動自動安裝系統的機器,從網
絡中獲取一個啟動程序,網絡中啟動程序的名字就是pxelinux.0)
next-server:提供引導文件的服務器IP地址
示列:
filename “pxelinux.0” (這個名字就是放在tftp服務的某個固定目錄下,所以只需要告訴它tftp服務地址
就會自動到固定目錄下尋找這個文件下載下來,后續就可以實現自動化安裝)
next-server 192.168.100.100(這個是網絡中一個服務器的地址,同時它還要求提供一個特殊服務tftp服務,
這個是一個簡化版的ftp服務)
檢查語法
server dhcp configtest
dhcp服務器要先指明tftp服務器的地址
1 /etc/dhcp/dhcpd.conf
subnet中寫入
filename”pxelinux.0″;
next-server 192.168.27.7;
2 為客戶端指定某個地址,需要獲取客戶機mak地址,跟要分配的地址綁定
host testclient(名字可隨意填寫){
hardware ethernet 0:0:c0:5d:bd:95;
fixed-address 192.168.27.100;
option routers 192.168.27.200;
option domain-name-servers 223.6.6.6;
}
3 (6)/var/lib/dhclient/ \rm *
4 killall dhclient
5 dhclient -d 呼到前臺執行獲取dhcp服務器地址
————————————————————————————
安裝dhcp
1 yum install dhcp(修改僅主機模式)
將虛擬機的虛擬網絡編輯器的僅主機模式的(使用本地DHCP服務)對勾去掉
/var/lib/dhcpd/dhcpd.leases dhcp分配出去的地址
2 cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
用dhcp服務器配置文件模板覆蓋/etc/dhcp/dhcpd.conf配置文件進行修改
1 vim /etc/dhcp/dhcpd.conf
{cat /etc/resolv.conf; ifcfg-eth0 DOMAIN= }
1 option domain-name “centos.com”;
2 option domain-name-servers 114.114.114.114,8.8.8.8;
dns配置
option routers 192.168.27.1;
網關配置
3 default-lease-time 86400;
max-lease-time 86400;
最大租期
4 subnet 192.168.27.0 netmask 255.255.255.0 {
range 192.168.27.50 192.168.27.200;
option routers 192.168.27.254;
option domain-name-servers 223.5.5.5;
*filename “pxelinux.0”
*next-server 192.168.27.3; *配置自動安裝要獲取的服務
}
設置IP分配的范圍
5 .,$s/^/#/ 注釋一下所有行
host testclient {
hardware ethernet 00:0c:29:54:2f:d3;
fixed-address 192.168.27.100;
option routers 192.168.27.200;
option domain-name-servers 223.6.6.6;
}
2 尋找一臺機器作為客戶端即可
cat /var/lib/dhclient/dhclient-eth0.leases
在客戶機查詢從那臺server獲取的地址
killall dhclient
dhclient -d
……………………………………………………………………………
PXE
PXE:(端口69)
preboot Excution Environment 預啟動執行環境
Intel公司研發
基于Client/Server的網絡模式,支持遠程主機通過網絡從遠端服務器下載映像,并由此支持通過網絡啟動操作系統
PXE可以引導和安裝Windows Linux等多種操作系統
PXE功能是集成在網卡上,早期大部分都沒有此功能
PXE 需要搭三個服務:DHCP;TFTP;httpd
rpm -q …可查看已安裝多個服務
三個服務都要設置為開機啟用
1 需要安裝應答文件/var/www/html/ mkdir skdir
centos7:服務器
TFTP-server(網卡中內置可tftp客戶端)
1 yum install tftp-server
2 tftp IP
客戶端連接服務器時只認為自己連接的是服務器的/var/lib/tftpboot目錄(工作目錄)
/var/lib/tftpboot/ 目錄下存放tftp的共享文件
centos6:客戶端
yum install tftp
get file 下載
put file 上傳
1 cd /var/www/html/mkdir/ksdir/
2 cp /root/anaconda-ks.cfg ks7-pxe.cfg 圖形菜單
1 vim /etc/fstab
/dev/sr0 /var/www/html/centos/7 iso9660 defaults 0 0
2 vim /var/www/html/ksdir/ks7-pxe.cfg
# Use CDROM installation media
url –url=http://192.168.27.3/centos/7
# Use graphical install
firewall –disabled
selinux –disabled
text
reboot
# Partition clearing information
zerombr
clearpart –all –initlabel 清空分區
eula –agreed 同意許可
%packages
最后:腳本
%post
rm -f /etc/yum.repo.d/*
mkdir /root/.ssh
cat > /root/.ssh/authorized_keys <<EOF
ssh-rsa
EOF
chmod 600 /root/.ssh/authorized_keys
cat > /etc/yum.repo.d/base.repo <<EOF
[base]
name=base
baseurl=http://172.18.104.47/centos/7
gpgcheck=0
EOF
useradd liu
echo centos | passwd –stdin liu &> /dev/null
systemctl set-default multi-user.target
systemctl disable initial-setup-graphical.service 禁用初始化
%end
system-config-kickstart 也可使用圖形化工具配置應答文件
chmod 644 * 應答文件權限
3 vim /etc/dhcp/dhcpd.conf
host testclient {
hardware ethernet 00:0c:29:54:2f:d3;
fixed-address 192.168.27.100;
option routers 192.168.27.200;
option domain-name-servers 223.6.6.6;
這一段全部去掉
準備內核跟啟動菜單
4 yum install syslinux
cd /var/lib/tftpboot/ 共享目錄
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
cp /misc/cd/isolinux/{initrd.img,vmlinuz} .
mkdir pxelinux.cfg/ 創建一個目錄
cp /misc/cd/isolinux/isolinux.cfg pxelinux.cfg/default
vim pxelinux.cfg/default(菜單)
default menu.c32
timeout 600
menu title PXE INSTALL Centos
label desktop
menu label ^Install Desktop CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.27.3/ksdir/ks7-pxe.cfg
label mini
menu label Install ^Mini CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.27.3/ksdir/ks7-mini.cfg
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
menu end
5 創建新虛擬機測試
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91363