歡迎您光臨本站 註冊首頁

Linux筆記5.DHCP服務

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

5.DHCP服務

DHCP的全稱是動態主機配置協議(Dynamic Host Configuration Protocol,是由IETF(Internet網路工程師任務小組). .它是用來自動給客戶機器分配 TCP/IP信息的網路協議.每個DHCP客戶都連接到中央位置的DHCP伺服器,該伺服器包括IP地址、網關、DNS伺服器信息的客戶網路配置.

共享作用域(超級作用域):對於共享網路其實是一組作用域的集合.在很多的時候在一個物理網路中可能會存在很多邏輯子網,我們在配置沒一個子網的時候都是在配置一個單一的作用域.但是如果能碰到每個網路都在某一個部分都是相同的,那麼就要對每個網路都進行設置,這樣是比較麻煩的.我們可以利用共享網路做用具將不同的作用域放在這個超級域里,這樣我們就可以針對不同的作用域進行不同的設置.

.註:對於共享網路作用域其實只是很多作用域的集合,它並不用於設置具體的作用範圍或者具體的參數

DHCP中繼代理:不同網路段中能夠轉發 DHCP請求消息的路由器或者主機

工作過程:

租用請求:當DHCP客戶機啟動后,向網路內廣播一個DHCP請求信息,所有機器都會收到,但不是DHCP伺服器的機器會把信息丟掉.

租用提供:DHCP伺服器回應客戶機,提供一個網內沒有的IP地址.

租用選擇:如果DHCP伺服器有多個,則選擇第一個回應的信息,然後向網路中廣播一個消息,表明自己已經接受一個

DHCP伺服器的IP

租用確認:DHCP伺服器接受到客戶的選擇信息之後,會返回給客戶一個消息包,客戶機按伺服器的信息配置機器IP,伺服器記錄客戶機的IP地址.

配置文件

/etc/dhcpd.conf主配置文件

dhcpd.conf.sample樣本文件

,樣本文件在 /usr/share/doc/dhcp-3.*pl2目錄中)

/usr/sbin/dhcpd執行文件

/var/lib/dhcp/dhcpd.leases 租約文件

/etc/sysconfig/dhcrelay 中繼代理配置文件

主配置文件/etc/dhcpd.conf

全局配置項

Subnet語句(網段地址)

選項:選項所定義的參數、值用來應答DHCP請求

range語句:設定地址範圍

Host語句:指定的主機保留IP地址

Ddns-update-style interim:動態DNS更新(ad-hoc特殊模式,interim互動草圖過渡模式;none不更新)

Ignore client-updates:忽略客戶端動態更新

DHCP配置

租期為秒,-1永不過期

是否支持動態更新

