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

配置选项:

    Linux自学笔记——dhcp,tftp,pxe_第1张图片                                 

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

    Linux自学笔记——dhcp,tftp,pxe_第2张图片

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

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

    Linux自学笔记——dhcp,tftp,pxe_第3张图片

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

    Linux自学笔记——dhcp,tftp,pxe_第4张图片

 

tftp server

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

演示:

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

  Linux自学笔记——dhcp,tftp,pxe_第5张图片  

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

2.      启动超级守护进程;

3.      测试;

    Linux自学笔记——dhcp,tftp,pxe_第6张图片

 

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

    Linux自学笔记——dhcp,tftp,pxe_第7张图片

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

    Linux自学笔记——dhcp,tftp,pxe_第8张图片

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

    Linux自学笔记——dhcp,tftp,pxe_第9张图片

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

    Linux自学笔记——dhcp,tftp,pxe_第10张图片

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

   Linux自学笔记——dhcp,tftp,pxe_第11张图片 

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

   Linux自学笔记——dhcp,tftp,pxe_第12张图片 

7.      测试;

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

           Linux自学笔记——dhcp,tftp,pxe_第13张图片 


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

            Linux自学笔记——dhcp,tftp,pxe_第14张图片

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

        3)      进入菜单选项;

        Linux自学笔记——dhcp,tftp,pxe_第15张图片

        4)      自动化部署安装;

          Linux自学笔记——dhcp,tftp,pxe_第16张图片  

示例2:pxe的实现(centos7)

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

    Linux自学笔记——dhcp,tftp,pxe_第17张图片


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

    Linux自学笔记——dhcp,tftp,pxe_第18张图片


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

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

    Linux自学笔记——dhcp,tftp,pxe_第19张图片

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

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

    Linux自学笔记——dhcp,tftp,pxe_第20张图片

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

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

        image.png

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

          image.png

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

        image.png

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

        Linux自学笔记——dhcp,tftp,pxe_第21张图片

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

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

        Linux自学笔记——dhcp,tftp,pxe_第22张图片 

6.      测试;

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

        Linux自学笔记——dhcp,tftp,pxe_第23张图片

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

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

        Linux自学笔记——dhcp,tftp,pxe_第24张图片