1、 DHCP服務的配置.
1.1 DHCP簡介:
DHCP動態主機配置協議,在一個小型區域網里可以通過手工指定ip地址的方式,但如有大量的主機,如果還是手工指定,那是一個很大的工作量,而且也容易出錯,這時,就可以通過配置一台DHCP伺服器來解決,為每台主機分配一個ip地址.
DHCP作用域是指DHCP伺服器可分配給DHCP客戶端的IP地址範圍,一個DHCP伺服器至少要一個作用域,如有多個作用域,作用域之間的IP地址不能重疊.1.2 DHCP的工作原理:
DHCP工作過程分為四個步驟:
第一步(DHCPDISCOVER):客戶端發送廣播查找可以給自己提供
IP地址的DHCP伺服器,第二步(DHCPOFFER):DHCP伺服器發送廣播提供一個可用的IP地址,並在地址池中將該地址打上標記,以防再次分配.
第三步(DHCPREQUEST):客戶端收到廣播后再次發送一個廣播請求該地址,如果有多台DHCP響應,則第一個收到的優先.
第四步(DHCPACK):DHCP伺服器收到廣播后再發送一個廣播,確認該地址分配給這台主機使用,並在地址池中將該地址打上標記,以防再次分配.
1.3 DHCP的基本配置:
第一步:安裝軟體:
[root@localhost ~]# rpm -ivh /misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm
第二步:編輯配置文件:
[root@localhost ~]# vi /etc/dhcpd.conf
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
當進入到配置文件裡面時,這裡是空的,有如上一行的提示,說可以參考這個文件來編寫配置文件,那就複製一份再編輯.
[root@localhost ~]# cp -rvf /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
[root@localhost ~]# vi /etc/dhcpd.conf
ddns-update-style interim; //配置DHCP和DNS為互動更新模式,
ignore client-updates; //忽略客戶端的更新.
subnet 192.168.100.0 netmask 255.255.255.0 { //定義作用域
option routers 192.168.100.1; //默認路由
option subnet-mask 255.255.255.0; //子網掩碼
option nis-domain "rhel.com"; //NIS域名
option domain-name "rhel.com"; //DNS域名
option domain-name-servers 192.168.100.10; //DNS伺服器地址
option time-offset -18000; # Eastern Standard Time //為客戶端設置與格林威治的時間偏移
option ntp-servers 192.168.1.1; //網路時間伺服器地址
option netbios-name-servers 192.168.1.1; //指定WINS伺服器地址
range dynamic-bootp 192.168.100.128 192.168.100.254; //動態分配的地址範圍
default-lease-time 21600; //默認租約時間
max-lease-time 43200; //最大租約時間
host abc { //指定特定主機
hardware ethernet 00:0C:29:FD:44:C8; //硬體地址
fixed-address 192.168.100.30; //IP地址
}
}
如有多個要綁定的主機時可以把所有主機信息用group{ }包括起來,這樣更方便管理.格式如下 :
group {
……這裡不可以添加一些佤全局選項,這樣就不用在每個裡面寫了.
host abc {
……
……
}
host xyz {
……
……
}
}
[root@localhost ~]# service dhcpd restart
測試:
在linux下:
讓地址從DHCP獲取:
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
[root@localhost ~]# service network restart //重啟一下網路服務,這裡不能使用ifdown和
ifup,要配置路由信息.[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:FD:44:C8
inet addr:192.168.100.30 Bcast:192.168.100.255 Mask:255.255.255.0
這就是綁定的IP地址.
[root@localhost ~]# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search rhel.com
nameserver 192.168.100.10
這裡的DNS伺服器地址也獲取到了.
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U
0 0 0 eth00.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 eth0
默認路由也獲取到了.查看一下埠:
[root@localhost ~]# netstat -tlunp | grep 68
udp 0 0 0.0.0.0:68 0.0.0.0 16150/dhclient
查看客戶端的租約文件:
lease {
interface "eth0";
fixed-address 192.168.100.30; //固定地址
option subnet-mask 255.255.255.0; //子網掩碼
option time-offset -18000; //時間偏移
option routers 192.168.100.1; //默認路由
option dhcp-lease-time 21600; //租約時間
option dhcp-message-type 5;
option domain-name-servers 192.168.100.10;
option dhcp-server-identifier 192.168.100.20;
option nis-domain "rhel.com";
option domain-name "rhel.com";
renew 5 2010/4/9 09:01:40;
rebind 5 2010/4/9 11:34:53;
expire 5 2010/4/9 12:19:53;
}
windows下:
把IP地址設成自動獲取.
C:Documents and SettingsAdministrator>ipconfig /all
Connection-specific DNS Suffix . : rhel.com
Physical Address. . . . . . . . . : 00-0C-29-D3-C6-B3
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 192.168.100.253
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.100.1
DHCP Server . . . . . . . . . . . : 192.168.100.20
DNS Servers . . . . . . . . . . . : 192.168.100.10
Lease Obtained. . . . . . . . . . : 2010年4月9日 14:44:12
Lease Expires . . . . . . . . . . : 2010年4月9日 20:44:12
基本配置完成.
1.4 DHCP超級作用域.
比如現在有一個C類的作用域,但隨著網路的擴大,現在一個C類網路地址已經不夠用了,那別的主機怎麼得到IP地址呢?經過測試,直接再添加一個作用域發現第二個作用域的地址申請不到,那解決的辦法呢?如下:
shared-network supper {
}
用這個把所有的作用域括起來,就可以實現了.shared-network 後面的supper是自己定義的超級作用域名稱,可以隨便.很簡單吧?
1.5 DHCP保留地址.
在DHCP里為某個主機綁定地址已經知道了,但怎麼去保留某一段地址來留著備用呢?如有這樣一個要求:DHCP提供
192.168.100.0 /24這上網段的地址,但現在想192.168.100.2-192.168.100.99,192.168.100.101-192.168.100.254這些地址是不能分出去的,要保留使用.(這是為了實驗,這樣就只有兩個IP地址能分配了,能夠證明.)實現如下:range dynamic-bootp 192.168.100.1 192.168.100.1;
range dynamic-bootp 192.168.100.100 192.168.100.100;
其實原理很簡單,就是把可以分出去的地址寫出來,沒寫的自然就不會被分出去了,這樣就實現了地址的保留.
1.6
DHCP中繼代理.如果有兩個子網,中間隔著一台路由器,而只有一台DHCP伺服器,主機向DHCP伺服器申請地址時使用的是廣播,路由器又隔離廣播,那另一個子網的主機怎麼獲得IP地址呢?有一種支持RFC1542的路由器可以實現,但不是這種路由器那就沒辦法了嗎?當然不是,這時,就需要用到DHCP中繼代理了.
配置DHCP伺服器:
[root@rhel ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.1 //這個網關一定要.
[root@rhel ~]# service network restart
安裝DHCP軟體:
[root@rhel ~]# rpm -ivh /misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm
編輯配置文件:
[root@rhel ~]# vi /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
option time-offset -18000;
default-lease-time 21600;
max-lease-time 43200;
shared-network supper {
subnet 192.168.10.0 netmask 255.255.255.0 {
option routers 192.168.10.1; //必需配置網關地址.
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.10.2 192.168.10.2;
}
subnet 192.168.20.0 netmask 255.255.255.0 {
option routers 192.168.20.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.20.2 192.168.20.3;
}
}
[root@rhel ~]# service dhcpd restart
接下來配置DHCP中繼代理伺服器:
DHCP中繼代理伺服器需要有兩塊網卡.eth0用於和DHCP伺服器相連,eth1用於和內網相連.
[root@rhel3 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.10.1 //這裡的地址是DHCP伺服器的網關地址.
NETMASK=255.255.255.0
[root@rhel3 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.20.1 //這裡的地址是第二個作用域的地址.
NETMASK=255.255.255.0
[root@rhel3 ~]# service network restart
安裝DHCP軟體(必需):
[root@rhel3 ~]# rpm -ivh /misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm
編輯這個文件,開啟轉發功能:
[root@rhel3 ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 //把這裡改為1,默認為0.
執行為條命令使其生效:
[root@rhel3 ~]# sysctl -p
[root@rhel3 ~]# dhcrelay 192.168.10.10 //後面是DHCP的IP地址.
好了,配置完成,測試.
1.7 DHCP常用命令.
ipconfig /release //windows下釋放IP地址
ipconfig /renew //windows下重新獲取IP地址
service network restart //linux重啟網路服務
1.8 DHCP綜合配置實例.
目標:
當網路中的DHCP伺服器出現問題,另一台伺服器可以繼續承擔分配ip地址,主伺服器的地址為192.168.10.10,輔伺服器的地址為192.168.10.11,分配的地址範圍是192.168.10.100-192.168.10.254,默認租約為
1天,最大租約為2天.默認路由為192.168.10.1,DNS伺服器地址為192.168.20.20,DNS域名為rehl.com.WINS伺服器地址為192.168.20.21.其中,192.168.10.201保留給計算機名為rhel3,MAC地址為00:0C:29:2B:5B:2F的主機使用,並配置DNS伺服器地址為219.146.0.130,
192.168.20.20.192.168.10.202保留給計算機名為rhel4,MAC地址為00-0C-29-D3-C6-B3的主機使用,並配置DNS伺服器地址為219.146.0.130,192.168.20.20.192.168.10.150-192.168.10.160地址保留備用.
配置過程:
主伺服器配置:
[root@rhel ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR=192.168.10.10
NETMASK=192.168.10.11
[root@rhel ~]# service network restart
[root@rhel ~]# rpm -ivh /misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm
[root@rhel ~]# vi /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
default-lease-time 86400;
max-lease-time 172800;
option routers 192.168.10.1;
option domain-name "rhel.com";
option domain-name-servers 192.168.20.20;
option netbios-name-servers 192.168.20.21;
range dynamic-bootp 192.168.10.100 192.168.10.140;
range dynamic-bootp 192.168.10.161 192.168.10.200;
group {
option domain-name-servers 219.146.0.130,192.168.20.20;
host rhel3 {
hardware ethernet 00:0C:29:2B:5B:2F;
fixed-address 192.168.10.201;
}
host rhel4 {
hardware ethernet 00:0C:29:D3:C6:B3;
fixed-address 192.168.20.202;
}
}
}
[root@rhel ~]# service dhcpd restart
輔伺服器的配置:
[root@rhel2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.10.11
NETMASK=255.255.255.0
[root@rhel2 ~]# service network restart
[root@rhel2 ~]# rpm -ivh /misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm
[root@rhel2 ~]# vi /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
default-lease-time 86400;
max-lease-time 172800;
option routers 192.168.10.1;
option domain-name "rhel.com";
option domain-name-servers 192.168.20.20;
option netbios-name-servers 192.168.20.21;
range dynamic-bootp 192.168.10.203 192.168.10.254; //除了這裡不一樣,其他都都一樣.
group {
option domain-name-servers 219.146.0.130,192.168.20.20;
host rhel3 {
hardware ethernet 00:0C:29:2B:5B:2F;
fixed-address 192.168.10.201;
}
host rhel4 {
hardware ethernet 00:0C:29:D3:C6:B3;
fixed-address 192.168.20.202;
}
}
}
[root@rhel2 ~]# service dhcpd restart
實驗完成.測試.
[火星人 ] Linux-DHCP服務的配置已經有712次圍觀