如何創(chuàng)建實現(xiàn)IPv6子網(wǎng)
在網(wǎng)絡(luò)課堂上有一個經(jīng)常問的問題是“為什么我們不把所有設(shè)備都放在同一個子網(wǎng)之中?這樣就不用再擔(dān)心路由的問題。”這個原因很簡單。每一次當(dāng)某個系統(tǒng)需要通訊時,無論他是一臺主機還是另一臺路由器,他們都需要發(fā)送一個ARP(地址解析協(xié)議)請求。此外,還有一些非ARP的廣播數(shù)據(jù)包,這些訊息網(wǎng)絡(luò)中所有人的都可以接收到。當(dāng)一個24位子網(wǎng)中只有255臺設(shè)備的時候,這些廣播數(shù)據(jù)包算是比較有限的。在網(wǎng)絡(luò)中一個很重要的問題就是讓這個數(shù)字保持在一個較低的狀態(tài),因為任何主機在收到一條專發(fā)給它的信息或廣播信息時,主機必須要處理這個數(shù)據(jù)包。這需要創(chuàng)建一個硬中斷,而且操作系統(tǒng)內(nèi)核必須要閱讀足夠的數(shù)據(jù)以便這個數(shù)據(jù)包是否要進行進一步處理。
廣播風(fēng)暴時有發(fā)生,這種情況的主因是2層拓?fù)洵h(huán)路。我們在前面的文章里已經(jīng)接觸到一些2層拓?fù)涞膯栴}。當(dāng)數(shù)千個數(shù)據(jù)包同時涌向你的計算機時,你的機器運行速度會變得非常緩慢。操作系統(tǒng)內(nèi)核需要把大量的時間用于處理中斷,再也騰不出時間處理其它進程。所以,這就是子網(wǎng)為什么非常重要的原因。子網(wǎng)也稱作廣播域,它可以限制你能夠收到的廣播范圍。
那么,創(chuàng)建一個子網(wǎng)的要點是什么?我如何記住這些看起來怪怪的子網(wǎng)掩碼?這與IPv6地址如何配合工作?本期講座將擴展以前關(guān)于子網(wǎng)和CIDR那篇教程的內(nèi)容,以便讓你更全面的理解子網(wǎng)的相關(guān)概念。
下一個問題是從一臺主機的角度如何來看待廣播地址和子網(wǎng)掩碼。我們可以理解一臺主機需要了解在同一個子網(wǎng)上有什么計算機。這些IP地址能夠直接對話,而無需路由器。當(dāng)子網(wǎng)掩碼或者廣播地址配置不正確時,你很快就會發(fā)現(xiàn)無法訪問某些主機。
最常見的設(shè)置錯誤經(jīng)常出現(xiàn)在當(dāng)沒有同時指定子網(wǎng)掩碼和廣播地址時設(shè)置一個IP地址的時候,由于一些原因,雖然可以通過這其中的一個的值算出另一個,但大多數(shù)操作系統(tǒng)并不負(fù)責(zé)主動更新它們,例如當(dāng)你運行“ifconfig eth0 130.211.0.1 netmask 255.255.255.0”時,你可能以為一切都會按你預(yù)想的方式運行。遺憾的是,你的廣播地址很可能被設(shè)置為255.255.0.0。這主要依賴于路由器的設(shè)置,但是,這個結(jié)果通常會導(dǎo)致所有的廣播數(shù)據(jù)包丟失。相反,如果一個子網(wǎng)掩碼設(shè)置的不正確,這個計算機就不知道這個子網(wǎng)的開始和結(jié)束地址。如果一臺計算機認(rèn)為另一個主機在同一個子網(wǎng)中而實際上并非如此,當(dāng)需要與之通信時這臺計算機就會直接向網(wǎng)絡(luò)中發(fā)送ARP請求而不去請求路由器。當(dāng)然你也可以設(shè)置路由器處理這種情況并且讓路由器替代目標(biāo)主機做出ARP應(yīng)答(稱作“ARP代理”,這時可以進行正常的通信),不過,大多數(shù)情況下這種情況的結(jié)果是無法訪問主機。
理解子網(wǎng)掩碼的設(shè)置原理就可以避免出現(xiàn)上面提到的問題。當(dāng)你記住子網(wǎng)掩碼的含義是“掩蓋一些二進制位”時,算出這個網(wǎng)絡(luò)地址和廣播地址并不非常困難。解密一些子網(wǎng)掩碼的含義可以加深你對子網(wǎng)掩碼原理的理解。一個24位網(wǎng)絡(luò)地址的子網(wǎng)掩碼是255.255.255.0。這很簡單。但是,255.255.240.0代表什么意思?破解這個地址的最佳方法就是從掩碼掩蓋的部分開始。把這個地址與一個標(biāo)準(zhǔn)24位網(wǎng)絡(luò)地址進行比較。標(biāo)準(zhǔn) 24位網(wǎng)絡(luò)地址有三個字節(jié)被掩蓋了,我們看到255.255.240.0有二個字節(jié)被掩蓋了,另一個8位字節(jié)被掩蓋了一部分。我們知道這是在一個16位網(wǎng)絡(luò)地址和一個24位網(wǎng)絡(luò)地址之間。我們必須要理解二進制,并且算出有多少位被掩蓋了。這最前面的16個字節(jié)顯然是網(wǎng)段的一部分。第三個8位字節(jié)240讓 16位的網(wǎng)絡(luò)地址擴展子網(wǎng)掩碼,分析這個數(shù)字你可以發(fā)現(xiàn)這個字節(jié)有4個二進制位沒被掩蓋(256-240=16,16等于2的4次方)。剩下的4個二進制位加上用于前兩個字節(jié)中的16個二進制位這意味著我們在處理一個20位的網(wǎng)絡(luò)地址。
1.0.0.0/255.255.255.248是什么意思?我們確實是在一個小于24位子網(wǎng)的網(wǎng)絡(luò)中。如果我們查看最后的8位字節(jié)中的剩余的字節(jié),我們能夠看到有8個可用的IP地址。要記住,只有2的3 次方能夠等于8,所以,我們使用除了最后一個字節(jié)中的三個二進制位以外的全部作為網(wǎng)絡(luò)地址。這是一個29位網(wǎng)絡(luò)。當(dāng)然,簡單的地址是非常清楚的:與24位網(wǎng)絡(luò)相比,255.255.255.128允許的主機地址數(shù)量是最后一個8位字節(jié)的一半。所以,這是一個25位網(wǎng)絡(luò)。
關(guān)于容易混淆的子網(wǎng)掩碼的話題,IPv6地址肯定占有一席之地。這個子網(wǎng)掩碼實際上并不是一個問題,因為同樣的原則在這里也適用。只是需要記住更多的數(shù)字。地址中的真正問題是地址本身的表達(dá)方式,IETF(互聯(lián)網(wǎng)工程任務(wù)組)似乎為其制造混亂而感到驕傲。IPv6地址一般以16進制表示。我們的老朋友IPv4也可以用16 進制表示一個IP地址,例如用B.B.B.B代表網(wǎng)絡(luò)地址11.11.11.11。遺憾的是,IPv6地址起來更讓人容易迷惑。要表達(dá)一個128位地址,IPv6通常把地址分為8個16位字段。
一個IPv6地址看起來是這樣的:2013:4567:0000:CDEF:0000:0000:00AD:0000。這個地址確實更容易一些。例如,前面的零不用寫,連續(xù)的四個零可以簡寫為::。然而,后面的零必須要顯示出來。這有一點混亂。但是,這個規(guī)則適用于一個沒有歧義的IP地址。每四個零中的第一個零可以刪除,但是,零的連續(xù)字段的簡寫每個地址只能進行一次。上述地址把零縮寫之后是這樣的:2013:4567:0000:CDEF::AD:0000。IPv6提供的地址數(shù)量是2的128次方,足夠地球每平方米使用大約1000個IP地址。
如果你記住了二進制的規(guī)則,IPv6表示地址的規(guī)則和一些簡單的子網(wǎng)參考,你將成為子網(wǎng)大師。朋友們會請你提供幫助。
小結(jié)
•子網(wǎng)對于把廣播通信量減少到最小程度是非常重要的。
•用計數(shù)被掩蓋的二進制位,是推測陌生的子網(wǎng)掩碼的最簡單的方法。
•IPv6地址在分割為子網(wǎng)方面與IPv4相同。只要你記住表達(dá)地址的規(guī)則,就可以把混亂減少到最低的程度。