聲明子網{

指定客戶端網關

子網掩碼

網路信息服務域名

設定DNS

設定DNS伺服器地址,如果多個用“,”隔開

設定偏移時間

設定NTP伺服器地址(保持系統時間精準)

設定NETBIOS伺服器地址

設定地址範圍(可設定多個同網段地址池)

IP租期

IP最大租期

設定主機IP保留{

設置從引導文件裝入的主機名稱,只有無盤工作站使用

所要進行綁定的客戶端MAC地址

定義與上面

MAC地址捆綁的IP

}

配置完成後啟動DHCP協議服務

#service dhcpd start

/etc/rc.d/init.d/hcpd start

/usr/sbin/dhcpd start

/usr/sbin/dhcpd eth1

此服務佔用67

#cat /etc/srvices |grep bootps

Dhcp前身為bootps

檢查進程

#ps ax |grep dhcpd

#service dhcpd status

檢查埠

#netstat -naup|grep 67

指定網路介面啟動DHCP協議伺服器

#echo "DHCPDARGS=eth0">>/eth/sysconfig/dhcpd

如果是雙網卡主機,

eth1被配置為DHCP客戶機從連網上檢索IPeth0做內部DHCP伺服器.用戶無法通過互聯網連接dhcpd守護進程.

客戶租約文件

文件位於/var/lib/dhcp目錄中,rpm

安裝ISC DHCP協議,該目錄已存在,dhcpd.leases文件格式為:Lease address (statement)

若不是ISC DHCP協議安裝,則手工建立空文件

#touch /var/lib/dhcp/dhcpd.leases

配置DHCP client

修改/etc/sysconfig/network文件,修改以下行

NETWORKING=Yes

//引導時啟動聯網

#echo "NETWORKING =yes">>/etc/sysconfig/network

Service network start/stop/restart

修改/etc/sysconfig/network-scripts/ifcfg-eth0

應該包含以下行:

DEVICE=eth0

BOOTPROTO=dhcp

ONBOOT=yes

獲取地址

#dhclient#dhclient eth0

釋放地址

#dhclient -r

查看租約

#tcpdump -i eth0 -v查看租約 或 vi /var/lib/dhcp/dhclient -eth0.lease

配置DHCP中繼代理

配置中繼代理可以接受客戶端的廣播並轉發到伺服器上,這樣客戶端就可以利用中繼代理把自己所請求的IP地址的廣播消息穿過路由器與伺服器取得聯繫.

工作原理:

在本地子網的客戶端發送廣播等待得到IP地址,中繼代理截獲消極將其發送到另一個子網中

的伺服器上,伺服器利用一個特殊的數據包對DHCP中繼代理做出回應然後中繼代理將此數據包回應廣播到整個本地子網上.當本地子網的接收到此回應就可以使用所獲得的 IP和相關配置

# vi /etc/sysconfig/dhcrelay

修改

#Command line options here

INTERFACES="eth0 eth1 eth2"指定中繼代理接收到客戶端消息的時候用哪個網路設備將消息通知到伺服器

DHCPSERVERS="192.168.1.168"指定dhcp伺服器的 IP地址

編輯完成之後啟動代理服務

#servers dhcrelay start

DHCP冗餘

server1 (192.168.0.2/24)

vi /etc/dhcpd.conf

server2 (192.168.1.2/24)

#vi /etc/dhcpd.conf

通過上面可以看出,兩個伺服器都可以對子網 AB的客戶端進行IP地址分配,而且每個伺服器所提供的IP地址都可以完全對其它網路中的客戶端進行分配IP,還可以看出在兩個子網

中各有一台伺服器,,這樣不僅能減輕網路負載還使伺服器擁有了一定的冗餘能力

如果打算為不同地址範圍的主機分配不同的網路參數,那麼

可以改進配置文件.

配置內核文件開轉發

Vim /etc/sysctl.conf

Net.ipv4.ip_forword = 1原來是0

#sysctl -p 查看改的結果

DHCP服務的日誌信息從系統的日誌服務中分離.在不改變其他配置內容的前提下,在配置文件/etc/dhcpd.conf的全局配置項中加入如下語句:

log-facility local4;

修改日誌服務的主配置文件為如下所示:

#vi /etc/syslog.conf

超級域

實際上對於超級域來說,它就是同一物理網路中有很多邏輯子網的集合.它本身並沒有太多的意義,而是將本來就屬於同一個物理網路段中的其它子網歸納在一起.超級域不用做其它而外的設置.如:

server-name "hello"

DHCP客戶端的租約中能夠查看到是那台DHCP伺服器給他們分配的IP地址.這裡的名字最好與DHCP伺服器的計算機名稱一致,這樣可以讓客戶端很快就知道哪個是DHCP伺服器給自己的計算機分配的IP地址.處於安全考慮不推薦使用.

option netbios-name-servers 192.168.0.2;

shared-network test {共享網路的配置,在shared-network之後必須自定義一個共享網路名.

subnet 192.168.0.0 netmask 255.255.255.0{

option broadcast-address 192.168.0.255;

option routers 192.168.0.254;

range 192.168.0.2 192.168.0.166;

range 192.168.0.169 192.168.0.254;

}

subnet 192.168.1.0 netmask 255.255.255.0{

option broadcast-address 192.168.1.255;

option routers 192.168.1.254;

range 192.168.1.1 192.168.1.166;

range 192.168.1.168 192.168.1.254;

}

}

group {可以將類似的條件歸為一個組中,這樣可以對整個組進行管理

host hehe {

option host-name "abc.com";指定所要進行綁定的IP地址的DHCP客戶端計算機名稱.只是方便管理員在查看租約的時候能夠看到哪些IP分配給哪些客戶端,但是不能在WindowsDHCP客戶端下用

hardware ethernet aa:bb:cc:dd:ee:ff;

fixed-address 192.168.0.166;

}

host winxp {

hareware ethernet bb:cc:dd:ee:ff:aa;

fixed-address 192.168.0.160;

}

}

設置

DHCP自動啟動

1setup-system service-dhcpd

2 # ntsysv-dhcpd

3 # chkconfig-add dhcpd

4.#chkconfig --level 345 dhcpd on/off DHCP服務

作業:

目標功能:

使用一台 RHEL5伺服器[Server1]連接 ABC三個網段,A網段中有一台 DHCP伺服器[Server2].需要在 Server1上配置 dhcp中繼代理,以使Server2能夠給三個網段的客戶機自動分配IP地址,給A網段的網路印表機綁定永久

IP地址.

實驗參數如下:

Server1

eth0: 172.17.17.1/24

eth1: 192.168.1.1/24

eth2: 192.168.2.1/24

Server2

eth0: 172.17.17.2/24

注意:dhcp也就是 Server2上要配置默認網關172.17.17.1

實驗環境:一台有三塊網卡的RHEL5充當dhcp中繼,eth0vmnet2中,eth1vmnet3中,eth2

vmnet5中.分別在三個不同的網段.另一台RHEL5dhcp伺服器,eth0的網段在vmnet2中,其中有一台WINDOWS客戶機在vmnet3中為動態獲取IP,獲得192.168.1.0網段中的IP地址.另一台為linux客戶機在 vmnet4中為動態獲取IP,獲得192.168.2.0網段中的ip地址.

具體配置步驟:

Server1

[DHCP中繼]:

1# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

# echo 1 > /proc/sys/net/ipv4/conf/all/bootp_relay

# echo 1 > /proc/sys/net/ipv4/ip_forward

//測試一下

#sysctl –p

2# vi /etc/sysconfig/dhcrelay

INTERFACES="eth0 eth1 eth2"

DHCPSERVERS="172.17.17.2"

//這裡要定寫上dhcpIP地址:

3# chkconfig --level 2345 dhcrelay on

# /etc/init.d/dhcrelay start

注意:安裝 DHCP伺服器的軟體包,否則下面的dhcrelay命令沒法用

#dhcrelay 192.168.1.2DHCRELAY伺服器上需要安裝DHCP伺服器軟體包,不需要創建

dhcpd.conf

主配置文件(因此不用啟動dhcp伺服器).

[註:如果僅當次測試可以使用

/usr/sbin/dhcrelay -i eth0 -i eth1 -i eth2 172.17.17.2”命令啟動dhcp中繼服務]

Server2

[DHCP伺服器]

1# vi /etc/dhcpd.conf

ddns-update-style none;

ignore client-updates;

default-lease-time 36000;

max-lease-time 86400;

option time-offset -18000;

subnet 172.17.17.0 netmask 255.255.255.0

{ option routers 172.17.17.1; option subnet-mask 255.255.255.0;

option domain-name-servers 172.17.17.1,202.106.0.20;

range 172.17.17.100 172.17.17.200;

host printer

{ hardware ethernet 00:12:fc:78:AB:CD;

fixed-address 172.17.17.250;

}

}

subnet 192.168.1.0 netmask 255.255.255.0

{ option routers 192.168.1.1;

option subnet-mask

255.255.255.0;

option domain-name-servers 192.168.1.1,202.106.0.20;

range 192.168.1.100 192.168.1.200;

}

subnet 192.168.2.0 netmask 255.255.255.0

{

option routers 192.168.2.1;

option subnet-mask 255.255.255.0;

option domain-name-servers 192.168.2.1,202.106.0.20;

range 192.168.2.100 192.168.2.200;

}

2# vi /etc/sysconfig/dhcpd DHCPDARGS="eth0"

3

# chkconfig --level 2345 dhcpd on

# /etc/init.d/dhcpd start


[火星人 ] Linux筆記5.DHCP服務已經有753次圍觀

http://coctec.com/docs/linux/show-post-48031.html