自動化系統安裝之DHCP服務實現

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

(0)
liuyongweiliuyongwei
上一篇 2018-01-29 19:21
下一篇 2018-01-29 21:08

相關推薦

  • linux系統從windows xp上同步時間

    最近公司客戶的調度系統GPS天文時鐘出現故障,導致整個調度系統失去時間源,時間積累誤差達十幾分鐘。去現場更換時鐘很不方便,所有就想用現場的一臺win xp(可上網)的遠程機器做NTPserver,然后給linux系統對時。上網查了好多資料,終于找到了一個有效的解決方案,具體內容和步驟如下:首先下載一個Windows下的NTP服務軟件。這個軟件可以搭建wind…

    Linux干貨 2015-03-27
  • TCP/IP五層模型

    1、簡述osi七層模型和TCP/IP五層模型 網絡的七層模型是由OSI和CITT一起制定的開放系統互連參考模型: TCP/IP 五層模型可以分為:應用層,傳輸層,網絡層,數據鏈路層,物理層。 2、簡述ip route家族命令 語法:ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT={link ,addr,rout…

    2018-01-05
  • Linux磁盤管理(一)

      磁盤,計算機最常見的存儲硬件設備。對Linux而言,其哲學思想之一就是一切皆文件,因此linux之上所有設備的操作都是通過文件接口來實現的,也就是說在訪問設備的時候就如同訪問一個文件一樣,因為他們使用的都是文件系統接口。 向磁盤中寫入數據的操作過程:   首先硬件設備在系統上會映射成一個一個文件,我們在對硬件中寫入數據就相當…

    Linux干貨 2016-08-30
  • Linux高級文件系統管理

                                          &n…

    系統運維 2016-09-06
  • 手動創建掛載交換分區

    SWAP分區 SWAP [root@cloud ~]# fdisk /dev/sdb Command (m for help): d Selected partition 1 Command (m for help): w The…

    Linux干貨 2016-06-09
  • Linux進程及管理(1)

    Linux進程及管理(1) 內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能 Process: 運行中的程序的一個副本; 存在生命周期Linux內核存儲進程信息的固定格式:task struct 多個任務的的task struct組件的鏈表:task list 進程創建: init 父子關系 進程:都由其父進程創建 fork(), cl…

    Linux干貨 2015-05-28
欧美性久久久久