它的主要功能是让一部机器能够透过自己的_第1页
它的主要功能是让一部机器能够透过自己的_第2页
它的主要功能是让一部机器能够透过自己的_第3页
它的主要功能是让一部机器能够透过自己的_第4页
它的主要功能是让一部机器能够透过自己的_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DHCP全名是DynamicHostConfigurationProtocol,它的主要功能是讓一部機器能夠透過自己的EthernetAddress廣播,向DHCPserver取得有關ip,netmask,defaultgateway,dns等設定。這樣網管人員只要把DHCPserver設定好,就可以讓clientmachine透過DHCPprotocol自動取得IP相關的設定,而不需要去每一部機器上辛苦地做IP,netmask,defaultgateway,dns等設定DHCP的運作方式運作模式:那麼DHCP是怎麼運作的呢?現在假設我們的機器在同一個網域當中,也就是說,DHCPServer與他的Clients都在同一個網段之內,可以透過軟體廣播的方式來達到相互溝通的狀態。那麼Client藉由DHCPServer得到IP的程序為:1.若

Client

端電腦設定使用

DHCP

協定以取得網路參數時,則

Client

端電腦在開機的時候,或者是重新啟動網路卡的時候,會自動的發出 DHCPClient的需求給網域內的每部電腦:這個時候,由於發出的訊息希望每部電腦都可以接受,所以該訊息除了網路卡的硬體位址(MAC)無法改變外,需要將該訊息的來源軟體位址設定為,而目的位址則為55這(個我們Linux會自動幫您設定,無須考慮這個問題!)。這個時候,網域內的其他沒有提供DHCP服務的電腦,收到這個封包之後會自動的將該封包丟棄而不回應;而如果是DHCP主機呢?2.DHCP主機回應訊息:如果是 DHCP主機收到這個 Client的DHCP需求時,那麼 DHCP主機首先會針對該次需求的訊息所攜帶的 MAC與DHCP主機本身的設定值去比對,如果 DHCP主機的設定有針對該 MAC做靜態 IP(每次都給予一個固定的 IP)的提供時,則提供 Client端相關的固定 IP與相關的網路參數;而如果該訊息的 MAC並不在 DHCP主機的設定之內時,則DHCP主機會選取目前網域內沒有使用的 IP(這個IP與設定值有關)來發放給client端使用!此外,需要特別留意的是,在 DHCP主機發放給 Client端的訊息當中,會附帶一個『租約期限』的訊息,以告訴 Client端,您這個 IP可以使用的期限有多長!3.Client端接受來自DHCP主機的網路參數,並設定Client自己的網路環境:當Client端接受回應的訊息之後,首先會以ARP封包在網域內發出訊息,以確定來自DHCP主機發放的IP並沒有被佔用!如果該IP已經被佔用了,那麼Client對於這次的DHCP資訊將不接受,而將再次向網域內發出DHCP的需求廣播封包;若該IP沒有被佔用,則client可以接受DHCP主機所給的網路的參數,那麼這些參數將會被使用於端也會對DHCP主機發出確認封包,告訴

client端的網路設定當中,同時,Server這次的需求已經確認!而

ClientServer也會將該資訊記錄下來;4.Client

端結束該

IP

的使用權:當

Client

開始使用這個

DHCP

發放的

IP之後,有幾個情況下他可能會失去這個 IP的使用權:(a)Client端離線:不論是關閉網路介面 (ifdown)、重新開機 (reboot、)關機(shutdown)等行為,皆算是離線狀態,這個時候 Server端就會將該 IP回收,並放到 Server自己的備用區中,等待未來的使用;(b)Client端租約到期:前面提到 DHCPserver端發放的 IP有使用的期限,Client使用這個IP到達期限規定的時間,就需要將IP繳回去!這個時候就會造成斷線,而Client也可以再向DHCP主機要求再次分配IP囉!Staticvs.Dynamic當DHCPserver聽到網路上有DHCPcilent發出broadcast時,DHCPserver會在它的database中找有關這個cilent的相關設定值,並且將其回傳給cilent.這個database一般來說分為 static和dynamic兩部份1.static詳細列出 client的EthernetAddress與相關的 IP,netmask,gateway,dns設..定值2.dynamicDHCPserver會保留一段 IP範圍,當cilent的EthernetAddress在Statictable中找不到時個cilent.

,DHCPserver就從這段

IP

範圍中挑一個還沒有人使用的

IP

