基礎服務類系列文章:
dhcp前身是bootp,在linux的網絡卡配置中也能看到顯示的是bootp,dhcp引進乙個bootp沒有的概念:租約。bootp分配的位址是永久的,而dhcp分配的位址是可以有期限的。
[root@xuexi vsftpd]# grep -i bootproto /etc/sysconfig/network-scripts/ifcfg-eth0dhcp可以自動分配ip、子網掩碼、閘道器、dns。bootproto=dhcp
dhcp客戶端使用的埠68,服務端使用埠67,使用的udp應用層的協議。
dhcp一般不為伺服器分配ip,因為他們要使用固定ip,所以dhcp一般只為辦公環境的主機分配ip。
dhcp伺服器和客戶端需要在乙個區域網內,在為客戶端分配ip的時候需要進行多次廣播。但dhcp也可以為其他網段內主機分配ip,只要連線兩個網段中間的路由器能**dhcp配置請求即可,但這要求路由器配置中繼功能。
1)搜尋階段:客戶端廣播方式傳送報文,搜尋dhcp伺服器。此時網段內所有機器都收到報文,只有dhcp伺服器返回訊息。
3)選擇階段:選擇乙個dhcp伺服器,使用它提供的ip。然後傳送廣播包,告訴眾多dhcp伺服器,其已經選好dhcp伺服器以及ip位址。此後沒有入選的dhcp就可以將原本想分配的ip分配給其他主機。
客戶端選擇第乙個接收到的ip。誰的ip先到客戶端的速度是不可控的。但是如果在配置檔案裡開啟了authoritative選項則表示該伺服器是權威伺服器,其他dhcp伺服器將失效,如果多台伺服器都配置了這個權威選項,則還是競爭機制;通過mac位址給客戶端配置固定ip也會優先於普通的動態dhcp分配。另外windows的dhcp服務端回應windows客戶端比linux更快。
4)確認階段:dhcp伺服器收到回應,向客戶端傳送乙個包含ip的資料報,確認租約,並指定租約時長。
如果dhcp伺服器要跨網段提供服務,一樣是四步請求,只不過是每一步中間都多了乙個路由器和dhcp伺服器之間的單播通訊。
1) 客戶端廣播方式傳送報文,搜尋dhcp伺服器。所有機器包括路由器都收到報文,路由器配置了中繼,知道搜尋訊息後單播給dhcp伺服器;
2)dhcp伺服器單播返回資訊給路由器,路由器再廣播給客戶端;
3)客戶端選擇dhcp伺服器提供的ip,並廣播資訊告訴它我選好了,路由器單播給dhcp伺服器;
4)dhcp伺服器收到資訊將確認資訊單播給路由器,路由器單播給客戶端。
所以dhcp的4步請求:
client-->dhcpdiscover # 廣播:客戶端發現dhcp伺服器可以將dhcpd.conf.sample複製到/etc/。dhcpoffer
client-->dchprequest # 廣播:客戶端請求使用提供的ip
dchpack
續租的過程:
client-->dhcprequest # 單播:繼續請求使用提供的ip
dhcpack
dhcp伺服器不跨網段提供服務時,它自己的ip位址必須要和位址池中全部ip在同一網路中。
dhcp伺服器跨網段提供服務時,它自己的ip位址必須要和位址池中的一部分ip在同一網路中,另一部分提供給其他網段。因為如果自己的ip完全不在自己的網路中而只提供其他網段的ip,更好的做法是將dhcp伺服器設在那個需要dhcp服務的網路中。
當計算機從乙個子網移到另乙個子網,找的dhcp伺服器不同,因為舊的租約還存在,會先續租,新的dhcp伺服器肯定拒絕它的續租請求,這時將重新開始四步請求。
有些機器希望一直使用乙個固定的ip,也就是靜態ip,除了手動進行配置,dhcp伺服器也可以實現這個功能。dhcp伺服器可以根據mac位址來分配這台機器固定ip位址(保留位址),即使重啟或重灌了系統也不會改變根據mac位址分配的位址。
假如在乙個正常聯網有dhcp伺服器的網段內因為做實驗練習的緣故新建立了一台dhcp伺服器,但是這台dhcp伺服器不能上網,會導致什麼後果?使用dhcp分配位址的客戶端至少會有續租的請求,如果沒有續租成功,或者有新的計算機加入這個網路,那麼進行四步請求,有可能會請求到這個不能連網的dhcp伺服器上,那麼他也就不能上網了。特別是windows的dhcp服務端回應windows客戶端速度比linux回應快。
[root@xuexi ~]# yum -y install
dhcp
[root@xuexi ~]# rpm -ql dhcp
/etc/dhcp/dhcpd.conf # dhcp配置檔案
/etc/sysconfig/dhcpd
/usr/sbin/dhcpd # dhcp服務程式
/usr/sbin/dhcrelay # 中繼命令程式,用於跨網段提供dhcp服務
/var/lib/dhcpd/dhcpd.leases # 存放租借資訊(如ip)和租約資訊(如租約時長)
/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample # 配置檔案的範例檔案
[root@xuexi ~]# cp /usr/share/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcpd.conf以下是dhcpd.conf中部分配置項。
# 每行分號結束ddns-update-style none; # 動態dns相關,幾乎不開啟它。也就是不管它。
ignore client-updates; # 和上面的相關,也不管它
authoritative # 宣告為權威伺服器
next-server marvin.redhat.com; # pxe環境下指定的提供引導程式的檔案伺服器
# dhcp配置檔案裡必須配置乙個位址池,其和dhcp伺服器自身ip在同一網段如果不讓dhcp修改/etc/resolv.conf裡的內容,就在網絡卡配置檔案/etc/sysconfig/network-scripts/ifcfg-ethx裡新增一行選項:peerdns=no。subnet
10.5.5.0 netmask 255.255.255.224
#下面的是繫結mac位址設定保留位址,保留位址不能是位址池中的位址
host fantasia
在客戶端如何獲取動態分配的位址呢?
方法一:service network restart
但是每次重啟網路很麻煩,可以使用客戶端命令dhclient。
方法二:直接執行dhclient命令
這種方法下會顯示4部請求中需要顯示的步驟資訊,以及最終分配的位址,所以是乙個很好的理解dhcp工作的工具。
但是這種方法只能使用一次,第二次執行命令會提示該程序已經在執行,因為dhclient是乙個程序。可以kill掉該程序再執行dhclient,或者使用dhclient -d選項。
方法三:dhclient -d
每次重啟網絡卡預設都獲取的同乙個ip,有時候想換個ip都很麻煩。在/var/lib/dhclient/目錄下有".leases"檔案,將它們清空或者刪除這些檔案中對應網絡卡的部分,再重啟網路就可以獲取新的動態ip。
[root@xuexi ~]# cat /var/lib/dhclient/dhclient-eth0.leases或者,在/etc/sysconfig/network-scripts/ifcfg-eth0加入"lease
dhcprelease=yes"。
當執行ifdown eth0的時候就會發出dhcprelase報文,檢視/etc/sysconfig/network-scripts/ifdown-eth指令碼中實際上是呼叫dhclient命令,用下面這個命令應該也可以。
/sbin/dhclient -r eth0
第8章Linux設定DHCP
8 1 linux dhcp配置dhcp伺服器配置 mkdir mnt cdrom mount r dev cdrom mnt cdrom cd etc yum.repos.d llmkdir backup mv centos backup touch hgs.repo vim hgs.repo y...
第4章 整合
4.1 尋找理想的整合技術的指導原則 避免服務方修改乙個欄位就引起消費方的修改 保證api的技術無關性 消費方應該能夠很簡單的使用服務方提供的服務,提供客戶端庫的做法會增加耦合。隱藏內部實現細節 4.2 musiccorp建立使用者介面 4.3 共享資料庫 資料庫整合 即消費者直接訪問資料庫 的缺點...
第4章 陣列
1 陣列儲存的是相同型別的一組元素 double arr 2 陣列的定義型別可以是任意型別,包含基本型別或引用型別 string arr person arr int arr person arr 3 陣列屬於引用型別,引用儲存在棧中,值儲存在堆中,又稱為物件。4 陣列的成員如果不賦值,有預設值。b...