2013-03-25 00:17:18
實驗環境
rhel6.4_x64 系統
在XEN 虛擬機中進行實驗。
在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
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
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
}
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"[root@student-04 network-scripts]# vim ifcfg-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、配置虛擬機服務器網卡爲橋接模式
[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、配置虛擬機服務器網卡爲橋接模式
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 中[root@vhost1 ~]# vim /etc/dhcp/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
[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 linux-install]# wget http://192.168.1.254/source/rhel6.4_x64/isolinux/splash.jpg
[root@vhost1 rhel6.4_x64]# wget http://192.168.1.254/source/rhel6.4_x64/isolinux/initrd.img
default vesamenu.c32 # 默認使用圖形菜單,注意這個文件的相對路徑;
#prompt 1 # 不使用圖形菜單,而是用 boot.msg 定義的菜單時,要啓用該項;
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
[root@vhost1 ~]# modprobe nf_conntrack_ftp
[root@vhost1 ~]# modprobe nf_nat_ftp
[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]# 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/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/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
[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
[root@vhost1 linux-install]# vim pxelinux.cfg/default
#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 目錄而言的
#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 ]
Starting vsftpd for vsftpd: [ OK ]
[root@vhost1 ~]# service dhcpd start
Starting dhcpd: [ OK ]
[root@vhost1 ~]# service xinetd start
Starting xinetd: [ OK ]
Starting dhcpd: [ OK ]
[root@vhost1 ~]# service xinetd start
Starting xinetd: [ OK ]
防火牆配置
[root@vhost1 ~]# iptables -I INPUT 4 -m state --state NEW -p tcp --dport 21 -j ACCEPT[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 udp --dport 67 -j ACCEPT
[root@vhost1 ~]# modprobe nf_conntrack_ftp
[root@vhost1 ~]# modprobe nf_nat_ftp
[root@vhost1 ~]# vim /etc/sysconfig/iptables-config
到這一步就是選擇安裝介質的時候,需要選擇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 ~]# 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
[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