DHCP+TFTP+FTP 實現網絡安裝Linux 系統

DHCP+TFTP+FTP 實現網絡安裝linux系統
2013-03-25 00:17:18
實驗環境
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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章