Chinaunix首页 | 论坛 | 博客
  • 博客访问: 261295
  • 博文数量: 54
  • 博客积分: 2668
  • 博客等级: 少校
  • 技术积分: 560
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-06 01:08
文章分类

全部博文(54)

文章存档

2011年(14)

2010年(14)

2009年(26)

分类:

2009-05-06 09:11:21


write by Linc


.网络职守安装

1.1动态主机配置协议(DHCP)

  1. 服务端端口67UDP

  2. 客户端端口68/UDP

  3. 客户端发送 DHCPDISCOVER 在网络中寻求地址分配

  4. 服务端回应DHCPDISCOVER 请求

  5. 客户端发送DHCPREQUEST

  6. 服务端发送DHCPBACK

  7. 客户端得到地址

DHCP DynamicHostConfigurationProtocol 的缩写,它的前身是


BOOTPBOOTP 原本是用于无盘主机连接的网络上面的:网络主机使用 BOOTROM


不是磁盘起动并连接上网络,BOOTP 则可以自动地为那些主机设定 TCP/IP 环境。但


BOOTP 有一个缺点:您在设定前须事先获得客户端的硬件 MAC 地址,而且与 IP 的对应


是静态的。换而言之,BOOTP 非常缺乏"动态性",若在有限的 IP 资源环境中,BOOTP


的一对一的对应关系会造成非常大的浪费

DHCP 可以看作是 BOOTP 的增强版本,它分为两个部份:服务器端和客户端。所有


IP 地址设定资料都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求;而客


户端则会使用从服务器分配下来的 IP 环境资料。比较起 BOOTP,DHCP 透过"租约"的概


,有效且动态的分配客户端的 TCP/IP 设定,而且作为兼容考量,DHCP 也完全照顾了


BOOTPClient 的需求

DHCP 的工作原理 如下:


DHCP 客户端第一次登录网络的时候,也就是客户发现本机上没有任何 IP 资料,


它会向网络发出一个 DHCPDISCOVER 封包。因为客户端还不知道自己属于哪一个网络,


所以封包的来源位址会为 0.0.0.0 ,而目的位址则为 255.255.255.255 ,然后再附上


DHCPDISCOVER 的信息,向网络进行广播。 当 DHCP 服务器监听到客户端发出的DHCPDISCOVER 广播后,它会从那些还没有租出的 IP 地址范围内按一定顺序选出一个


IP 地址 ,连同其它 TCP/IP 设置,回应给客户端一个 DHCPOFFER 封包。由于客户端在


开始的时候还没有 IP 位址,所以在其 DHCPDISCOVER 封包内会带有其 MAC 地址信息,


并且有一个 XID 编号来辨别该封包,DHCP 服务器回应的 DHCPOFFER 封包则会根据


这些资料传递给要求租约的客户。根据服务器端的设置,DHCPOFFER 封包会包含一个租


约期限的信息。如果客户端收到网络上多台 DHCP 服务器的回应,只会挑选其中一个

DHCPOFFER(通常是最先抵达的那个),并且会向网络发送一个 DHCPREQUEST 广播

封包,告诉所有 DHCP 服务器它将指定接受哪一台服务器提供的 IP 地址。同时,客户端

还会向网络发送一个 ARP 封包,查询网络上面有没有其它机器使用该 IP 地址;如果发现

IP 已经被占用,客户端则会送出一个 DHCPDECLINE 封包给 DHCP 服务器,拒绝接

受其 DHCPOFFER,并重新发送 DHCPDISCOVER 信息。 当 DHCP 服务器接收到客

户端的 DHCPREQUEST 之后,会向客户端发出一个 DHCPACK 回应,以确认 IP 租约

的正式生效,也就结束了一个完整的 DHCP 工作过程。

协议结构

8 bits

16 bits

24 bits

32 bits

Op

Htype

Hlen

Hops

Xid

Secs

Flags

Ciaddr

Yiaddr

Siaddr

Giaddr

Chaddr (16 bytes)

Sname (64 bytes)

File (128 bytes)

