linux tftp 默认目录,Linux自学笔记——dhcp,tftp,pxe_Alfred Deng的博客-程序员宅基地

技术标签: linux tftp 默认目录  

DHCP:Dynamic Host Configuration Protocol

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,dnsmasq

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

配置选项:

577218164bf5dd1fa9753885a76fdbdd.png

option domain-name“example.org”:定义搜索域;

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服务器;

6f2d4963a815f78a8f56765d6bb51237.png

Note:dhcp服务器的ip配置的静态ip地址,为192.168.19.134

3.客户端设置为dhcp,用dhclient –d命令让其工作在前台;

a0a42f2de2c52dac7a55d68e14b8808c.png

测试:客户端获取到了ip地址,并在分配的地址范围之内;

0616f9ae1e5d030bee9a206385bf3448.png

tftp server:

tftp也是文件服务器的一种,不过一般在使用pxe装机环境下,使用的较多。

演示:

1.安装tftp,编辑配置文件,将disable的值改为no;

686c110ca4662b0baccd40e261f276af.png

其中/var/lib/tftpboot为tftp的工作目录

2.启动超级守护进程;

3.测试;

454d25e7a8d1876f75c7c8cc3d115c04.png

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,编辑配置文件;

a571094bc8f305001f34a734bec2c871.png

2.安装tftp-server,syslinux,tftp,xinetd,并编辑/etc/xinetd.d/tftp文件,将disable的值改为no,开启tftp;

4f42948aeda519512bfae452c9741f14.png

3.确保httpd已安装,并将光盘镜像文件,挂载至网页文件目录下,这里在/var/www/html/目录下创建了centos6目录

db3f49f4110424a7599dd82c2c82be9b.png

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

b75023f9e7f44a8fedf8e0476b279a72.png

5.准备kickstart文件,并将其放置在网页文件目录中(这里放在/var/www/html目录下,在上面default文件中指明的ks目录必须跟kickstart真实放置的目录对应),kickstart文件可用system-config-kickstart生成;

d73a670b7a66d31c51474ffe2d354ff8.png

6.启动服务,查看各服务端口是否开启;

134de2d662773c59e96c32ccc9ed8de2.png

7.测试;

1)将虚拟机网络连接设置问vmnet2通信,并且ip地址配置成静态ip;

3c1cf786653436f88732cea1845687f7.png

2)新建一台虚拟机,网络为vmnet2通信,开机测试;

6a02f6ed1f75a72b42e9a77fd55becf8.png

Note:要保证dhcp服务器上的selinux和iptables关闭;

3)进入菜单选项;

1db2f1fa8aaf1cbbfc0149c2d1c31f34.png

4)自动化部署安装;

87445070d7defb22e0a4ff5f1397f303.png

示例2:pxe的实现(centos7)

1.安装dhcp,并复制/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example到/etc/dhcp/dhcpd.conf,编辑配置文件;

d2e2441f0ce6560de503c754ba6f263b.png

2.启动服务并验证udp的67端口是否开启

8bcb96f6d63f3a246ce6fed4cbaf05fd.png

3.安装tftp-server,xinetd,启动并测试udp的69号端口;

修改xinetd目录下的tftp配置文件,将disable的值改为no;

4e087b89911c4bbbf60606897d8c8a82.png

随后开启超级守护进程xinetd服务;

4.安装httpd,并将镜像文件挂载至 网页目录;

db190d842e341de14f827453af9f56a0.png

5.准备/var/lib/tftpboot目录下文件;

1)安装syslinux程序包,它会提供pxelinux.0文件,将其复制到目录下;

198c54481bd00163cfb29d165a6f0032.png

2)复制/usr/share/syslinux目录下的chain.c32,mboot.c32,menu.c32,memdisk四个文件,分别为基于链式方式引导文件,内存磁盘引导项,菜单项,内存当磁盘的模拟文件;

86fd277916444bcc4e09bf47c3981b40.png

3)复制光盘中images/pxeboot下的文件;

d4c62bfa5c31741b57bfb51217ac1346.png

4)准备kickstart文件;制作kickstart文件可用systemctl-config-kickstart文件,并将此文件复制到/var/www/html目录下;

7dacd797947a61b407d4b5ad5211b74c.png

Note:如果复制的本机中的anaconda-ks.cfg,注意修改权限。否则最后安装时可能会报错;

5)在/var/lib/tftpboot目录下创建pxelinux.cfg目录,并创建为menu.c32提供菜单的配置文件(即菜单加载时用到的配置文件信息)

50d4f94b0912a87798f78a01bb5c84e4.png

6.测试;

1)虚拟机中将服务器的网络连接自定义为vmnet2。防止dhcp服务器对局域网的干扰。并且更改服务器ip地址为静态ip;

6c308c2d51dc98a45ce3fadedc4cee35.png

2)开启dhcp,vsftpd,等服务;

3)新建一台虚拟机,网络连接也是vmnet2,测试开机,成功获取到ip地址并开始安装,等待安装完成即可;

