Linux自學筆記——dhcp,tftp,pxe
IP/Nermask
Gateway
DNS Server
bootp:boot protocol --> dhcp
1. Client:dhcp discover:發現
2. Server:dhcp offer:(IP/netmask,gw)
3. Client:dhcp request
4. Server:dhcp ack
續租:
Client:dhcp request
Server:dhcp ack
Server:dhcp nak
Linux DHCP
dhcp:
/usr/sbin/dhcpd
/etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd
/etc/dhcp/dhcpd6.conf --> /etc/tc.d/init.d/dhcpd6
/usr/sbin/dhcrelay
/etc/rc.d/init.d/dhcrelay
67/udp
dhclient:68/udp
dhcpd.conf:
subnet NETWORK netmask MASK{ :定義子網,用於指明地址池;
range START_IP END_IP
}
host passacaglia{
hardware ethernet 0:0:c0:5d:bd:95;
filename “ ”:指明引導文件名稱;
next-server:提供引導文件的服務器ip地址;(為tftpserver,一般使用pxe時會用到此指令)
fixed-address IP:獲得主機的固定ip地址
}
查看地址分配記錄:
~]# cat /var/lib/dhcpd/dhcpd.leases
配置選項:
option domain-name
option domain-name-servers ns1.example.org, ns2.example.org;:指明配置給客戶端的0dns地址;
default-lease-time 600:默認租期;
max-lease-time 7200:最大租約期限;
option routers GW1,GW2,…:配置給客戶端的默認網關。
option broadcast-address BROADCAST_ADDRESS;:配置給客戶端的廣播地址;
演示:dhcp服務器的配置
1. 實驗環境準備;
兩臺虛擬機,都是centos6系統,一臺作為dhcp服務器,一臺作為客戶端;
為了防止dhcp服務器對局域網的幹擾。我們這裏網絡連接模式選擇vmnet2通信;
2. 配置dhcp服務器;
Note:dhcp服務器的ip配置的靜態ip地址,為192.168.19.134
3. 客戶端設置為dhcp,用dhclient –d命令讓其工作在前臺;
測試:客戶端獲取到了ip地址,並在分配的地址範圍之內;
tftp server:
tftp也是文件服務器的一種,不過一般在使用pxe裝機環境下,使用的較多。
演示:
1. 安裝tftp,編輯配置文件,將disable的值改為no;
其中/var/lib/tftpboot為tftp的工作目錄
2. 啟動超級守護進程;
3. 測試;
PXE
PXE:preboot execute environment,我們在大批量的安裝linux系統時,通過光驅一個一個安裝不僅麻煩,而且效率低下。此時我們便可以通過PXE安裝。
1. Pxe安裝流程;
1) 客戶機啟動選擇pxe網卡啟動,從本網絡中的dhcp服務器獲取ip
2) DHCP服務器發送ip給客戶機;
3) 客戶機向本機的tftp服務器索取文件
4) 客戶機去的bootstrap文件後執行引導文件完成引導,讀取配置文件,加載內核和文件系統
5) 進入安裝畫面,此時通過選擇http、ftp、nfs方式進行安裝;
2. 實現pxe網絡安裝必需的四個要素;
1) 客戶機的網卡必需為pxe網卡
2) 網絡中必需要有dhcp和tftp服務器,這兩個服務器可以是同一臺主機;
3) 所安裝的操作系統必需支持網絡安裝。
4) 必須要有ftp,http,nfs,至少一個服務器,當然也可以和dhcp和tftp服務器同為一臺物理主機。
示例1:centos6上pxe的實現
1. 安裝dhcp,並復制/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example到/etc/dhcp/dhcpd.conf,編輯配置文件;
2. 安裝tftp-server,syslinux,tftp,xinetd,並編輯/etc/xinetd.d/tftp文件,將disable的值改為no,開啟tftp;
3. 確保httpd已安裝,並將光盤鏡像文件,掛載至網頁文件目錄下,這裏在/var/www/html/目錄下創建了centos6目錄
4. 準備/var/lib/tftpboot/目錄下文件(tftp默認目錄)
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /var/www/html/centos6/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /var/www/html/centos6/isolinux/ {boot.cfg,vesamenu.c32,splash.png} /var/lib/tftpboot/
創建/var/lib/tftpboot/pxelinux.cfg目錄,並在此目錄下編輯default文件;
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /var/www/html/centos6/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
5. 準備kickstart文件,並將其放置在網頁文件目錄中(這裏放在/var/www/html目錄下,在上面default文件中指明的ks目錄必須跟kickstart真實放置的目錄對應),kickstart文件可用system-config-kickstart生成;
6. 啟動服務,查看各服務端口是否開啟;
7. 測試;
1) 將虛擬機網絡連接設置問vmnet2通信,並且ip地址配置成靜態ip;
2) 新建一臺虛擬機,網絡為vmnet2通信,開機測試;
Note:要保證dhcp服務器上的selinux和iptables關閉;
3) 進入菜單選項;
4) 自動化部署安裝;
示例2:pxe的實現(centos7)
1. 安裝dhcp,並復制/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example到/etc/dhcp/dhcpd.conf,編輯配置文件;
2. 啟動服務並驗證udp的67端口是否開啟
3. 安裝tftp-server,xinetd,啟動並測試udp的69號端口;
修改xinetd目錄下的tftp配置文件,將disable的值改為no;
隨後開啟超級守護進程xinetd服務;
4. 安裝httpd,並將鏡像文件掛載至 網頁目錄;
5. 準備/var/lib/tftpboot目錄下文件;
1) 安裝syslinux程序包,它會提供pxelinux.0文件,將其復制到目錄下;
2) 復制/usr/share/syslinux目錄下的chain.c32,mboot.c32,menu.c32,memdisk四個文件,分別為基於鏈式方式引導文件,內存磁盤引導項,菜單項,內存當磁盤的模擬文件;
3) 復制光盤中images/pxeboot下的文件;
4) 準備kickstart文件;制作kickstart文件可用systemctl-config-kickstart文件,並將此文件復制到/var/www/html目錄下;
Note:如果復制的本機中的anaconda-ks.cfg,註意修改權限。否則最後安裝時可能會報錯;
5) 在/var/lib/tftpboot目錄下創建pxelinux.cfg目錄,並創建為menu.c32提供菜單的配置文件(即菜單加載時用到的配置文件信息)
6. 測試;
1) 虛擬機中將服務器的網絡連接自定義為vmnet2。防止dhcp服務器對局域網的幹擾。並且更改服務器ip地址為靜態ip;
2) 開啟dhcp,vsftpd,等服務;
3) 新建一臺虛擬機,網絡連接也是vmnet2,測試開機,成功獲取到ip地址並開始安裝,等待安裝完成即可;
Linux自學筆記——dhcp,tftp,pxe