Option (variable)

  • Op – 消息操作代码,既可以是引导请求(BOOTREQUEST)也可以是引导答复(BOOTREPLY

  • Htype – 硬件地址类型

  • Hlen – 硬件地址长度

  • Xid –处理ID

  • Secs –客户机地址获取,进程恢复消耗的时刻

  • Flags –标记

  • Ciaddr –客户机 IP地址

  • Yiaddr –“你的”(客户机) IP 地址

  • Siaddr –bootstrap 中使用的下一台服务器的IP地址

  • Giaddr –用于导入的接替代理IP地址

  • Chaddr –客户机硬件

  • Sname –任意服务器主机名称,空终止符

  • File –DHCP 发现协议中的引导文件名、空终止符、属名或者空,DHCP供应协议中的受限目录路径名

  • Options –可选参数字段。参考定义选择列表中的选择文件


.DHCP



服务的安装

1. dhcp 软件包


2. /etc/dhcpd.conf 配置文件


3 例子配置文件/usr/share/doc/dhcp?/dhcpd.conf.sample


不像大多数 RPM 那样,默认情况下 dhcp RPM 包并没有默认的/etc/dhcpd.conf


置文件,但是你可以根据/usr/share/doc/dhcp?/dhcpd.conf.sample 文件修改出


适合你网络配置文件。

.DHCP的配置选项

  1. ddns-update-style 参数用来设置 DHCP 服务器与 DNS 服务器的动态信息更新模式.


选配置项为 ad?hocinterim noneinterim DNS 互动更新。

2. subnet

DHCP.CONF 文件中最常用的声明,用于在子网中设置动态分配的地址的网


络属性。如果在/etc/sysconfig/dhcp 中设置了 DHCPDARGS=eth0,那么 subnet 则只针对


eth0 设备。subnet 的设置中有很多 option 设置,可以为 DHCP 客户设置默认网关 网

掩码、NIS 域、DNS 服务器地址和时间设置等。

3. option


4 . range dynamic-bootp

DHCP 服务器设置可动态分配的 IP 地址池。

5. default-lease-time

DHCP 客户设置默认的地址租期,单位为秒。

6. max-lease-time DHCP 客户设置最长的地址租期,单位为秒

7. host

置特定主机声明,主要用于绑定特定 MAC 地址的主机和 IP 地址。

Dhcp-conf 例子:

ddns-update-style interim; //配置使用 DHCP 更新 DNS


ignore client-updates; //忽略客户端更新


subnet 192.168.0.0 netmask 255.255.255.0 { //设置子网声明

option routers 192.168.0.254 //DHCP 客户设置默认网关


option subnet-mask 255.255.255.0; //DHCP 客户设置子网掩码


option nis-domain “notuplooking.com”; //DHCP 客户设置 NIS


option domain-name “uplooking.com”; //DHCP 客户设置 DNS


option domain-name-servers 192.168.0.254; //DHCP 客户设置 DNS 地址,如果网络中没有 DNS 服务


器和有 DNS 却没有反向解析的时候,不要设置此项,会影响客户机的启动和安装速度


option ntp-servers 192.168.0.254; //DHCP 客户设置网络时间服务器的 ip 地址


range dynaic-bootp 192.168.0.100 192.168.0.130; //设置地址池


default-lease-time 21600; //DHCP 客户设置默认的地址租期(单位 s)


max-lease-time 43200; //DHCP 客户设置最长的地址租期(单位 s)


host stu1 { //设置主机声明


next-server server.uplooking.com; //设置用于定义服务器从引导文件中装入的主机名, 用于无盘工作站


hardware Ethernet 12:34:56:78:AB:CD; //指定 DHCP 客户的 MAC 地址


fixed-address 192.168.0.1; //对指定的 MAC 地址分配固定的 IP 地址


}


}




.预启动环境的配置(PEX)

  1. 通过网卡引导引导计算机 ,进BIOS设置首选为从网络启动

  2. 网卡和BIOS必须支持PEX

  3. 启用DHCPTFTP服务

PXE(Preboot Execution Environment)是由 Intel 设计的协议,它可以使计算机通过


网络启动。协议分为客户端和服务器两端,PXE 客户端在网卡的 ROM ,当计算机引导


BIOS PXE 客户端调入内存执行,并显示出命令菜单,经用户选择后,PXE 客户端


将放置在远端的操作系统通过网络下载到本地运行。


PXE 协议的成功运行需要解决以下两个问题:第一,IP 由谁和如何分配分配;第二,


户端所需系统内核和其他文件从哪里得到。


对于第一个问题,可以通过 DHCP 服务解决,DHCP 服务来给 PXE 客户端分配一


IP 地址,同时在配置 DHCP Server ,需要增加相应的 PXE 特有配置。比如告诉


PXE 客户端所需文件到哪里找。


至于第二个问题,PXE 客户端所在的 ROM ,已经存在了 TFTP 客户端。PXE


客户端使用 TFTP 客户端,通过 TFTP 协议到 TFTP 服务器上下载所需的文件。


PXE 的工作过程:


PXE 客户端是需要 PXE 启动的计算机,TFTP 服务器和 DHCP 服务器可以运行在单


一的 Linux 服务器上,也可以安装在两个独立的 Linux 服务器上。Bootstrap 文件、配置


文件、内核文件以及内核启动其他必须文件都放置在运行 TFTP 服务器的 TFTP 服务根目


录下。

PXE 客户端是作为 kickstart 安装方式启动还是无盘工作站方式启动,在最终文件需求

上有所不同。kickstart 安装方式需要在 bootstrap 文件或 bootstrap 所需 boot 配置文件中


指定 kickstart 文件的位置,而无盘工作站则要指定 nfsroot 的位置。

.配置PEX

  1. 配置DHCP服务。详细见上

例子:

ddns-update-style interim;


ignore client-updates;


allow bootp

allow booting

subnet 192.168.0.0 netmask 255.255.255.0 {


option routers 192.168.0.254;


option subnet-mask 255.255.255.0;


next-server 192.168.0.254;


#指定了 TFTP 服务器 IP 地址为 192.168.0.254

filename="pxelinux.0";

# 指定了 bootstrap


#件为 192.168.0.254 这台 TFTP 服务器/tftpboot 目录下的 pxelinux.0 的文件。


range dynamic-bootp 192.168.0.200 192.168.0.240;


default-lease-time 21600;


max-lease-time 43200;


}



  1. 配置TFTP服务 :

1.下载安装tftp-servertftp
2.
默认状态下tftp服务是禁用的,修改配置文件/etc/xinetd.d/tftp

有两种方法开启它:
1)删除 disable=yes
2)在配置文件里面的disable=yes前面加#将它注释掉。

