Linux基礎(chǔ)教程之網(wǎng)絡(luò)基礎(chǔ)知識詳解
網(wǎng)絡(luò)小白一個,針對網(wǎng)絡(luò)的基礎(chǔ)知識無從下手,因此本文引用了鳥哥私房菜中的眾多概念性知識,在此謝過,本文主要從OSI七層協(xié)議,TCP協(xié)議和一些網(wǎng)絡(luò)中專業(yè)詞匯進行解析,并通過子網(wǎng)掩碼的劃分,網(wǎng)絡(luò)接口的配置、路由配置等實例來加深對網(wǎng)絡(luò)的理解。
一、OSI七層協(xié)議:
????OSI七層協(xié)議的由來:
? 由于網(wǎng)絡(luò)鏈接過程相當(dāng)復(fù)雜,包括硬件數(shù)據(jù)封裝與應(yīng)用程序的相互鏈接等,?如果想要寫一個網(wǎng)絡(luò)鏈接的全部功能都集中在一起的程序,那么任何一個環(huán)節(jié)出錯,整個程序都要改寫,非常麻煩,因此我們將整個網(wǎng)絡(luò)鏈接過程分成多個層次來處理,且每層數(shù)據(jù)傳遞是順序傳遞的,這就是OSI七層協(xié)議。
? ? 七層協(xié)議的特點:
? ? ?每個層次都有特定獨立的功能
? ? ?每個層次的代碼可以獨立編寫
? ? ?層與層之間的功能互不干擾
? ? ?每一層次只認(rèn)識對方同一層的數(shù)據(jù)? ??
????在七層協(xié)議中,每層都會有自己獨特的頭部數(shù)據(jù)(header):告知對方這里面的信息是什么,而真正的數(shù)據(jù)在后面
????下面來詳細(xì)介紹七層協(xié)議中每一層的含義:
?????? Layer1 物理層:由于網(wǎng)絡(luò)傳輸介質(zhì)傳輸?shù)氖潜忍匚唬?1),因此物理層必須定義所使用的傳輸設(shè)備的電壓和信號等,同時還必須了解數(shù)據(jù)幀轉(zhuǎn)換成比特流的編碼方式,最后鏈接實際傳輸介質(zhì)并發(fā)送/接收比特信號。
?????? Layer2 數(shù)據(jù)鏈路層:硬件部分,主要處理MAC數(shù)據(jù)幀,傳遞給物理層轉(zhuǎn)換成比特流;軟件部分主要處理來自上層的數(shù)據(jù)表轉(zhuǎn)換成MAC的格式。相關(guān)協(xié)議:PPP
?????? Layer3 網(wǎng)絡(luò)層:定義IP地址,定義計算機之間的鏈接建立,終止維護等,數(shù)據(jù)包的傳輸路徑選擇等。相關(guān)協(xié)議:IP、ICMP、ARP、RARP
?????? Layer4 傳輸層:定義發(fā)送端與接收端的鏈接技術(shù)(TCP,UDP),同時包括該技術(shù)的數(shù)據(jù)包格式,數(shù)據(jù)包的發(fā)送,流程的控制等,以確保各個資料數(shù)據(jù)可以正確無誤的到達目的端。相關(guān)協(xié)議:TCP、UDP
?????? Layer5 會話層:確定網(wǎng)絡(luò)服務(wù)建立鏈接的確認(rèn)。
?????? Layer6 表示層:定義網(wǎng)絡(luò)服務(wù)(或程序)之間的數(shù)據(jù)格式的轉(zhuǎn)換,使數(shù)據(jù)格式標(biāo)準(zhǔn)化,也包括數(shù)據(jù)的加密解密也是在這層上處理
?????? Layer7 應(yīng)用層:將數(shù)據(jù)發(fā)送給應(yīng)用程序,并最終展示給用戶。相關(guān)協(xié)議:HTTP、FTP、SMIP等
二、TCP/IP及其他協(xié)議
? ? ?雖然OSI七層協(xié)議的架構(gòu)非常嚴(yán)謹(jǐn),但是由于太過嚴(yán)謹(jǐn)導(dǎo)致程序編寫相當(dāng)不容易,因此產(chǎn)生了TCP/IP協(xié)議。
????TCP/IP的網(wǎng)絡(luò)接口層的相關(guān)協(xié)議
?????廣域網(wǎng)使用的設(shè)備
???????傳統(tǒng)電話撥號鏈接:通過PPP協(xié)議
???????整合服務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)
???????非對稱數(shù)字用戶環(huán)路(ADSl):使用PPPoE協(xié)議
???????電纜調(diào)制解調(diào)器(Cable Modem)
? ? ? ?局域網(wǎng)使用的設(shè)備—以太網(wǎng)
?????? CAT5等級的網(wǎng)線大概可以支持100米的長度
? ? ? ?以太網(wǎng)的網(wǎng)絡(luò)接頭:分為交叉和直連RJ-45,又因為每條芯線的對應(yīng)不同,而分為568A和568B接頭,這兩款芯線內(nèi)部的順序為:
??????事實上,雖然目前的以太網(wǎng)線有8芯且兩兩成對,但實際使用只有1、2、3、6芯而已,其他的則時某些特殊用途的場合才會使用,但是由于主機與主機鏈接以及主機與集線器鏈接時,所使用的網(wǎng)線線序定義并不相同,因此有由于接頭的行不同網(wǎng)線有可分為兩種:
? ? ? ? 交叉線:一邊為568A一邊為568B的接頭時稱為交叉線,用在直接鏈接兩臺主機的網(wǎng)卡。
? ? ? ? 直連線:兩邊接頭同為568A或568B時稱為直連線,用在鏈接主機網(wǎng)卡與集線器之間的線纜。
????以太網(wǎng)的傳輸協(xié)議:CSMA/CD
? ? ? ? 帶沖突檢測的載波偵聽多路訪問的數(shù)據(jù)傳輸?shù)墓ぷ鞣绞剑涔ぷ髟頌椋簷z測線路是否空閑,空閑則發(fā)包,并且邊發(fā)邊檢測偵聽,一旦沖突就立即停止發(fā)送,只要符合CSMA/CD機制的網(wǎng)絡(luò)就稱為以太網(wǎng)。
? ? ? ? 交換機可以有效的避免沖突,交換機可以自動選擇路線,,每一個端口就是一個沖突域,且每個端口有收發(fā)兩根線實現(xiàn)全雙工功能,交換機可以鏈接多個不同的多個沖突域,路由器可以鏈接多個不同的廣播域。
????MAC的封裝格式
? ? ? ? 數(shù)據(jù)鏈路層的工作是基于MAC地址工作的,CSMA/CD發(fā)送出去的數(shù)據(jù)幀就是MAC,該數(shù)據(jù)幀上面存儲了兩個非常重要的數(shù)據(jù),就是目標(biāo)與來源的網(wǎng)卡卡號,因此我們又稱網(wǎng)卡卡號為MaC地址。下圖中目的地址和來源地址就指的網(wǎng)卡卡號。 ??
????MTU
? ? ? ? 以太網(wǎng)中數(shù)據(jù)幀能夠存儲數(shù)據(jù)的最大單位,標(biāo)準(zhǔn)定義為1500bytes,這就時MUT的最大傳輸單元。(IP數(shù)據(jù)包最大可達到65535bytes),可以增大MTU來提高網(wǎng)絡(luò)使用率,但是無法確認(rèn)所有網(wǎng)絡(luò)設(shè)備都支持更大的MTU,如果不支持則可能導(dǎo)致數(shù)據(jù)包丟失等問題。所以MTU設(shè)定9000bytes可以設(shè)置在內(nèi)部網(wǎng)絡(luò)的環(huán)境中部署,外網(wǎng)還是應(yīng)該保持原有的1500標(biāo)準(zhǔn)。
????集線器、交換器與相關(guān)機制
? ? ? ?集線器(hub):Hub并不記憶該信息包是由哪個MAC地址發(fā)出,哪個MAC地址在Hub的哪個端口,且每個端口共享帶寬,半雙工工作機制,因為CSMA/CD的緣故,在很忙的網(wǎng)絡(luò)環(huán)境中,集線器(Hub)這個網(wǎng)絡(luò)共享設(shè)備就可能發(fā)生沖突的情況。工作與物理層。
???? ?交換機:在交換機內(nèi)部有一個特別的內(nèi)存,這個內(nèi)存可以記錄每個Switch port與其鏈接的PC的MAC地址,所以當(dāng)來自Switch兩端的PC要相互傳輸時,每個數(shù)據(jù)幀將通過交換機內(nèi)存數(shù)據(jù)而傳送到目標(biāo)主機上,且每個端口有獨立的帶寬,全雙工工作機制,工作于數(shù)據(jù)鏈路層,如果是三層交換機(具有路由功能),則工作于網(wǎng)絡(luò)層。
????TCP/IP的網(wǎng)絡(luò)層相關(guān)數(shù)據(jù)包與數(shù)據(jù)
? ? ? ?IP數(shù)據(jù)包的封裝
? ? ? ?了解IP數(shù)據(jù)包的封裝,才能知道IP到底時如何產(chǎn)生的,IP數(shù)據(jù)包可達到65536bytes
????? ?Ver:聲明這個IP數(shù)據(jù)包的版本
???????IHL:數(shù)據(jù)包的包頭長度,4個字節(jié)一個單位
???????Service:服務(wù)類型
? ? ? ? ? ?PPP:表示IP數(shù)據(jù)包的優(yōu)先級,很少使用;
???? ????D:若為0表示一般延遲,若為1表示為低延遲;
??? ?????T:若為0表示一般傳輸量,若為1表示高傳輸量;
???? ????R:若為0表示為一般可靠度,若為1表示高可靠度。
????? ?Packet Length:IP總長度,包括包頭和數(shù)據(jù)部分,最大可達到65535bytes
?????? Identification:識別碼,上面介紹過幀的默認(rèn)最大傳輸單元為1500bytes,而IP包最大可以到65536bytes,那么要想將IP包封裝到數(shù)據(jù)幀中就必須將其分割成更小的IP包,那個這個識別碼就是用于識別這此小的IP分段是否來自同一個IP包。
?????? Flag:D:若為0表示可以分段,若為1表示不可分段;
? ????????M:若為0表示此IP為最后分段,若為1表示非最后分段。
???????Frag Offset:表示目前這個IP分段在原始的IP包中所處的位置,相當(dāng)于這個IP分段的序號。通過包的總長度、識別碼、特殊標(biāo)志、分段偏移就可以將小的IP分段在接收端組合成完整的IP數(shù)據(jù)包。
???????Time to Live:范圍0-255。當(dāng)數(shù)據(jù)包通過一個路由器時就會減1,當(dāng)TTL為0時數(shù)據(jù)包被丟棄,Linux中 可通過修改?/etc/sys/net/ipv4/ip_default_ttl來設(shè)置ttl的大小,默認(rèn)64 ?windows 128
???????Protocol:記錄來自傳輸層和網(wǎng)絡(luò)層本身的協(xié)議信息。常見代碼如下:
? ? ? ? ? ? ?1:ICMP
? ? ? ? ? ? ?4:IP
? ? ? ? ? ? ?6:TCP
? ? ? ? ? ? ?17:UDP
? ? ? ??Header Checksum(報頭校驗碼):用于檢查IP報頭是否存在錯誤。
? ? ? ??Source Address(源IP地址):發(fā)送端的IP地址。
? ? ? ??Destination Address(目標(biāo)IP地址):接收端的IP地址。
? ? ? ??Options(其它參數(shù)):包括安全處理機制、路由記錄、時間戳等
????ICMP協(xié)議:因特網(wǎng)信息控制協(xié)議
? ????ping與traceroute就是利用ICMP來檢驗網(wǎng)絡(luò)的狀態(tài)的。—–探測網(wǎng)絡(luò)狀態(tài)的
? ? ? ? ? ? 禁用ping命令:[email protected] ?~ # cat /proc/sys/net/ipv4/icmp_echo_ignore_all?
???????????????0 ?—–將該位置為1????
? ? ? ? ? ? 啟用ping廣播地址[email protected] ?~ # cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts?
???????????????1 ——–將該為置為0 ? 可用于探測網(wǎng)絡(luò)中有哪些主機啟動,哪些主機處于關(guān)機狀態(tài)
????? ? ? 補腦:Dos 攻擊 Ping –f 10.1.250.95 –s 65507泛洪 ?發(fā)送大量數(shù)據(jù)包給該ip,查看網(wǎng)卡利用率會很高,DDOS 成千上萬臺計算機給指定計算機發(fā)送大量數(shù)據(jù)包
? ? ?ARP網(wǎng)絡(luò)地址解析協(xié)議
? ? ?RARP反向網(wǎng)絡(luò)地址解析協(xié)議
? ? ? ? 當(dāng)我們想要了解某個IP配置于哪張以太網(wǎng)卡上面,我們主機會對整個局域網(wǎng)發(fā)送出ARP數(shù)據(jù)包,對方接收到ARP數(shù)據(jù)包后就會返回他們的MAC給我們,知道對方的網(wǎng)卡地址后就可以傳遞數(shù)據(jù)了,當(dāng)ARP協(xié)議取得目標(biāo)IP與它的網(wǎng)卡卡號后,就會將其記錄到ARPtable(內(nèi)存中)中記錄20分鐘,Linux中對應(yīng)命令 arp –n.
? ???TCP/IP的傳輸層相關(guān)數(shù)據(jù)包與數(shù)據(jù)
???????面向鏈接的可靠的TCP協(xié)議
? ? ? ? ? ? ?在網(wǎng)絡(luò)的IP之上是傳輸層,在傳輸層數(shù)據(jù)被打包層TCP數(shù)據(jù)包。
????????????
????????源端口:端口是用來標(biāo)記應(yīng)用程序的,源端口是連接發(fā)起端使用的端口,通常為隨機端口。
????????目的端口:常用的應(yīng)用都會規(guī)定有固定的端口號,如http使用80端口,ssh使用22端口。
????????順序號:當(dāng)IP包過太時,需要對包進行分段。順序號就是記錄每個數(shù)據(jù)包的順序,以方便接收端將包重新組合。
????????確認(rèn)號:當(dāng)接收端收到數(shù)據(jù)包后會向發(fā)送端發(fā)送確認(rèn)號,告訴發(fā)送端數(shù)據(jù)包被正確傳遞。
????????TCP頭長:用于調(diào)整整個TCP數(shù)據(jù)包的大小,說明整個數(shù)據(jù)包字段的起始位置。
???? ? ??控制標(biāo)志碼:
? ????? ??????URG:為1代碼為緊急數(shù)據(jù)包,接收端應(yīng)緊急處理。
? ? ??????????ACK:為1代表這人數(shù)據(jù)包為響應(yīng)數(shù)據(jù)包。
? ? ??????????PSH:為1代表要求對方立即傳送緩沖區(qū)的其他對應(yīng)數(shù)據(jù)包,而無須等待緩沖區(qū)滿了才送。
? ? ??????????RST:為1代表連接會被馬上結(jié)束,強制結(jié)束連接。
? ????? ??????SYN:為1代表發(fā)送端希望雙方建立同步連接,表示主動連接對方。
? ????????? ??FIN:為1代表傳送結(jié)束。
? ?? ? ??窗口大小:用于控制數(shù)據(jù)包流量,表示緩沖區(qū)是否還可以接收數(shù)據(jù),為0表示無法接收數(shù)據(jù)。
? ? ? ? ??校驗和:發(fā)送端首先會計算一個檢驗碼,接收端收到數(shù)據(jù)包后會再次計算這個值,如果兩個值相符合就接受數(shù)據(jù)包,否則就認(rèn)為此數(shù)據(jù)包已損壞。
? ? ? ? ??緊急指針:URG為1時才有作用,告知緊急數(shù)據(jù)所在的位置。
? ? ? ? ??可選項:表示接收端可以接收的最大數(shù)據(jù)段容量。為1代表連接會被馬上結(jié)束,強制結(jié)束連接。
? ? ? ?TCP的三次握手
? ? ?????A:數(shù)據(jù)包發(fā)起。
? ? ? ? ? ? ? ?發(fā)起端隨機使用一個大于1024的端口發(fā)起請求,在TCP報頭中標(biāo)記SYN為1。
? ? ?????B:數(shù)據(jù)包接收并確認(rèn)。
? ? ? ? ? ? ? ?接收端收到數(shù)據(jù)包后,回自復(fù)一個帶有SYN=1,ACK=1的數(shù)據(jù)包,告訴發(fā)送方已接收到數(shù)據(jù)包,并等發(fā)起端的回復(fù)。
? ?????? C:回復(fù)確認(rèn)數(shù)據(jù)包。
? ? ? ? ? ? ? ?發(fā)起端收到確認(rèn)數(shù)據(jù)包后再次發(fā)送一個確認(rèn)數(shù)據(jù)包(ACK=1),告訴接收端可以建立連接。
? ? ? ??? D:建立連接。
? ? ? ? ? ? ? ?接收端收到ACK=1的確認(rèn)數(shù)據(jù)包后,就可以建立起連接了
?????無連接的UDP協(xié)議
? ? ? ? ? UDP全程的全程是用戶數(shù)數(shù)據(jù)報協(xié)議,UDP與TCP不一樣,UDP不提供可靠的傳輸模式,因為它不是面向鏈接的機制,這是因為UDP傳送過程中,接收端在接收到數(shù)據(jù)包之后,不會回復(fù)相應(yīng)數(shù)據(jù)包給發(fā)送端,所以數(shù)據(jù)包并沒有像TCP數(shù)據(jù)包有嚴(yán)謹(jǐn)?shù)臋z查機制。(一直在發(fā)送信息,你有沒收到我不知道,我也不等待你給我回應(yīng),我就是一直發(fā))
三、IP的組成與分級
????IP地址:它可以唯一表示IP網(wǎng)絡(luò)中的每臺設(shè)備,每臺主機(計算機、網(wǎng)絡(luò)設(shè)備、外圍設(shè)備)必須有唯一的地址。
? ? ??Net_ID與Host_ID
? ? ? ? ?在同一網(wǎng)段內(nèi),Net_Id是不變的,而Host_ID是不可重復(fù)的,此外,Host_ID在二進制的表示法中,可以同時為0,也不可同時為1,例如:192.168.0.0/255.255.255.0就是屬于網(wǎng)絡(luò)地址,192.168.0.255/255.255.255.0 就屬于廣播地址
? ? ? ? ?Host_ID同時為0表示網(wǎng)絡(luò)地址(Network_IP)
? ? ? ? ?Net_ID同時為1表示廣播地址(BroadcastIP)
????在局域網(wǎng)內(nèi)通過IP廣播傳遞數(shù)據(jù)
???????在相同物理網(wǎng)段的主機如果使用相同的網(wǎng)絡(luò)IP范圍,則這些主機都可以通過CSMA/CD的功能直接在局域網(wǎng)內(nèi)用廣播進行網(wǎng)絡(luò)的鏈接,即直接通過MAC數(shù)據(jù)來進行數(shù)據(jù)傳遞
????IP的分級
?????IP的種類與取得方式
? ? ? ? ?在IPV4中兩種IP類別:
? ? ? ? ????Public IP:公共IP,經(jīng)由InterNIC統(tǒng)一規(guī)劃的IP,只有這種IP才可鏈接到Internet
? ? ? ? ? ? ?Private IP:私有IP或保留IP,不能直接連上Internet的IP,主要用于局域網(wǎng)絡(luò)內(nèi)的主機鏈接規(guī)劃
? ? ? ? ? ? ? ? 私有IP網(wǎng)段:
? ? ? ? ? ? ? ? ? ? ? Class A:10.0.0.0/8~10.255.255.255/8 ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? Class B:172.16.0.0/16~172.31.255.255/16 ? ?CIDR格式:172.16.0.0/12
? ? ? ? ? ? ? ? ? ? ? Class C:192.168.0.0/24~192.168.255.255/24 ?CIDR格式:192.168.0.0/16
????????????? 由于這三段Class的IP是預(yù)留使用的,所以并不能直接作為Internet上面的連接使用,否則會導(dǎo)致到處都有相同的IP。
?????Netmask、子網(wǎng)與CIDR
? ? ? ? ? Netmask:子網(wǎng)掩碼
? ? ? ? ? ? ? 將Net_ID處全部標(biāo)記為1,Host_ID處全部標(biāo)記為0就可計算出netmask的值。–與ip地址相與得到網(wǎng)絡(luò)地址。
? ? ? ? ? 劃分子網(wǎng):一個大網(wǎng)絡(luò)分成若干個子網(wǎng)
? ? ? ? ? ? ? ? ? 網(wǎng)絡(luò)ID向主機ID借位n位n,子網(wǎng)數(shù)為2^n,
? ? ? ? ? ? ? ? ? 損失IP數(shù)=(2^n-1)*2
? ? ? ? ? 劃分超網(wǎng):合并多個小的子網(wǎng)成一個大的超網(wǎng)
? ? ? ? ? ? ? ? ? 主機ID向網(wǎng)絡(luò)位ID借位,劃分超網(wǎng)時,需要注意不網(wǎng)絡(luò)的范圍,如果合并范圍包含其他公司的網(wǎng)絡(luò)則不能劃分。
? ? ? ? ? 應(yīng)用舉例:
? ? ? ? ? ?1、某公司申請到一個C 類IP 地址,但要連接6 個的子公司,最大的一個子公司有26 臺計算機,每個子公司在一個網(wǎng)段中,則子網(wǎng)掩碼應(yīng)設(shè)為??
?????????????分析:由于6個子公司,每個子公司要在一個單獨的網(wǎng)段中,因此至少需要2^n>=6,因此能夠得到n=3,最大主機數(shù)2^(8-3)-2=30個網(wǎng)絡(luò),滿足大于等于26的需求 ? ?????????????
? ? ? ? ? ? ? ? ? ? ?192.168.0.000 00001
? ? ? ? ? ? ? ? ? ? ?192.168.0.000 11110 ? ??
? ? ? ? ? ? ? ? ? ? ?…….
? ? ? ? ? ? ? ? ? ? ?192.168.0.101 00001
????????????????192.168.0.101 11110 ? 第6個網(wǎng)絡(luò)的地址
? ? ? ? ? ? ? ? ?因此能夠得到:
? ? ? ? ? ? ? ? ? ? ?192.168.0.1/27 –?192.168.0.161/27 第一網(wǎng)絡(luò)的地址及范圍
? ? ? ? ? ? ? ? ? ? ?…….
? ? ? ? ? ? ? ? ? ? ?192.168.0.1/27 –?192.168.0.190/27 第六個網(wǎng)絡(luò)的地址及范圍 ?????????????
? ? ? ? ? ?2、一家集團公司有12家子公司,每家子公司又有4個部門。上級給出一個172.16.0.0/16的網(wǎng)段,讓給每家子公司以及子公司的部門分配網(wǎng)段。
???????????? ?分析:因為有12個子公司,因此至少要劃分2^n>=12個子網(wǎng),因此能夠得到n=4,因此需要向主機位借4個,能夠劃分16個子網(wǎng),但是只用12個,剩余4個閑置,因此劃分后得到:
? ? ? ? ? ? ? ? ? ? ?172.16.0.0/16劃分16個子網(wǎng)
? ? ? ? ? ? ? ? ? ? ?172.16.0000 0000.00000001 ?——— ?172.16.0.1/20
? ? ? ? ? ? ? ? ? ? ?172.16.0000.1111.11111110 ?——— ?172.16.15.254/20 ? ? 第一個網(wǎng)絡(luò)的地址及范圍
? ? ? ? ? ? ? ? ? ? ? ………
? ? ? ? ? ? ? ? ? ? ?172.16.1011 0000.00000001 ?——— ?172.16.176.1/20
? ? ? ? ? ? ? ? ? ? ?172.16.1011 1111.11111110 ?——— ?172.16.191.254/20 ? ?第十二個網(wǎng)絡(luò)地址及范圍
? ? ? ? ? ? ? ? ? ? ?………
? ? ? ? ? ? ? ? ? ? ?172.16.1111 0000.00000001 ?——— ?172.16.240.1/20
? ? ? ? ? ? ? ? ? ? ?172.16.1111 1111.11111110 ?——— ?172.16.255.254/20 ? ?最后一個網(wǎng)絡(luò)地址及范圍
? ? ? ? ? ? ? ? ? ?又因為每個公司又有4個部分,因為要在12個子網(wǎng)的基礎(chǔ)上再次劃分子網(wǎng),所以還需要在向主機位借2位即可, 下面以第一個子公司劃分為4個子網(wǎng)為例,因此又能夠得到:
? ? ? ? ? ? ? ? ? ? ?172.16.0000 00 00.00000001? ——— ?172.16.0.1/22 ??
? ? ? ? ? ? ? ? ? ? ?172.16.0000 00 00.11111110 ?——— ?172.16.0.254/22 ? ?第一個網(wǎng)絡(luò)地址及范圍
? ? ? ? ? ? ? ? ? ? ?………
? ? ? ? ? ? ? ? ? ? ?172.16.0000 11 00.00000001 ?——— ?172.16.12.1/20
? ? ? ? ? ? ? ? ? ? ?172.16.0000 11 00.11111110 ?——— ?172.16.12.254/20 ? ?第四個網(wǎng)絡(luò)地址及范圍
????特殊地址:? ?
? ? ? ? ??0.0.0.0:不是一個真正意義上的IP地址。它表示一個集合:所有不清楚的主機和目的網(wǎng)絡(luò)。
? ? ? ? ??255.255.255.255:限制廣播地址。對本機來說,這個地址指本網(wǎng)段內(nèi)(同一廣播域)的所有主機
? ? ? ? ??127.0.0.1~127.255.255.254:本機回環(huán)地址,主要用于測試。在傳輸介質(zhì)上永遠(yuǎn)不應(yīng)該出現(xiàn)目的地址為“ 127.0.0.1”的 數(shù)據(jù)包。
? ? ? ? ??224.0.0.0到239.255.255.255:組播地址, 224.0.0.1特指所有主機, 224.0.0.2特指所有路由器。
? ? ? ? ??224.0.0.5:指OSPF 路由器,地址多用于一些特定的程序以及多媒體程序
? ? ? ? ??169.254.x.x:如果Windows主機使用了DHCP自動分配IP地址,而又無法從DHCP服務(wù)器獲取地址,系統(tǒng)會為主機分配這樣地址。
???????????????
四、路由
? ? ?路由的功能:跨網(wǎng)絡(luò)通信時選擇傳輸路徑。
? ? ?路由的分類:
? ? ? ? ? ?主機路由:目標(biāo)地址為單個IP
? ? ? ? ? ?網(wǎng)絡(luò)路由:目標(biāo)地址為IP網(wǎng)絡(luò)
? ? ? ? ? ?默認(rèn)路由:目標(biāo)為任意主機 ?0.0.0.0/0.0.0.0.0
? ? ?接口:自己路由器上面一個能夠指向目標(biāo)地址的端口 ? ?????????
[email protected] ?~ # dmesg | grep -i eth ?查看網(wǎng)卡驅(qū)動模塊信息
????????????????????????e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:c4:17:61
????????????????????????e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection
[email protected] ?~ # rmod e1000 或modprobe -r e1000
[email protected] ?~ # lsmod |grep e1000 查看模塊信息
[email protected] ?~ # modprobe e1000 在把模塊加載回來????????
? ? ?網(wǎng)關(guān):指向目標(biāo)地址的下一個路由器的臨近接口,這里需要注意的是主機與你的主機配置的gateway一定要在同一網(wǎng)段內(nèi)。
? ? ?DNS:將主機名解析為IP地址 ? ?????
? ? ? ? ? 配置文件:/etc/resolv.conf
? ? ? ? ? 本地dns數(shù)據(jù)庫:/etc/hosts里面可以自行指定ip地址和主機名,且主機名可以有多個別名,然后ping主機名就可以看到對應(yīng)的ip地址 ? ????
? ? ? ? ? 將主機名解析為ip地址
? ? ? ? ? ? ?dig -t A haohuigou.com((dig 測試時,是不會查看/etc/hosts的,而是通過DNS服務(wù)器查看的)
? ? ? ? ? ? ?dig-t A FQDN ?解析主機名為ip
? ? ? ? ? ? ? ? ?FQDN–> IP
? ? ? ? ? ? ?dig -x IP 解析ip為主機名 ?但是互聯(lián)網(wǎng)上面大多數(shù)服務(wù)器都不支持反解?
? ? ? DNS服務(wù)器地址:
? ? ? ? ? ? ?114.114.114.114(china)
? ? ? ? ? ? ?8.8.8.8(谷歌)
? ? ? 網(wǎng)絡(luò)配置文件:/etc/sysconfig/network-scripts/ifcfg-接口名稱
? ? ? ? ? ? DEVICE=接口名稱 ?定義接口名稱:/etc/udev/rules.d/70-persistent-net.rules 需要注意的是兩個文件中接口名稱必須一致,否則會報錯
? ? ? ? ? ? TYPE=Ethernet
? ? ? ? ? ? UUID:設(shè)備唯一標(biāo)識
? ? ? ? ? ? ONBOOT:是否開機自動連接
? ? ? ? ? ? NM_CONTORLLED=yes 是否接受NetworkManager控制 ??service NetworkManager status ,該服務(wù)在centos6 中不穩(wěn)定,建議no
? ? ? ? ? ? BOOTPROTO=static none dhcp 或者把這行干掉直接寫IPADDR
? ? ? ? ? ? IPADDR=ipv4地址
? ? ? ? ? ? NETMASK=子網(wǎng)掩碼
? ? ? ? ? ? PREFIX=子網(wǎng)掩碼的簡單格式
? ? ? ? ? ? GATEWAY=網(wǎng)關(guān)
? ? ? ? ? ? DNS1=8.8.8.8(谷歌的網(wǎng)關(guān))
? ? ? ? ? ? DNS2=114.114.114.114(中國的網(wǎng)關(guān)) 網(wǎng)關(guān)可以加三個
? ? ? ? ? ? DNS3=8.8.4.4(谷歌的)
? ? ? ? ? ? HWADDR=網(wǎng)卡地址 ?如果要改mac地址需要用MACADDR名字
? ? ? ? ? ? PEERDNS=yes 如果BOOTPROTO的值為“ dhcp”,是否允許dhcp server分配的dns服務(wù)器指向信息直接覆蓋至
? ? ? ? ? ? ONPARENT=yes ?物理網(wǎng)卡啟動就啟動別名
????
? ? ? ? 最省略寫法:2行
? ? ? ? ? ?DEVICE=eth1
? ? ? ? ? ?BOOTPROTO=dhcp
? ? ? ? 靜態(tài)配置IP地址:
? ? ? ? ? ? ?DEVICE=eth1
? ? ? ? ? ? ?IPADDR=10.1.1.1
? ? ? ? ? ? ?PREFIX=16
? ? ? ? ? ? ?GATEWAY=10.1.1.254
? ? ? ? ? ? ?DNS1=8.8.8.8
? ? ? ? ? 注意:配置完成后要重新啟動服務(wù) service network restart
? ? ?網(wǎng)絡(luò)接口設(shè)備別名:為每個設(shè)備別名生成獨立的接口配置文件,在啟用之前首先要關(guān)閉NetworkManager服務(wù),且必須使用靜態(tài)IP。
??????????service NetworkManager stop(臨時關(guān)閉)/chkconfig NetworkManager off(下次開機時關(guān)閉)
????網(wǎng)絡(luò)接口配置bonding:
? ? ? ? ? ?將多塊網(wǎng)卡綁定同一個IP地址對外提供服務(wù),可以實現(xiàn)高可用和負(fù)載均衡,直接給兩塊網(wǎng)卡綁定一個IP是不可能的,通過bonding虛擬一塊網(wǎng)卡對外提供鏈接,但是需要兩塊網(wǎng)卡修改為同一個MAC地址。
? ? ? ? ? ?bonding的工作模式:?? ????????
? ? ? ? ? ? ? ? Mode 0 (balance-rr) ?輪詢模式
? ? ? ? ? ? ? ? ? ? ? 輪轉(zhuǎn)( Round-robin)策略:從頭到尾順序的在每一個slave
? ? ????????????? 接口上面發(fā)送數(shù)據(jù)包。本模式提供負(fù)載均衡和容錯的能力
? ? ? ? ? ? ? ? ? ?——輪流的往網(wǎng)卡上面發(fā)數(shù)據(jù)包,兩個網(wǎng)卡都走數(shù)據(jù),第一個用戶來了請求第一個快網(wǎng)卡,第二個用戶來了請求第二塊網(wǎng)卡,如果二塊網(wǎng)卡壞了,來了第一個用戶,第一個網(wǎng)卡,來了第二個就可能走第二塊網(wǎng)卡,因此能夠?qū)崿F(xiàn)均勻負(fù)載,但容錯能力較差。
? ? ? ? ? ? ? ? Mode 1 (active-backup) ?
? ? ? ? ? ? ? ? ? ? ?活動-備份(主備)策略:在綁定中,只有一個slave被激活。
? ? ? ? ? ? ? ? ? ? ?當(dāng)且僅當(dāng)活動的slave接口失敗時才會激活其他slave。為了避免交換機發(fā)生混亂此時綁定的MAC地址只有一個外部端口上可見
? ? ? ? ? ? ? ? ? ?—–主備模式,兩塊網(wǎng)卡,默認(rèn)第二塊是不工作的,只有第一塊網(wǎng)卡壞了才工作,性能不好,有容錯性
? ? ? ? ? ? ? ? Mode 3 (broadcast)
? ? ? ? ? ? ? ? ? ? ?廣播策略:在所有的slave接口上傳送所有的報文。本模式提供容錯能力。
? ? ? ? ? ?配置方法:
? ? ? ? ? ? ? [email protected] ?/etc/sysconfig/network-scripts # cat ifcfg-eth1 ifcfg-eth2?
? ? ? ? ? ? ? ? ? ? ? ?DEVICE=eth1
? ? ? ? ? ? ? ? ? ? ? ?SLAVE=yes
? ? ? ? ? ? ? ? ? ? ? ?MASTER=bond0
? ? ? ? ? ? ? ? ? ? ? ?DEVICE=eth2
? ? ? ? ? ? ? ? ? ? ? ?SLAVE=yes
? ? ? ? ? ? ? ? ? ? ? ?MASTER=bond0
? ? ? ? ? ? ? [email protected] ?/etc/sysconfig/network-scripts # cat ifcfg-bond0?
? ? ? ? ? ? ? ? ? ? ? ?DEVICE=bond0
? ? ? ? ? ? ? ? ? ? ? ?IPADDR=192.168.1.105
? ? ? ? ? ? ? ? ? ? ? ?PREFIX=24
? ? ? ? ? ? ? ? ? ? ? ?GATEWAY=192.168.1.1
? ? ? ? ? ? ? ? ? ? ? ?DNS1=8.8.8.8
? ? ? ? ? ? ? ? ? ? ? ?BONDING_OPTS="miimon=100 mode=1"
? ? ? ? ? ?miimon:是用來進行鏈路監(jiān)測的。如果miimon=100,那么系統(tǒng)每100ms 監(jiān)測一次鏈路連接狀態(tài),如果有一條線路不通就轉(zhuǎn)入另一條線路
? ? ? ? ? ?cat /proc/net/bonding/bond0 可以查看綁定信息
???????? 如需卸載:先ifconfig bond0 down 然后rmmod bonding 卸載掉該模塊
? ? ? ? ? ?實驗時,IP地址可以配置與自己windows中的IP在一個網(wǎng)段,在虛擬機圖形界面右下角,網(wǎng)卡圖標(biāo)點擊斷開連接進行測試,在windows界面ping配置的IP地址即可。
? ? ? ?路由功能實例:現(xiàn)有路由R1和R2,R1有兩個接口分別是R1-0和R1-1,R1-0鏈接網(wǎng)絡(luò)192.168.0.1/24,R1-1連接網(wǎng)絡(luò)10.0.0.1/8 且與路由R2路由的R2-1接口相連,R2-1的接口地址為10.0.0.2/8,R2-0的接口連接網(wǎng)絡(luò)172.16.0,1/16.
? ? ? ? ? 因此可以得到
? ? ? ? ? ?R1的路由表為: ?
? ? ? ? ? ? ? ?網(wǎng)絡(luò)地址 ? ? ? ? ?接口 ? ? ? ?網(wǎng)關(guān)
? ? ? ? ? ? ? ?172.16.0.0/16 ? ? ? R1-1 ? ? ? ?10.0.0.2 ?注意在添加路由表的時候不用添加相鄰網(wǎng)段的,加不相鄰的就可以,因此 配置路由表示 添加此網(wǎng)絡(luò)即可
? ? ? ? ? ? ? ?192.168.0.0/24 ? ? ?R1-0 ? ? ? ?192.168.0.1
? ? ? ? ? ? ? ?10.0.0.0/8 ? ? ? ? R1-1 ? ? ? ?10.0.0.1 ? ? ? ? ?
? ? ? ? ? ? R2的路由表
? ? ? ? ? ? ? ?網(wǎng)絡(luò)地址 ? ? ? ? ?接口 ? ? ? ?網(wǎng)關(guān)
? ? ? ? ? ? ? ?192.168.0.0/24 ? ? ?R2-1 ? ? ? ?10.0.0.1 ?注意在添加路由表的時候不用添加相鄰網(wǎng)段的,加不相鄰的就可以,因此 配置路由表示 添加此網(wǎng)絡(luò)即可
? ? ? ? ? ? ? ?10.0.0.0/8 ? ? ? ? R2-1 ? ? ? ?10.0.0.2
? ? ? ? ? ? ? ?172.16.0.0/16 ? ? ? R2-0 ? ? ? ?172.16.0.1
? ? ? ? ? 模擬實例:分別用兩個centos6虛擬機,模仿兩個路由,每個虛擬機要用有兩個虛擬網(wǎng)卡,模擬兩個接口,具體設(shè)置如下:
? ? ? ? ? ? ? R1的網(wǎng)卡中的配置文件:
? ? ? ? ? ? ? ? ?ifcfg-eth0
? ? ? ? ? ? ? ? ? ? ?DEVICE=eth0
? ? ? ? ? ? ? ? ? ? ?IPADDR=192.168.0.1
? ? ? ? ? ? ? ? ? ? ?PREFIX=24
? ? ? ? ? ? ? ? ?ifcfg-eth1
? ? ? ? ? ? ? ? ? ? ?DEVICE=eth1
? ? ? ? ? ? ? ? ? ? ?IPADDR=10.0.0.1
? ? ? ? ? ? ? ? ? ? ?PREFIX=8
? ? ? ? ? ? ? ? 配置完成后重啟網(wǎng)絡(luò)服務(wù): service network restart ?該步一定要放在route add 之前,否則route add添加的內(nèi)容會被刷掉
????????????route add -net 172.16.0.0/16 gw 10.0.0.2 dev eth1
????????????配置完成后截圖如下:
? ? ? ? ? ? ? ? 當(dāng)做路由器使用必須要啟用:echo 1 > /proc/sys/net/ipv4/ip_forward 啟用路由轉(zhuǎn)發(fā)功能
? ? ? ? ? ? ? ? 關(guān)閉防火墻:iptables -F
? ? ? ? ? ? ? ?R2的網(wǎng)卡中的配置文件:
? ? ? ? ? ? ? ? ?ifcfg-eth0
? ? ? ? ? ? ? ? ? ? ?DEVICE=eth16777736
? ? ? ? ? ? ? ? ? ? ?IPADDR=172.16.0.1
? ? ? ? ? ? ? ? ? ? ?PREFIX=16
? ? ? ? ? ? ? ? ?ifcfg-eth1
? ? ? ? ? ? ? ? ? ? ?DEVICE=eth33554984
? ? ? ? ? ? ? ? ? ? ?IPADDR=10.0.0.2
? ? ? ? ? ? ? ? ? ? ?PREFIX=8
????????????
?????????????配置完成后重啟網(wǎng)絡(luò)服務(wù): service network restart
? ? ? ? ? ? ? ? ?route add -net 192.168.0.0/24 gw 10.0.0.1 dev eth33554984
?????????????配置完成后截圖如下:
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? 當(dāng)做路由器使用必須要啟用:echo 1 > /proc/sys/net/ipv4/ip_forward 啟用路由轉(zhuǎn)發(fā)功能
? ? ? ? ? ? ? ? 關(guān)閉防火墻:iptables -F
? ? ? ? ? ? 找兩個主機分別配置 192.168.0.100/24 gw 192.168.1.1?
? ? ? ? ? ? ? ? ? ? ? ? ?172.16.0.100/16 gw ?172.16.0.1?
? ? ? ? ? ? 兩個主機相互ping對方主機地址 ?根據(jù)ttl 經(jīng)過路由的狀態(tài),查看工作是否正常。
? ? ? ? ? ? 也可以根據(jù)tracert ?172.16.0.100 查看跳數(shù)
????
注意:echo 1 > /proc/sys/net/ipv4/ip_ipforward 由于是內(nèi)核文件存不住盤,因此可以修改/etc/sysctl.conf 使其永久有效,sysctl -p 重新讀改過的文件