DHCP+TFTP+FTP 实现网络安装Linux 系统

DHCP+TFTP+FTP 实现网络安装linux系统
2013-03-25 00:17:18
标签: linux   pxe   dhcp+tftp+ftp
实验环境
rhel6.4_x64 系统
在XEN 虚拟机中进行实验。
IP 分配:
192.168.1.254                                 # 网关地址
192.168.1.222                                # 虚拟机(DHCP、TFTP、FTP 服务器)
192.168.1.104                                 # 真机
192.168.1.210 - 192.168.1.216         # DHCP地址池
网络连接方式:桥接
原理图:

 
一、配置网卡为桥接状态
1、先配置真机网卡
[root@student-04 Desktop]# cd /etc/sysconfig/network-scripts/
[root@student-04 network-scripts]# cp ifcfg-eth0 ifcfg-br0
DEVICE="eth0"
BOOTPROTO="none"
HWADDR="6C:62:6D:A4:03:39"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
UUID="7af60f73-2517-40aa-b976-6d22dc51cb2b"
BRIDGE=br0
 
2、配置桥接网卡
[root@student-04 network-scripts]# vim ifcfg-br0 
DEVICE="br0"
BOOTPROTO="none"
ONBOOT="yes"
TYPE="Bridge"
IPADDR=192.168.1.104                    #  注意 配置桥接之后 eth0 上不配IP 地址,而是在br0上做配置
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=202.96.128.166
DNS2=202.96.128.68
 
网卡配置完成后,需要关闭NetworkManager ,否则重启网络服务会报错
[root@student-04 network-scripts]# service NetworkManager stop
Stopping NetworkManager daemon:                            [  OK  ]
[root@student-04 network-scripts]# service network restart
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                              [  OK  ]
Bringing up interface eth0:                                       [  OK  ]
Bringing up interface br0:                                       [  OK  ]

3、配置虚拟机服务器网卡为桥接模式

 

 
虚拟机的网卡配置如下:(由于是作为服务器,需要配置一个静态的IP地址192.168.1.222)
 
二、安装配置DHCP 服务
1、安装DHCP 服务
[root@vhost1 yum.repos.d]# yum install dhcp
 
2、配置DHCP服务
[root@vhost1 ~]# vim /etc/dhcp/dhcpd.conf 
:r /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample   # 在末行模式下执行,将文件读取到dhcpd.conf 中

option domain-name "365linux.com";       # 设置域名
option domain-name-servers 192.168.1.222, 202.96.128.86;         # 配置DNS 服务器

default-lease-time 600;      # 设置租约时间
max-lease-time 7200;        # 设置最大租约时间
log-facility local7;         # 设置日志格式

subnet 192.168.1.0 netmask 255.255.255.0 {            # 设置可用网段
        range 192.168.1.210 192.168.1.216;            # 设置地址池
        option routers 192.168.1.254;                    # 指定网关地址
        filename "linux-install/pxelinux.0";               # 指定pxelinux.0 所在位置
        next-server 192.168.1.222;             # 指定TFTP 服务器地址为192.168.1.222
}
 
三、安装配置TFTP
1、安装TFTP
[root@vhost1 ~]# yum install tftp-server
 
2、配置TFTP
TFTP 的配置相对比较简单,只需要开启即可
[root@vhost1 ~]# vim /etc/xinetd.d/tftp 
        disable  =  no
 
开启之后,需要将所需的文件拷贝到tftp 默认目录下,我创建的目录结构如下:
/var/lib/tftpboot/ --> linux-install --> pxelinux.0
                                                          --> pxelinux.cfg --> default
                                                          --> rhel6.4_x64 --> vmlinuz
                                                                                    --> initrd.img
                                                          --> boot.msg
                                                          --> splash.jpg
                                                          --> vesamenu.c32
 