e778ff61dc62256e0be04c85955d4942.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36455339/article/details/116697271

智能推荐

java中保存json格式文件_xiaotao_i的博客-程序员宅基地_java存储json格式

public static boolean createJsonFile(String jsonString, String filePath, String fileName) {// 标记文件生成是否成功boolean flag = true; // 拼接文件完整路径 String fullPath = filePath + File.separator ...

懒人修仙传ce修改方法_除了凡人修仙传,你还看过哪部偏写实的国漫吗?来了解一下吧..._weixin_39797780的博客-程序员宅基地

不知从何时起,就有动画从业者有意无意地把真人带进动画,这种动画都偏写实风,无论是从人物的皮肤质感还是模型对比上都更贴近真人,有的时候甚至连人物面部肌肉的松弛皱纹都能清晰可见的做出来。我不知道这是否舍本逐末,因为动画一直以来追求的就是美感,而写实风动画却往往更贴近现实,也更容易暴露缺陷,而且偏写实动画还有一个弊端,那就是越贴近真人,给人的感觉就越像是在看真人剧。甚至有的动画公司对动画人物就是统一按真...

在linux系统中如何使用命令行获取本机的公网IP_codemanship的博客-程序员宅基地

最近本地配置了服务器,使用了家用的带宽没有固定的IP地址。因此,需要获取到自己的公网IP地址。机器是CentOS 6.5的服务器版本自然就没有办法通过浏览器访问的方式获取到公网IP地址。因此记录一些从命令行获取公网IP的方法。首先,需要在机器上按照curl:sudo yum install curl其次,使用下列命令中得一个来获取本地地址:curl http://members

[Cherno C++ 笔记 P11~P20]判断,循环,指针,引用,类_人工智能护发素的博客-程序员宅基地

[Cherno C++ 笔记 P11~P20]判断,循环,指针,引用,类前言视频链接P11 如何在Visual Studio中调试代码P12 C++条件与分支(if语句)if else汇编中的if elseP13 Visual Studio的最佳设置P14 C++循环(for 、while)for,while,do while汇编中的循环P15 C++控制流语句(continue, break, return)汇编中的break,continue,returnP16 C++指针什么是指针P17 C++引用P

Ionic 组件 tabs 控件学习_咱丶一根草的博客-程序员宅基地_ionic tabs

直接上代码,然后说明。<ion-tabs id="mainTab" selectedIndex="2"> <ion-tab [root]="tab1Root" tabTitle="诊断指标" tabIcon="information-circle"></ion-tab> <ion-tab [root]="tab2Root" tabTitle="诊断分析" tabIcon="informat

随便推点

CSAPP: Shell Lab_大捞子的博客-程序员宅基地

介绍shell Lab的主要目的是为了让我们熟悉进程控制和信号。实验准备下载shell Lab实验包:原实验包github链接,本文中撰写的tsh.c全部代码github链接【实验内容】 是对tsh.c中没有填写的函数进行填写,使得该shell能处理前后台运行程序、能够处理ctrl+z、ctrl+c等信号。 需要实现的函数主要有一下五个:eval: 主要功能是解析cmdline,并且运行. [70...

linux分区压力测试,stress-Linux系统压力测试工具使用及系统负载很高的几种场景测试..._weixin_39863616的博客-程序员宅基地

安装yum install stress stress-ng -ystess-ng是stress的下一代,功能更加完善常用选项-c,--cpu:代表进程个数(每个进程会占用一个cpu,当超出cpu个数时,进程间会互相争用cpu)-t,--timeout:测试时长(超出这个时间后自动退出)-i,--io:表示调用sync(),它表示通过系统调用 sync() 来模拟 I/O 的问题;但这种方法实际上...

华农软件工程实验报告_华南农业大学的软件工程怎么样?_weixin_39716160的博客-程序员宅基地

==== 2019.07.08 更新 =====就是从2016年开始,废除数学与信息学院的软件工程。取而代之的是,在软件学院开通一个新专业——软件工程(温氏阿里创新班),所以现在软件学院就有两个专业了(软件工程、软件工程(温氏阿里创新班))。另外一个就是软件学院的实习有所变动,今年(也就13级)实习地点有两个——成都和广州(都是实习3个月,从6月实习到9月)。 感谢校友补充==== 原答案 ===...

random_weixin_30496751的博客-程序员宅基地

import java.util.Random;import java.util.ArrayList;prevTreshold = vars.get("TRESHOLD");prevSwitchId = vars.get("SWITCH_ID");numItems = Integer.parseInt(vars.get("NUM_ITEMS"));Random ...

element el-upload 读取本地 txt 内容_Syspan的博客-程序员宅基地_element 读取文件

今天想直接在浏览器端读取txt的内容然后将读取到的文本内容上传到服务器端。下面是整个读取过程的demo仅供参考&lt;el-upload class="upload-demo" :auto-upload="false" :on-change="openFile"&gt; &lt;el-button size="small" type="primary"&gt;点击上传&lt;/el-button&gt; ...

推荐文章

热门文章

相关标签