❶ 怎麼設置dhcp
1、DHCP是路由器網路接入模式之一。通常有靜態IP、PPPOE、DHCP三種方式。設置什麼模式,與上級網路類型相關;
2、當上級網路介面是小區交換機設備,要設置WAN口接入方式為靜態IP模式。運營商會給用戶四組IP代碼,包括IP地址、子網掩碼、網關地址、DNS地址。
3、當寬頻網路的為動態IP模式(也稱DHCP),路由器的WAN口接入方式,應設置為DHCP模式。通過自動檢測,即可設置路由器參數,與上級網路連接;
3、而上級網路為ADSL或光纖,運營商會提供配套的數據機Moden,俗稱「 貓 」,並上門安裝設備,開通網路服務。路由器的WAN口設置如下:
① 路由器與貓連接後,其接入模式應設置為PPPOE;
② 輸入運營商分配的上網賬號、上網口令,並將自動撥號項選中,讓路由器代替手動撥號;
4、路由器WAN口接入方式,是按開通的寬頻技術類型要求而定,不是隨意設置的。不符合要求的參數設置,路由器將不能與上級網路接通。
❷ DHCP 怎樣設置
設置和使用DHCP
在FreeBSD的Packages Collection中,有兩個不同的DHCP客戶機和伺服器軟體,一個為ISC-DHCP,另一個為WIDE-DHCP,兩個軟體都包括了DHCP客戶軟體和伺服器軟體,其中ISC-DHCP 更為常用一些,這里就以ISC-DHCP為例介紹在FreeBSD上安裝和設置DHCP。
為了支持DHCP,首先要確認系統內核支持偽設備bpfilter,如果沒有,就需要重新編譯內核。偽設備bpfilter 是一個允許應用程序接收網路的原始數據包的界面,這樣應用程序就能接收目的地址非本機IP地址的數據包了。DHCP使用bpfilter的原因是在DHCP設置好計算機的TCP/IP之前,由於計算機本身沒有定義IP地址,而TCP/IP堆棧本身不會接收不具備本機IP地址的數據包。要接收DHCP伺服器發送回客戶的數據包,就需要繞過TCP/IP堆棧,而必須使用偽設備bpfilter。
pseudo-device bpfilter 4
定製內核之後,還要保證/dev/目錄下具有對應bpfilter的設備文件。
# cd /dev
# sh MAKEDEV bpf0 bpf1 bpf2 bpf3
從Packages Collecion中安裝DHCP軟體,這將DHCP軟體中的dhcpd,dhclient和dhcprelay 安裝到/usr/local/sbin目錄下。
$ ls /usr/local/sbin/dhc*
/usr/local/sbin/dhclient /usr/local/sbin/dhcpd
/usr/local/sbin/dhcrelay
設置伺服器
為了設置DHCP伺服器dhcpd,首先就要設置其配置文件/etc/dhcpd.conf。這個配置文件語法簡單,比較容易理解。
server-identifier 192.168.3.1;
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.20;
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.3.255;
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option domain-name "exampleorg.org.cn";
}
host a1 {
hardware ethernet 00:90:27:4e:92:09;
fixed-address 192.168.3.32;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.3.255;
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option domain-name "exampleorg.org.cn";
}
基本的dhcpd.conf首先使用server-identifier定義了本伺服器的IP地址,這對於有多個IP地址的伺服器系統十分重要,一般不必設置這個參數,dhcpd能自動偵測。然後定義要分配IP地址的客戶機組,每組擁有一個可用的IP地址范圍。有兩種客戶機組的劃分方式,一種為指定子網段來區分,一種為指定主機來區分。
這個例子中的第一組定義了一個子網192.168.3.0/24,這個子網段內,可供DHCP伺服器分配的I P地址范圍為192.168.3.10到192.168.3.20,這個地址范圍也可以不是連續的,不連續的地址可以使用多個range設置參數來設置。此外,還設置了這一組內分配的IP地址的租期限制default-lease-time 和max-lease-time,可以使用預設值,而不必改動。後面的option參數設置DHCP的附加功能,例如設置DHCP客戶的網路掩碼、廣播地址、DNS伺服器、域名等等。事實上這些option設置選項也可以被用作全局選項設置,即放置在server-identifier之後,對所有的客戶機組起作用。
例子的第二組是針對某個特定主機a1進行的設置,這個主機被限定為乙太網地址為hardware ethernet 參數值的計算機,將給這個計算機分配一個固定地址。這種分配方式實際等價於固定地址分配方式,唯一的好處就是能夠對IP地址進行集中管理,不必每個計算機分別設置了。這里同樣也可以使用option參數,設置TCP/IP的參數。
dhcpd.conf中還能有更多的組,包括對非本網段的子網上的客戶機指定的組。
當設置了dhcpd.conf之後,就能啟動dhcpd守護進程了,由於計算機會有多個網路界面,需要指定dhcpd 伺服器的網路界面,以便回應相應界面上的DHCP請求。
# /usr/local/sbin/dhcpd fxp0
在調試階段,可以使用-d參數,這樣dhcpd就不會進入後台運行,而一直保留在前台,並顯示各個與客戶計算機通信的過程。當一切都調試完畢之後,就能去除-d參數,並將執行命令放入rc.local啟動腳本中,以便系統能夠自動執行。
此後,dhcpd正常運行的時候,會將每一次客戶請求及其回應的IP地址分配的記錄,都記錄在/var/run/dhcpd.leases 文件中。為了使dhcpd能正常進行日誌記錄,應該在啟動dhcpd之前使用touch 命令,生成一個新的日誌文件。以後就可以查看這個日誌文件的內容,以得到當前DHCP伺服器的狀態和客戶機IP地址分配的情況。以下是一個日誌文件的部分內容。
lease 192.168.3.11 {
starts 3 1998/11/26 05:46:28;
ends 4 1998/11/27 05:46:28;
hardware ethernet 0:80:c2:12:fd:d;
uid 1:0:80:c2:12:fd:d;
}
touch命令的優點是在存在相關的文件時,不刪除或更改文件內容,只更新其訪問時間設置,只有在文件不存在時才生成新文件。
然後就能設置網路中的客戶計算機使用DHCP協議,獲取合法的IP地址了。通常Windows計算機的TCP/IP設置中能直接設置支持DHCP協議,如果為Unix(包括FreeBSD)設置DHCP客戶軟體,就需要dhclient的支持。
設置客戶軟體
ISC-DHCP中同樣也提供了一個客戶程序dhclient,用於FreeBSD系統從DHCP伺服器上動態獲取一個IP地址。這個程序同樣也要求內核支持bpfilter偽設備。
dhclient使用的配置文件為/etc/dhclient.conf,然而最一般的情況下可以不使用它,軟體本身的預設配置就滿足一般情況下請求IP地址的需要了。預設設置下dhclient在獲得了IP地址之後,會自動執行/etc/dhclient-script 這個腳本程序,以針對剛獲取的動態IP地址進行必要的設置。很多依賴於IP地址的網路服務,就可以在這個腳本中啟動,或者針對重新分配的動態IP地址對已有的網路服務進行修正。雖然使用者也許不希望使用這個腳本設置網路,但如果不存在這個腳本程序,或者這個程序不可執行,那麼dhclient就不能正常執行。
因此對於最一般的客戶機,一般只連接到一個網路上,僅具備一個網路界面,可以使用一個空的dhclient.conf 和空的declient-script文件,就能完成設置IP地址和其他TCP/IP參數的任務了。
# touch /etc/dhclient.conf
# touch /etc/dhclient-script
# chmod +x /etc/dhclient-script
# /usr/local/sbin/dhclient fxp0
Listening on BPF/fxp0/00:90:27:4e:92:09/unattached
Sending on BPF/fxp0/00:90:27:4e:92:09/unattached
Sending on Socket/fallback/fallback-net
DHCPDISCOVER on fxp0 to 255.255.255.255 port 67 interval 22
DHCPOFFER from 192.168.3.1
DHCPREQUEST on fxp0 to 255.255.255.255 port 67
DHCPACK from 192.168.3.1
bound to 192.168.3.32 -- renewal in 3600 seconds.
在更復雜的情況下,就要指定更多的內容,例如當系統有多個網卡時,要指定dhclient應該從哪個子網中獲得IP地址設置,就需要使用設置文件dhclient.conf。一般除非有多個區域網網路界面,都應該使用空設置文件,避免產生配置錯誤。以下為一個簡單的dhclient.conf的例子,可以用於多網路界面的情況:
# Defaults
timeout 60;
reboot 10;
retry 60;
select-timeout 5;
initial-interval 2;
script "/etc/dhclient-script";
interface "fxp0" {
request subnet-mask, broadcast-address, routers, domain-name-servers,
domain-name, host-name;
require domain-name-servers;
}
這個設置文件主要用於重新定義一些參數,比較容易理解,更改也比較容易。
成功的手工執行dhclient之後,就可以考慮將其和系統啟動文件相結合了。因為很多網路服務是依賴於網路配置的,應該在啟動這些網路服務之前使用DHCP配置好TCP/IP。使用dhclient-script啟動服務的想法雖然也能解決問題,然而這就不能使用系統的啟動rc文件中的相關設置啟動網路服務,而在這個dhclient-script 中重新啟動,因此比較麻煩。更簡便的做法是僅僅在dhclient-script中設置hostname,而讓系統啟動文件完成其他網路服務的啟動。這樣就要求將dhclient與系統rc文件結合起來。
#hostname="my.domain.name"
network_interfaces="fxp0 lo0" # List of network interfaces (lo0 is
loopback).
ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration.
#ifconfig_fxp0="inet 192.168.3.12 netmask 255.255.255.0"
defaultrouter="NO" # Set to default gateway (or NO).
這樣就需要更改rc.conf文件,更改一些設置語句。首先要注釋hostname設置,而在dhclient.script中進行設置,也不必設置defaultrouter,它通過DHCP協議自動設置。同時要保證network_interfaces參數中,設置了要通過dhclient來獲取IP地址的網路界面fxp0,以允許rc系統文件能啟動該與該界面相關的設置文件,然而卻必須注釋設置該界面的參數ifconfig_fxp0,因為這個設置參數是用於設置靜態IP地址的選項,因此要屏蔽它,而使用start_if.fxp0配置腳本來設置網路界面。
預設情況下,不存在start_if.fxp0等start_if設置網路腳本,但是這些腳本在rc.network已經做好了設置,針對每個網路界面啟動,而不需要在rc.conf中做特別設定。對於dhclient,可以創建一個簡單的啟動腳本start_if.fxp0為:
#! /bin/sh
/usr/local/sbin/dhclient fxp0
這樣,dhclient就和系統啟動文件結合起來了,在系統啟動的時候會自動設置好TCP/IP,此後再啟動相關的網路服務。此時需要注意的是刪除原來可能在rc.local或者在/usr/local/etc/rc.d目錄中的dhclient啟動命令,以避免沖突。
在FreeBSD系統上不推薦使用動態IP地址,因為FreeBSD能提供大量有用的網路服務,都會與IP地址或域名有關,不適合使用動態IP地址。如果必須要作為DHCP客戶以保持IP地址的統一管理,建議使用dhcpd針對硬體地址的設置方式,在DHCP伺服器上為FreeBSD系統設定一個固定IP地址。
設置DHCP中轉
當網路中存在多個子網的時候,由於客戶計算機只能通過廣播發送DHCP請求,這些請求一般不能跨越路由器。為了在DHCP伺服器存在的子網之外的DHCP客戶分配IP地址,可以設置路由器轉發DHCP請求,即轉發相應的UDP 埠67和68的廣播數據包。但這樣設置就增加了網路廣播,不利於減少網路流量。
此外,還有另外一種方法來使得DHCP客戶計算機能使用子網之外的DHCP伺服器來分配IP地址。這就是使用 DHCP中轉計算機來轉發DHCP的請求。DHCP中轉計算機能聽取DHCP廣播,由於它了解DHCP伺服器的IP地址,因此能通過正常的IP數據包將原廣播包轉發到伺服器中,然後再將伺服器的回應信息回復客戶機。這樣DHCP客戶機就以為本子網中也存在一個DHCP伺服器。
在ISC-DHCP軟體中,提供的中轉程序為dhcrelay,這是一個簡單的程序,不需要額外的設置。啟動 dhcrelay的標准方式為使用命令行指定將DHCP服務請求中轉到的目的DHCP伺服器,由於DHCP中允許多個 DHCP伺服器同時為客戶提供地址,而不會產生沖突,就可以使用多個DHCP伺服器進行中轉。
# dhcrelay dhcpsrv1 dhcpsrv2
如果這台中轉伺服器為多網路界面計算機,那麼dhcrelay將偵聽所有網路界面的DHCP請求,有時不希望 dhcrelay中轉某些界面上的請求,就可以設置dhcrelay偵聽的網路界面,這需要指定-i參數。
# dhcrelay -i xl0 dhcpsrv1
提供備份的DHCP設置
在一個具備多個子網的大型網路中,提供冗餘是一個非常重要的問題。由於DHCP協議中DHCP伺服器負責分配 IP地址,一旦DHCP伺服器出現故障,那麼所有的客戶就無法正確獲得IP地址,從而不能訪問網路。
但可以同時設置多個DHCP伺服器來提供一個冗餘能力。然而DHCP伺服器本身是不提供備份能力的,不能互為備份。他們佔用的IP地址資源也不能重疊,以免發生客戶機IP地址沖突的現象。提供容錯能力是通過分割可用的IP地址到不同的DHCP伺服器上,通過多個DHCP伺服器同時為一個網路服務,從而使得一個伺服器發生故障還能正常執行操作。通常為了進一步增強可靠性,還可以將不同的DHCP伺服器放置在不同子網中,互相使用中轉提供服務。
例如在兩個子網上各自有一個DHCP伺服器,標準的做法可以不使用DHCP中轉,各個子網上的伺服器為各個子網服務就行了。然而為了達到容錯的目的,可以互相為另一個子網提供服務,通過設置中轉或路由器轉發廣播以達到互為服務的目的。
例如位於192.168.3.0網路上的srv1的配置可能為:
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.199;
}
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.200 192.168.4.220;
}
位於192.168.4.0網路上的srv2的配置可能為:
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.10 192.168.4.199;
}
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.200 192.168.3.220;
}
注意,上述設置都是設置樣例,標准情況下還需分別指定各個option,用於設置IP地址及其相關設置。
可以看出兩個伺服器都能對兩個網路上的客戶機分配IP地址,而各自又有一個主要服務的網路。每個網路上的IP 地址主要放在本地的伺服器上,但也有少部分地址放在另一個子網中的伺服器上(地址資源不能沖突),這樣提供了一定的容錯能力。
實際的多子網網路中,並不必要每個子網都設置一個伺服器,並使用另外的伺服器備份,一般網路中有2-3個DH CP伺服器就夠用了。其他子網可以通過DHCP中轉的方式,給該子網提供DHCP服務。
❸ DHCP伺服器如何配置
DHCP服務在linux下算是最簡單的服務了。
DHCP服務的配置。
DHCP簡介:
DHCP動態主機配置協議,在一個小型區域網里可以通過手工指定ip地址的方式,但如有大量的主機,如果還是手工指定,那是一個很大的工作量,而且也容易出錯,這時,就可以通過配置一台DHCP伺服器來解決,為每台主機分配一個ip地址。DHCP作用域是指DHCP伺服器可分配給DHCP客戶端的IP地址范圍,一個DHCP伺服器至少要一個作用域,如有多個作用域,作用域之間的IP地址不能重疊。
DHCP的工作原理:
DHCP工作過程分為四個步驟:
第一步(DHCPDISCOVER):客戶端發送廣播查找可以給自己提供IP地址的DHCP伺服器,
第二步(DHCPOFFER):DHCP伺服器發送廣播提供一個可用的IP地址,並在地址池中將該地址打上標記,以防再次分配。
第三步(DHCPREQUEST):客戶端收到廣播後再次發送一個廣播請求該地址,如果有多台DHCP響應,則第一個收到的優先。
第四步(DHCPACK):DHCP伺服器收到廣播後再發送一個廣播,確認該地址分配給這台主機使用,並在地址池中將該地址打上標記,以防再次分配。
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 eth0
0.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 Settings\Administrator>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
基本配置完成。