如下:
# default: off
# description: The tftp server serves files using the trivial file transfer
# protocol. The tftp protocol is often used to boot diskless
# workstations, download configuration files to network?aware printers,
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = ?s /tftpboot -c
# disable = yes
per_source = 11
cps = 100 2
}

3.其中server_args代表tftp的根路径,修改完成后还要修改/tftpboot的权限,否则无法向tftp服务器上传文件

chmod 777 /tftpboot

4.
执行/etc/init.d/xinetd restart 或者service xinet restart重新启动xinetd服务,并在系统—服务那里面确保tftp已钩选。

5.执行chconfig –-list 是否开启

6.测试服务

touch tftp/test

#vi tftp/test

#tftp 你的IP

>get test

>quit

#cat test


.PXELINUX

  • SYSLINUX的启动主要是以CD/DVD

  • 放入tftpboot目录的bootrap文件名必须保证和dhcp.conf配置文件中写的一样(pxelinux.0)

  • Linux 安装和无盘工作站所需要的内核文件(vmlinuz initrd.img)也要放

/tftpboot/目录

  • /tftpboot/pxelinux.cfg/目录放置网络启动配置文件

PXELINUX SYSLINUX ISOLINUX 类似的软件。PXELINUX 让我们可以


使用符合 Intel PXE (Pre-eXecution Environment) 规格的网卡 boot ROM,直接从区域


网络上启动 Linux 核心及整个系统。系统安装了 syslinux RPM 包后就可以


/usr/lib/syslinux 目录中找到 pxelinux.0 这个文件,这个文件就是用来从无盘客户端引导、


启动和安装 Linux 系统的关键文件。

PXE 客户端装入 pxelinux.0 引导器文件后,它将按 pxelinux.0 文件内建的规则读


pxelinux.cfg/目录下的配置文件。它找寻配置文件的方法是先比对 MAC 地址而后是 IP


地址,如果均无匹配,则将文件名为 default 的文件作为配置文件。例如请求的 PXE 客户


MAC 地址为 00:16:D3:24:EB:DB,分配的 IP 地址为 192.168.0.1(十六进制表示方式为


C0A80001)。它请求一个 TFTP 服务器上的 PXELINUX 配置文件的顺序就是:



/tftpboot/pxelinux.cfg/00-16-d3-24-eb-db


/tftpboot/pxelinux.cfg/C0A80001


/tftpboot/pxelinux.cfg/C0A8000


/tftpboot/pxelinux.cfg/C0A800


/tftpboot/pxelinux.cfg/C0A80


/tftpboot/pxelinux.cfg/C0A8


/tftpboot/pxelinux.cfg/C0A


/tftpboot/pxelinux.cfg/C0


/tftpboot/pxelinux.cfg/C


/tftpboot/pxelinux.cfg/default


.KistartPEXLINUX

  1. kickstart 文件位置由 PXELINUX 的启动配置文件告知安装内核

  2. kickstart 文件可以由 nfs http 服务器提供

  3. 安装包源位置由 kickstart 文件指定

一个简单的 PXELINUX 配置文件:

# cat /tftpboot/pxelinux.cfg/default


default local


prompt 1


timeout 60


display boot.msg


label local


localboot 1


label linux


kernel vmlinuz


append initrd=initrd.img ramdisk_size=8192


label ksinstall


kernel vmlinuz


append initrd=initrd.img ramdisk_size=8192 ks=


label vncinstall


kernel vmlinuz


append initrd=initrd.img ramdisk_size=8192 vnc vncpassword=password

阅读(829) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~