萬盛學電腦網

 萬盛學電腦網 >> 電腦入門 >> 徹底理解Cisco/Linux/Windows的IP路由 電腦技術吧

徹底理解Cisco/Linux/Windows的IP路由 電腦技術吧

徹底理解Cisco/linux/Windows的IP路由   -1.只要理解實質,名稱並不重要! 很多使用linux的網絡高手在面對Cisco管理員的諸如管理距離,路由度量等詞匯時,還沒有PK就自覺敗下陣來了。我覺得這實在太可惜了,大家本是一家,為何這麼為難對方呢?如果理解了實質,如何描述就不是那麼重要了。如果一個Cisco設備管理員對你說一些你不懂的名詞,或者對你描述一些Cisco上有但是基於linux的網關設備上沒有的特性,而且那個人因為擁有了CCIE證書而目中無人,你要怎麼面對?如果你是一個熟悉且精通linux的人(比如我),你首先就要明白,linux是無所不能的,只要你願意,你下班回家就能寫一個基於Netfilter的模塊,實現所有的Cisco IOS的特性,如果你認為自己做不到,那麼就看完本文,給自己一些信心。(注:我並不貶低以Cisco為業的哥們兒,某種意義上,我也是其中一員,當年只是因為沒錢才沒有考CCIE,因為太TM貴了,因為沒錢,我轉到了一個草根平台,不高貴,但卻自由。背叛的意義在我這裡成了類似“出埃及記”的東西...) 0.要讀一些歷史 一位IT人員,在這裡談歷史,有點不妥,但是我請各位關注一下理查德.費曼,一位全才,在關注一下更猛的沃納·卡爾·海森堡,一位歷史系科班出身的頑童。讀一點歷史能讓你知道一些常識,更能讓你明白事情為什麼會成現在這個樣子。任何事情都是一點一滴積累的,我們現在的即便再發達的科學技術,都是從原始人發明弓箭(並不是常規認為的發明火開始的,如有疑問,私信)開始的。你可能看不起原始人,因為他們沒有iPad,沒有手機,動不動就咬人...但是我們確實不比他們強多少,我們有iPad,因為蘋果做了它,我們有手機,因為有人賣,我們不咬人,不隨意打人殺人,因為我們害怕法律的制裁...         任何事情一開始都不是復雜的,其基礎理念都是極其簡單的。這是我的信條!然後逐步堆積,就成了現在這個樣子,然後學子們開始背誦,雖然他們不知道為何如此,但是還是在背誦,然後考試成績非常好,被認為是高才生,然後,突然有個機會,聚餐,或者年會,抑或相親,突然聽到了重金屬搖滾樂,...他們不知所措了,...生活不能自理,...唉,總之,我們是復活的魔鬼,而撒旦就是歷史! 1.有類IP和無類IP IP之初,並無此分類,當時的概念全部是“有類”的。只是到了後來,為了解決逐步發現的問題,才引入“無類”的概念,於是就有了這個分類。不用再強調的是,任何事情一開始是都是無法發現問題和不足的,導致到了後來發現時才能彌補,因此技術上的進化都是逐步堆砌而成的,也造成了一項技術會發展進化得越來越復雜。         當人們在實驗環境下使用IP可以聯網的時候,下一步的計劃就是制定一套如何將這些IP地址分發給需要聯網的機構的方案,這其實也是當時唯一的問題,因為實驗環境中發現的問題都在實驗環境中解決了,真實世界的問題只有將IP地址分配出去並且大家都使用了之後才能發現!鑒於此,美國短視且一廂情願地將IP地址空間分成了5個類,每一個IP地址的“網絡號”標示了該IP地址的歸屬方的規模,其中A類地址的規模最大,C類地址的規模最小,僅僅能承載254台主機。 1.1.子網劃分 然而使用A類地址的機構並不是很多,A類地址的數量卻是如此之多,以至於出現了地址浪費問題,於是分級就成了唯一的解決方案,畢竟地址空間已經劃分好,不能推倒重來,那麼只能靠分級劃分子網了,於是在一個機構的所有IP地址的主機部分,還可以拉出去一部分用來作為子網網絡號,這就叫基於分類IP地址的子網劃分。於是一個機構中可以承載多個規模相同的子機構,注意是規模相同的!然而這僅僅是裂變的第一步... 1.1.1.問題:為何子網規模必須相同?     子網劃分規模必須相同的言外之意就是子網掩碼必須一致,這成了有類IP子網劃分的硬性規定,但是為何會這樣呢?這就不得不從IP路由的另一個維度,即IP管理平面的路由通告上作一番解釋。             在有類年代,給出一個IP地址,你就能得到所有的信息,你能得到其主類網段,即x.0.0.0/8的A類網段,y.z.0.0/16的B類網段等,進而你就知道該IP屬於什麼機構...但是子網劃分就是機構內部的事情了,外界並不知道你的機構內部的子網是怎麼劃分的,對於全局的路由通告而言,當然也不能帶有任何子網的信息,也就是說,路由通告只能通告主類網段的路由,並不攜帶子網掩碼!比如RIPv1協議就不能通告1.2.3.0/24這樣的路由!那咋辦捏?畢竟一個子網就是一個小的網段,在IP路由層次上來講就是一個真正的三層網段,172.16.1.0/24和172.16.2.0/24雖然都是屬於172.16.0.0/16這個主類,但是由於有了子網劃分這個操作,它們畢竟不是一個網段!怎麼識別並區分它們呢?好辦(此時我這麼說並不是意味著我就是上帝,我站在一個後來人的角度,采用一種歷史的眼光來評述這件事)!就配置在接口上的IP地址的掩碼來識別。由於IP地址的配置是獨立的,即使現在,IP地址的自動配置也不是常見的事,自動配置大多在端系統!為了不丟失被掩碼掩掉的網段,必須要求所有同網段的接口配置相同的掩碼,實話說,這是上帝的要求,你可以不遵循,但是你要付出某些主機不可達的代價,,比如,某個接口A配置了172.16.1.0/24的地址,和它通過二層交換機直連的某個接口B配置了172.16.1.128/25的IP地址,那麼請問,它們能達到共識嗎?對於接口B而言,172.16.1.0/25的就不是同一個網段的,但是對於A而言,所有172.16.1.0/24都是一個網段的,雖然在如今的無類環境中,這完全沒有問題,完全可以通過路由的方式解決可達性問題,在有類IP環境中,完全按照主類和“通過配置在接口上IP上的掩碼”來識別子網,任何路由協議通告的路由都不會攜帶掩碼,這就成了問題,因此這有類環境中,必須要求子網掩碼一致!             這讓我想起了小說《猴爪》和基於史蒂芬.金的小說拍成的電影《寵物公墓》(又名《夜半鬼敲門》,有兩部)。你希望得到一些逝去的補償,但是你的代價就是更多的逝去!             為何這麼復雜?因為有類IP年代,“IP類”隱含了很多的隱性信息,信息高度的不凝聚!你可以從類中得到很多東西...這並不是上帝的方式。 1.2.無類以及VLSM 子網在每個機構被不同程度地劃分著,然而僅僅如此劃分子網是不夠的,第一,一個機構中的子機構不一定規模相同;第二,規模比較大的機構的子機構可能還有子機構,現有的IP地址分配方案無法真實反映實際機構的組織架構關系。         一個分類IP段(即分類IP地址的網絡號標示的部分)已經被分配給了一個機構,那麼如何來分配該段內的地址是機構內部的事情,為何還要遵循硬性的子網劃分規定(劃分為規模相同的子王,即子網掩碼相同)呢?由於當時做出來的網絡設備都是按照當時的“有類”標准執行的,所以其結果阻礙了人們靈活地使用IP地址!         終於,有人大膽地要求取消地址分類,VLSM被提出。如此標准提出後,在無類環境中,子網掩碼成了VL(變長)的了,不再是固定的“IP地址的類別指定的掩碼+同分類地址段內相同的子網掩碼”的了,於是你可以寫成IP/mask的形式,IP不再按照基於第一個字節的頭幾位二進制值而分類,mask也不再遵循8,16,24等基於分類地址的固定劃分,事實上,IP可以是任意的符合規定的IP地址,mask如果寫成prefix前綴形式(指示多少連續的1)的話,可以是0到32的任意值!實際上,到此為止,裂變已經發生了! 1.3.合並成超網和CIDR 取消分類帶來了超猛的效果!其中最猛烈的效果就是改變了路由查找的算法,另外改變了人們解讀IP地址的方式。對於路由查找算法的改變就是將路由查找進化到了“最長掩碼匹配年代”,這個後面要說,對於人們解讀IP地址方式的改變,則是在無類環境中,一個塊IP地址段不再和唯一的機構關聯了,它包含的所有IP地址原則上可以屬於任何人,任何機構,可以處在任何物理位置。當然,這也帶來了不少的問題,實際上是將IP地址的分配任務交給了實施人員,一旦出現地址空間碎片,將會導致無法匯聚,從而最終導致路由表的條目增加。         有點跑題!正說著無類的好呢,又扯到它的缺點了...言歸正傳。無類編址的提出實際上最開始是為了解決機構內部分配地址的問題的,然而它事實上卻帶來了一種副作用,那就是將一塊本屬於一個機構的地址段可以延伸到該機構之外,也即,機構和地址塊不再關聯!既然在機構內,一系列的連續子網可以合並成一個主類網絡段,那麼現在已經是不再在意機構界限的無類環境了,是否可以將連續的VLSM子網合並成一個大一級的網絡呢?這是肯定可以的,是為超網。取消了分類是解除了一種束縛,隨之解放的就是人們分配IP地址的權力,分配過程變得自由了,因此雖然連續的VLSM子網可以合並成超網,但是你卻並不能假設一定可以這麼做。完全有可能1.2.40.0/24在美國,而1.2.41.0/24卻在阿富汗,你當然不能將其合並成1.2.40.0/23,因為它們真的不屬於任何交集內!結果是什麼呢?結果就是路由查找算法的改變,可以說是簡化。這個進化的誘因就是:可以合並成超網的若干子網由於允許不屬於同一個分支機構內而無法合並,因此也就不能假設分類環境中的屬於子網的IP地址一定屬於它們合並成的超網中。         擺脫了分類的限制,去除了諸多的假設,路由查找算法就變成了“最長掩碼匹配”算法了,路由查找和IP地址的分配完全沒有關系,一直找到一個所有路由表項中和目標網絡最接近的,將目標鎖定在一個最小的范圍內。這遍可以用一種更加統一的方式來實現查找算法了。而分類IP路由查找的實現則不能做到統一。 1.4.有類IP路由查找算法 有類IP路由查找算法是兩個步驟,可以簡稱為,目標地址分類和子網查找。首先將目標地址分類得到主類網段,然後看系統路由表中有沒有此主
copyright © 萬盛學電腦網 all rights reserved