自动化系统安装之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.178linux.com/91363

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

相关推荐

  • 第一周博客 计算机组成及Linux基础入门

    1、描述计算机组成及其功能。
    2、描述罗列Linux的发行版,并描述不同发行版之间的联系和区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释。
    4、说明Linux系统上命令的使用格式,详细介绍ifconfig、echo、tty、startx、export、pwd、history、
    shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例说明阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分。
    6、请罗列Linux发行版的基础目录名称命名法则及功能规定。

    2017-12-02
  • 文本处理三剑客之awk

    一、知识整理 1、awk报告生成器,格式化文本输出 发明人:a.k.a. Aho,Kernighan,weinberger awk程序通常由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句块三部分组成。program通常是放在单引号或双引号中。 基本用法:awk [] ‘program’ var=value fiel… pr…

    Linux干货 2016-09-26
  • find命令归纳

    首先,find可以实现以下方式查找 文件名:-name -iname -regex 文件类型:-type TYPE:(f,d,l,s,b,c,p) 文件大小:-size [+|-]#UNIT #UNIT(k,M,G)范围(由小到大):[0,#-1](#-1,#](+#,oo) 时间戳:-{a|m|c}time -{a|m|c}min  范围(现在到…

    Linux干货 2016-04-19
  • Linux文件系统

    Linux文件系统 根目录下的文件 / ├── bin 存放用户使用的基本命令(可执行程序,二进制文件) 不能单独分区的 ├── boot 跟内核有关的文件 grub 内核和BootLoader ├── cgroup 用来资源限制资源隔离 docker 容器化 ├── dev device 设备文件 b block device 块设备 硬盘或者CD-rom…

    Linux干货 2017-04-01
  • Nginx+Apache+Tomcat实现LANMT动静分离

    Nginx+Apache+Tomcat实现LANMT动静分离          目的:    本次实验主要目的为实现以Nginx作为反向代理,并实现分别访问动静态服务的效果。   拓扑结构:     &nbsp…

    Linux干货 2016-12-05
  • 文本三剑客之sed

    文本处理三剑客之sed sed 本身也是一个管线命令,是一个(流|行)编辑器! 而且 sed 还可以将数据进行取代、删除、新增、撷取特定行等等的功能。工作模式是从源文件中一次读取一行,存储到sed自己的内存中进行处理,如果模式被匹配到就可以编辑并且输出到标准输出,如果没有被匹配到则直接输出到标准输出。     sed …

    Linux干货 2016-08-10