給這leasetime(租約期限)考慮dynamic發放IP的情形,DHCPserver會記住哪個cilent(根據EthernetAddress)曾經來要過IP,如果同一個Client重覆來要IP,就發同一個IP給它,同時這個IP也不會發給其它的client,以免造成網路上兩個client使用相同的IP.但是一個client很可能在要過IP後,接著關機很久,產生IP沒人使用,而DHCPserver又不敢之發給其它client的情形,造成IPaddress的浪費leasetime就是DHCPserver用來決定一個IPaddress在使用多久之後,就將這個IP回收,轉發給其它的Client.DHCPclient必須在leasetime用完之前,重新向DHCPserver要一次IP,以免這個IP被回收.DHCPserver會對leasetime做一個上限設定,DHCPclient在一開始request時,也可以指定它喜歡的leasetime長度,不過不能超過上限關於租約的行為其實設定期限還是有個優點!最大的優點就是可以避免該 IP被某些使用者一直佔用著,但該使用者卻是 Idle(發呆)的狀態!舉個例子來說,我們剛剛不是說到,我有 150個IP,但是偏偏我有 200個用戶嘛!那麼假設剛好例如2006年的世界盃足球賽好了,每個使用者都急著上網知道消息,那麼將會達到交通尖峰時段!也就是說,這200個人同時要來使用這150個IP,有可能嗎?當然不可能!肯定會有50個人無法連線,因為『很抱歉!目前系統正在忙線中,請您稍後再撥!』那怎麼辦?這個時候租約到期的方式就很有用處啦!那幾個已經連線進來很久的人,就會因為租約到期而被迫離線,這個時候該 IP就會被釋放出來,哈哈!大家趕快搶呀!先搶到先贏喔!所以,那 50個人(包括被迫離線的那個朋友 )只好繼續的、努力的、加油的來進行 DHCP的要求囉!雖然說是優點,但是其實如果站在使用者的角度來看,還是可能會造成公憤的!憑什麼大家一起交錢,我先連線進來就需要先被踢出去?呵呵!這個在早期Hinet就是這點被罵的要死!為什麼呢?因為他的 ADSL撥接制,似乎真的就有這個租約到期的問題,限制的時間似乎是 24小時的樣子!所以,使用 HinetADSL撥接制的朋友,每 24小時就要忍受一次斷線!我沒有使用過 Hinet的ADSL撥接制,網路上的朋友確實有回應這樣的事情,但是我不確定現在(2003/03/15)Hinet是否還是用這套設定值?這樣您可以瞭解租約到期的行為了嗎?!設定