以下是创建目录步骤
注:我已将rhel6.4 镜像解压放到192.168.1.254 上面,需要什么文件的时候,直接下载到本地。
[root@vhost1 ~]# cd /var/lib/tftpboot/
[root@vhost1 tftpboot]# mkdir linux-install
[root@vhost1 tftpboot]# cd linux-install

[root@vhost1 linux-install]# yum install syslinux
[root@vhost1 linux-install]# cp /usr/share/syslinux/pxelinux.0 .
 
[root@vhost1 linux-install]# mkdir pxelinux.cfg
[root@vhost1 linux-install]# wget http://192.168.1.254/source/rhel6.4_x64/isolinux/isolinux.cfg
[root@vhost1 linux-install]# mv isolinux.cfg pxelinux.cfg/default
 
[root@vhost1 linux-install]# wget http://192.168.1.254/source/rhel6.4_x64/isolinux/boot.msg
[root@vhost1 linux-install]# wget http://192.168.1.254/source/rhel6.4_x64/isolinux/splash.jpg
[root@vhost1 linux-install]# wget http://192.168.1.254/source/rhel6.4_x64/isolinux/vesamenu.c32
 
[root@vhost1 linux-install]#rhel6.4_x64
[root@vhost1 rhel6.4_x64]# wget http://192.168.1.254/source/rhel6.4_x64/isolinux/vmlinuz
[root@vhost1 rhel6.4_x64]# wget http://192.168.1.254/source/rhel6.4_x64/isolinux/initrd.img
 
四、安装配置FTP
1、安装VSFTP
 [root@vhost1 ~]# yum install vsftpd
 
2、将镜像挂载上去后,将镜像拷贝到FTP 目录下
[root@vhost1 pub]# mount /dev/cdrom /mnt/cdrom/
[root@vhost1 pub]# cp -a /mnt/cdrom/* /var/ftp/pub/
[root@vhost1 pub]# ls /var/ftp/pub/
EFI      EULA_zh                   RELEASE-NOTES-bn-IN.html  RELEASE-NOTES-ko-KR.html  RELEASE-NOTES-zh-CN.html
EULA     GPL                       RELEASE-NOTES-de-DE.html  RELEASE-NOTES-ml-IN.html  RELEASE-NOTES-zh-TW.html
EULA_de  HighAvailability          RELEASE-NOTES-en-US.html  RELEASE-NOTES-mr-IN.html  repodata
EULA_en  images                    RELEASE-NOTES-es-ES.html  RELEASE-NOTES-or-IN.html  ResilientStorage
EULA_es  isolinux                  RELEASE-NOTES-fr-FR.html  RELEASE-NOTES-pa-IN.html  RPM-GPG-KEY-redhat-beta
EULA_fr  LoadBalancer              RELEASE-NOTES-gu-IN.html  RELEASE-NOTES-pt-BR.html  RPM-GPG-KEY-redhat-release
EULA_it  media.repo                RELEASE-NOTES-hi-IN.html  RELEASE-NOTES-ru-RU.html  ScalableFileSystem
EULA_ja  Packages                  RELEASE-NOTES-it-IT.html  RELEASE-NOTES-si-LK.html  Server
EULA_ko  README                    RELEASE-NOTES-ja-JP.html  RELEASE-NOTES-ta-IN.html  TRANS.TBL
EULA_pt  RELEASE-NOTES-as-IN.html  RELEASE-NOTES-kn-IN.html  RELEASE-NOTES-te-IN.html
 
五、配置default 文件
[root@vhost1 linux-install]# vim pxelinux.cfg/default
default vesamenu.c32     # 默认使用图形菜单,注意这个文件的相对路径;
#prompt 1           # 不使用图形菜单,而是用 boot.msg 定义的菜单时,要启用该项;
timeout 600        # 等待时间 60 秒

#display boot.msg

menu background splash.jpg
menu title Welcome to 365LINUX Installer!    # 菜单标题
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux    #  菜单选项,这里有3个,安装 RHEL6 、自动安装RHEL6(ks)和从本地启动。
  menu label ^Install linux system
  kernel rhel6.4_x64/vmlinuz
  append initrd=rhel6.4_x64/initrd.img        # 注意这里的路径都是相对于linux-install 目录而言的