dhcpd.conf設定檔好了,那麼來到最重點啦!我們的DHCP就只要設定這個檔案即可!那麼這個檔案如何設定呢?基本上,我們剛剛前面提過說,DHCP的IP分配可分為給予動態IP與靜態IP,其中,又需要瞭解的是,如果需要設定靜態IP的話,那麼就必須要知道要設定成靜態IP的那部電腦的硬體位址(MAC)才行,請使用arp及ifconfig來查知您的介面的MAC吧!此外,我們需要設定的項目大概有幾項:1.整體設定(Global):裡面含有租約期限啦、或許還有DNS位址與router的設定等等內容;動態IP設定:使用subnet的項目與range的參數來設定要分配出去的靜態IP設定:使用host這個項目段,配合MAC來設定!在dhcpd.conf這個檔案裡頭有些地方要特別留意:『#』為註解符號;除了括號那一行之外,其他的每一行後面都要以『 ;』做為結尾!這很重要![root@testroot]#vi/etc/dhcpd.conf這個檔案在各家Linux中,可能放置的目錄不同而且不見得會存在,請自行建立!再次說明,這個檔案中,行首為#的,則為註解,且,設定的每一行之行尾,都需要;符號。這個檔案的設定寫法主要有兩種,首先是有獨特的設定名稱的,例如default-lease-time,#<參數代號 > <設定內容 >;#default-lease-time 259200 ;再來則是由option這個代號後面接的參數代碼option<參數代碼><設定內容>;optiondomain-naim"";#1.Global首先建立整體的設定值,亦即是,當 subnet或host當中沒有設定的,以global為準1.1設定租約期限:default-lease-time259200;#預設的租約時間,後面接的時間為秒鐘。max-lease-time518400;#但是超過租約時間(就是default-lease-time)#還可續約,不過,最長還是只到 518400秒!#1.2設定領域名稱與 DNSIPoptiondomain-name"";#設定每部主機的後頭#領域名稱為 !optiondomain-name-servers,0;#上面這個設定在寫入 DNS的IP,會自動在 Client端修改/etc/resolv.conf#檔案,若有兩個 DNS的IP以上,那麼就需要以 ,符號分隔開來!最後面還是得加上;符號2.動態IP分配的設定:subnetnetmask{range100;optionbroadcast-address55;optionrouters;}動態IP就如同上面的設定內容,主要以subnet與netmask來進行前頭的說明,#亦即先宣告我要的網段是哪一段, rangeIP1IP2;那一行,都以空白字元#隔開即可,而range表示我要分配的 IP就是在 IP1與IP2這之間的 IP段就是了!再者,我總是要給broadcast吧!沒錯!那個optionbroadcast-address即是給予的broadcast了;至於routers#不用說也知道那是什麼了吧?所以,我們就已經含有 IP,network,netmask,#broadcast與router囉!這樣就可以順利上網啦!至於 DNS則是在#上面global處已經設定囉!#3.靜態IP的設定:hostvbird-inside{hardwareethernet00:40:95:30:43:B4;fixed-address;optionbroadcast-address55;optionrouters;}靜態IP肯定跟MAC有關的,所以請先查出來MAC吧!然後的設定您都知道啦!NATPrivateIPAddressWhyPrivateIPAddress為了解決 IP日漸不足的問題,RFC1918中定義了一段 PrivateIPaddress,這段IP可作為企業或單位內自行運用的 IPAddress而無須經過向上游申請的手續.當然使用單位必須負責不讓這些PrivateIPAddress的routinginformation流到單位外的網路上,也就是說這些電腦只能和單位內的電腦連線,外面的網路看不見單位內這些PrivateIPAddress的電腦,因此這段PrivateIPAddress可重覆地被不同單位內部所使用,進而達到節省IP的目的.PrivateIPRangeRFC1918共定義了三個範圍的 PrivateIPaddressAddrRange mask-55 /-55 /-55 /PrivateIP優點節省IP的使用讓網路設計時能有較大的彈性PricateIP缺點使用PrivateIP的電腦無法連上InternetNetworkAddressTranslationWhatisNATNAT定義於inRFC1631,基本上它是在router中進行一個偷換IPheader的動作,以便讓多台電腦能共用一個IP連上Internet的技術.許多的router目前有都有支援NAT這項功能,其它如Linux中的IPMasquerade,FreeBSD中的NATD,或是Win95上的Sygate軟體也是指一樣的東西.NAT一般多配合PrivateIPAddress一同使用我們可以發現 TCP封包裡頭有來源與目的地的 IP及port的資訊在Header裡面,那麼如果透過某些技術,來改變 TCP封包的 header呢?如果能夠將TCP封包的來源 IP由本來的 PrivateIP變成PublicIP的話,不就可以連接到Internet了嗎?!呵呵!沒錯沒錯!談到重點了!就是這樣啦! NAT主機的重要功能之一就是將來自內部 Client端電腦封包的 Header的IP『偽裝』成公共IP,而提供Client端連上Internet的一個方法!(註:當然啦,IP分享器也是使用同樣的道理!)。那麼整個流程是如何呢?如下圖所示,當我的區域內的具有00的client要對外連線的時候:1.這個client的gateway設定為 NAT主機,所以當要連上 Internet的時候,該封包就會被送到 NAT主機啦,這個時候的封包 Header之sourceIP為00喔;2.而透過這個 NAT主機,她會將 client的對外連線封包的 sourceIP(00)偽裝成ppp0(假設為撥接情況 )這個介面所具有的公共 IP囉,因為是公共 IP了,所以這個封包就可以連上 Internet了!同時 NAT主機並且會記憶這個連線的封包是由哪一個 (00)client端傳送來的;由Internet傳送回來的封包,當然由NAT主機來接收了,這個時候,NAT主機會去查詢原本記錄的路由資訊,並將目標 IP由ppp0上面的公共 IP改回原來的00;4.最後則由 NAT主機將該封包傳送給原先發送封包的 Client囉!NAT的優點由於對外只使用一個IPaddress,因此內部使用的IP可重覆地在不同單位使用2.只要少數publicaddress就能讓單位內所有電腦都連上Internet3.只有使用publicaddress的電腦會被單位外部網路所存取,使用privateaddress的電腦不會直接被存取,有安全上的好處FreeBSD上的NAT運作在FreeBSD2.2以上版本開始提供divertsocket,透過divertsocket能讓userspaceprogram處理原先放在kernel中的IPpacket.FreeBSD上的NAT功能便是透過divertsocket來完成的.首先經由 Kernel內的IPFW(IPFirewall)功能將 kernelspace的IPpacket轉向到一個特定的 port(divertsocket),然後另外執行的 NATddaemon,由divertsocket讀入rawIPpacket,進行必要的修改後再透過 divertsocket傳回到 kernelspace中當packet從網路上傳入時,所走的途徑是1-a-b-c-2當packet要送往網路上時,所走的途徑是3-a-b-c-4FreeBSDNATD進階應用DynamicNAT和StaticNAT在之前的介紹我們知道,所有在NATrouter之後的機器用的都是privateIPaddress,只有NATrouter上的publicinterface用的是publicIPaddress.NATrouter會在privateIPnetwork中有機器往外連時將IP換成publicIP,因而解決了IP不足的問題.NAT的運作主要是靠NATmappingtable中的entry來作redirect的動作,NATmappingtable上的這些entry是在privateIPnetwork中有新的connection對外時才動態建立,這種我們稱之為DynamicNAT.DynamicNAT的一個問題是privateIPnetwork中的機器無法當作server,讓外面的機器連進來,因為當外面connection進來時,NATmappingtable上並沒有可以對應的entry.為了解決上面的問題,我們可以在NATrouter上事先定義好一些entry,這樣當外部connection進來時,根據這些事先定義的entry,將connection轉到我們希望的privateIPnetwork機器上,這種作法稱為StaticNAT.使用StaticNAT的時機當你的上游配給你不只一個publicIPaddress時,你可能希望除了由NATrouter用掉其中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论