label linux auto install
  menu label ^Auto install linux system
  kernel rhel6.4_x64/vmlinuz
  append initrd=rhel6.4_x64/initrd.img xdriver=vesa nomodeset

label local
  menu label Boot from ^local drive
  menu default         # 60 秒后默认加载的选项。
  localboot 0xffff

label memtest86
  menu label ^Memory test
  kernel memtest
  append -
 
六、启动服务,配置防火墙
[root@vhost1 ~]# service vsftpd start
Starting vsftpd for vsftpd:                            [  OK  ]
[root@vhost1 ~]# service dhcpd start
Starting dhcpd:                                            [  OK  ]
[root@vhost1 ~]# service xinetd start
Starting xinetd:                                           [  OK  ]
 
防火墙配置
[root@vhost1 ~]# iptables -I INPUT 4 -m state --state NEW -p udp --dport 69 -j ACCEPT
[root@vhost1 ~]# iptables -I INPUT 4 -m state --state NEW -p udp --dport 67 -j ACCEPT
[root@vhost1 ~]# iptables -I INPUT 4 -m state --state NEW -p tcp --dport 21 -j ACCEPT
[root@vhost1 ~]# modprobe nf_conntrack_ftp
[root@vhost1 ~]# modprobe nf_nat_ftp
[root@vhost1 ~]# vim /etc/sysconfig/iptables-config
IPTABLES_MODULES="nf_conntrack_ftp nf_nat_ftp"
注意:由于FTP 有2个端口,而且主动FTP 和被动FTP 它们的数据端口不同,所以这里除了开放TCP  21号口,还需要加载特定的模块给FTP
 
七、创建虚拟机,作为测试安装的机器
启动模式选择PXE

这里网卡同样需要选择桥接

启动系统后,可以看到已经从DHCP服务器上获取到IP地址,并从TFTP上下载所需文件,加载内核

 

已经到了定制的安装界面

 

 

到这一步就是选择安装介质的时候,需要选择URL 
注意:介质可以是HTTP、FTP、NFS 等,需要写上对应的路径

设置FTP 路径

 

如果所设路径没问题,可以正常访问到,那么将来到以下安装界面,接下来的步骤便不再重复

注意,在设置路径的时候,例如我设置的是ftp ,那么先在本机上测试能否正常访问ftp 服务器,能否正常读取到FTP上的资源

检查的话,大概可以从以下几个方面入手:
1. 防火墙
2. selinux
3. 填写的路径是否正确
 
例如我设置前,就发现FTP 能访问到,但是却访问不到资源,所以在上面那一步填写FTP 地址按NEXT 的时候,总是提示unable to receive ... 
检查了下,是selinux 的问题由于我是放在/var/ftp/pub 目录下,所以那些文件的上下文标签不符合ftp 所要求的,改一下即可
[root@vhost1 ~]# ll /var/ftp/pub -Z
dr-xr-xr-x. root root system_u:object_r:iso9660_t:s0   EFI
lrwxrwxrwx. root root system_u:object_r:iso9660_t:s0   EULA -> EULA_en
-r--r--r--. root root system_u:object_r:iso9660_t:s0   EULA_de
-r--r--r--. root root system_u:object_r:iso9660_t:s0   EULA_en

[root@vhost1 ~]# chcon -t public_content_t -R /var/ftp/pub/*
[root@vhost1 ~]# ll /var/ftp/pub -Z
dr-xr-xr-x. root root system_u:object_r:public_content_t:s0 EFI
lrwxrwxrwx. root root system_u:object_r:public_content_t:s0 EULA -> EULA_en
-r--r--r--. root root system_u:object_r:public_content_t:s0 EULA_de

 

 

你可能感兴趣的:(linux,安装,网络)