1. 程式人生 > >通過設定靜態路由來實現不同網段可以互相訪問的方法

通過設定靜態路由來實現不同網段可以互相訪問的方法

隨著寬頻接入的普及,很多家庭和小企業都組建了局域網來共享寬頻接入。而且隨著區域網規模的擴大,很多地方都涉及到2臺或以上路由器的應用。當一個區域網記憶體在2臺以上的路由器時,由於其下主機互訪的需求,往往需要設定路由。由於網路規模較小且不經常變動,所以靜態路由是最合適的選擇。可是如果是多網段,又想實現不同網段電腦互訪,設定靜態路由就要掌握方法了。

    本文作為一篇初級入門類文章,會以幾個簡單例項講解靜態路由,並在最後講解一點關於路由彙總(歸納)的知識。由於這類家庭和小型辦公區域網所採用的一般都是中低檔寬頻路由器,所以這篇文章就以最簡單的寬頻路由器為例。(其實無論在什麼檔次的路由器上,除了配置方式和命令不同,其配置靜態路由的原理是不會有差別的。)常見的1WAN口、4LAN口寬頻路由器可以看作是一個最簡單的雙以太口路由器+一個4口小交換機,其WAN口接外網,LAN口接內網以做區分。

    路由就是把資訊從源傳輸到目的地的行為。形象一點來說,資訊包好比是一個要去某地點的人,路由就是這個人選擇路徑的過程。而路由表就像一張地圖,標記著各種路線,資訊包就依靠路由表中的路線指引來到達目的地,路由條目就好像是路標。在大多數寬頻路由器中,未配置靜態路由的情況下,內部就存在一條預設路由,這條路由將 LAN口下所有目的地不在自己區域網之內的資訊包轉發到WAN口的閘道器去。寬頻路由器只需要進行簡單的WAN口引數的配置,內網的主機就能訪問外網,就是這條路由在起作用。本文將分兩個部分,第一部分講解靜態路由的設定應用,第二部分講解關於路由歸納的方法和作用。

    下面就以網路初學者遇到的幾個典型應用為例,說明一下什麼情況需要設定靜態路由,靜態路由條目的組成,以及靜態路由的具體作用。

例一:最簡單的串連式雙路由器型環境

    這種情況多出現於中小企業在原有的路由器共享Internet的網路中,由於擴充套件的需要,再接入一臺路由器以連線另一個新加入的網段。而家庭中也很可能出現這種情況,如用一臺寬頻路由器共享寬頻後,又加入了一臺無線路由器滿足無線客戶端的接入。

    公司裡原有一個區域網LAN 1,靠一臺路由器共享Internet,現在又在其中添加了一臺路由器,下掛另一個網段LAN 2的主機。經過簡單設定後,發現所有主機共享Internet沒有問題,但是LAN 1的主機無法與LAN 2的主機通訊,而LAN 2的主機卻能Ping通LAN 1下的主機。這是怎麼回事?

    這是因為路由器隔絕廣播,劃分了廣播域,此時LAN 1和LAN 2的主機位於兩個不同的網段中,中間被新加入的路由器隔離了。所以此時LAN 1下的主機不能“看”到LAN 1裡的主機,只能將資訊包先發送到預設閘道器,而此時的閘道器沒有設定到LAN 2的路由,無法做有效的轉發。這種情況下,必須要設定靜態路由條目。此種網路環境的拓撲示意如下:

設定靜態路由 <wbr>不同網段可以互相訪問

 圖1(注:圖中省略了可能存在的交換層裝置)

    如圖一所示,LAN 1為192.168.0.0這個標準C類網段,路由器R1為原有路由器,它的WAN口接入寬頻,LAN口(IP為192.168.0.1)掛著 192.168.0.0網段(子網掩碼255.255.255.0的C類網)主機和路由器R2(新新增)的WAN口(IP為 192.168.0.100)。R2的LAN口(IP為192.168.1.1)下掛著新加入的LAN 2這個192.168.1.0的C類不同網段的主機。

    如果按照共享 Internet的方式簡單設定,此時應將192.168.0.0的主機閘道器都指向R1的LAN口(192.168.0.1),192.168.1.0網段的主機閘道器指向R2的LAN口(192.168.1.1),那麼只要R2的WAN口閘道器指向192.168.0.1,192.168.1.0的主機就都能訪問192.168.0.0網段的主機並能通過寬頻連線上網。這是因為前面所說的寬頻路由器中一條預設路由在起作用,它將所有非本網段的目的IP包都發到WAN口的閘道器(即路由器R1),再由R1來決定資訊包應該轉發到它自己連的內網還是發到外網去。但是192.168.0.0網段的主機閘道器肯定要指向 192.168.0.1,而R1這時並不知道192.168.1.0這個LAN 2的正確位置,那麼此時只能上網以及本網段內的互訪,不能訪問到192.168.1.0網段的主機。這時就需要在R1上指定一條靜態路由,使目的IP為 192.168.1.0網段的資訊包能轉發到路由器R2去。

一條靜態路由條目一般由3部分組成:1.目的IP地址或者叫信宿網路、子網;2.子網掩碼;3.閘道器或叫下一跳。

例一中R1上設定的靜態路由條目就應該為:目的IP地址192.168.1.0(代表1.x這個網段),子網掩碼255.255.255.0(因為是C 類網段),下一跳192.168.0.100。如圖2,此圖為TP-LINK R410中的靜態路由表配置項,儲存後即可生效。如果是Cisco的路由器,則在全域性配置模式下鍵入命令:Router(config)# ip route 192.168.1.0 255.255.255.0 192.168.0.100。

  注意:其中的閘道器IP必須是與WAN或LAN口屬於同一個網段。那條預設路由寫出來就是:目的IP為 0.0.0.0,子網掩碼0.0.0.0,下一跳為WAN口上的預設閘道器,有時我們也稱它為“8個0的預設路由”。另外,如果目的IP是一個具體的主機 IP(如192.168.1.2),那麼路由條目應為:目的IP 192.168.1.2,子網掩碼255.255.255.255,下一跳或閘道器192.168.0.100。


設定靜態路由 <wbr>不同網段可以互相訪問


圖2

    使用此種連線方式,還可以方便的使用路由器內建的訪問控制列表來設定LAN 2下主機的訪問許可權,這對企業使用者而言還是很方便的。寬頻路由器中的“防火牆設定”其實就是一個簡化的訪問控制列表,即ACL- Access Control Lists。如:希望區域網LAN 2中IP地址為192.168.1.7的計算機不能收發郵件,IP地址為192.168.1.8的計算機不能訪問企業內部位於LAN 1的ERP伺服器(假設其IP為192.168.0.10),對區域網中的其它計算機則不做任何限制,這時您需要指定如下的資料包過濾表,如圖:


設定靜態路由 <wbr>不同網段可以互相訪問


圖3

例二:兩臺平級並連的路由器,下掛子網中主機需要互相通訊的環境這種情況

    兩臺平行並連的路由器上層應該還有一個總的出口閘道器,而這個閘道器有可能因某種原因不便設定路由,而此時網路中存在3個不同的網段。

    我家是小區共享型的寬頻接入,我自己用一臺寬頻路由器構建了一個家庭區域網以共享Internet,正好鄰居也跟我一樣用寬頻路由器構建了另一個家庭區域網。而我們各自區域網內的主機之間卻不能互相通訊,根本ping不通,這是怎麼回事?

    這種情況下整個小區其實就是一個大的區域網,主機不能互通的原因,其實跟例一中LAN 1不能ping通LAN 2的原因一樣,都是因為上層的預設閘道器不知道目的IP所屬網段的正確位置,無法做有效轉發所致。這種環境的典型示意圖如下:

設定靜態路由 <wbr>不同網段可以互相訪問

 圖4

圖中內網閘道器就是小區的閘道器,R1和R3分別為兩戶的寬頻路由器,它們之間一般通過樓層的接入交換機和小區的骨幹交換機連線在一起,此圖省略了這一部分。圖4的這種情況,只要在閘道器裝置上按例一的方式新增兩條路由就能實現兩個子網中主機的互訪,而且其10.0.0.0這個A類網段中存在的主機也都能通過這兩條路由訪問到R1和R3下的內網機。但是如果是小區的閘道器裝置,那肯定是不會讓使用者隨便配置路由條目的,而且你應該也不想小區內的所有使用者都能直接訪問到你的內網主機。這時,我們可以在R1和R3上各新增一條路由指向對方來實現R1和R3下主機直接互訪的效果。
在R1上:目的IP地址172.16.0.0,子網掩碼255.255.0.0(B類網段),下一跳10.1.1.3。

在R3上:目的IP地址192.168.0.0,子網掩碼255.255.255.0(C類網段),下一跳10.1.1.2。

注:有些新型小區中使用了P-VLAN技術,這種網路的情況比較複雜,這樣上面簡單的靜態路由設定有可能無法達到目的。

例三:既串且並,網路中有多級路由裝置的環境。

    這種情況可以說是例一和例二兩種應用的整合和延伸,看似複雜其實簡單。如果像例二中那樣的環境中,我家裡的區域網再添置一個路由器,下掛另一個網段以做擴充套件,那要怎麼設定呢?

    這種網路結構,確實就是將例一和例二合在一起了。這時一共有4個網段並存,我們的設定是要讓兩戶家庭區域網下的3個子網內主機能夠互通,而此時小區的閘道器當然還是不能去設定的。其拓撲示意圖如下:

設定靜態路由 <wbr>不同網段可以互相訪問

 圖5

可以看到圖5就是將圖1和圖4整合在一起了。既然拓撲圖是例一、例二的結合,那將例一、例二中的路由條目加在一起是不是就可以了呢?當然也不是這麼簡單,如果只是配置了前兩例的路由條目,R3下的主機是無法直接訪問到R2下的192.168.1.0這個子網的。所以在R3上還要加一條到 192.168.1.0這個子網的路由。靜態路由條目配置如下:

R1:目的IP地址192.168.1.0,子網掩碼255.255.255.0,下一跳192.168.0.100。

目的IP地址172.16.0.0,子網掩碼255.255.0.0,下一跳10.1.1.3。

R3:目的IP地址192.168.0.0,子網掩碼255.255.255.0,下一跳10.1.1.2。

目的IP地址192.168.1.0,子網掩碼255.255.255.0,下一跳10.1.1.2。

    為何R3中第二條路由的下一跳不是直接指向R2,而是也指向R1呢?

    這個問題要從路由器間通訊的原理來講解。路由器是通過ARP解析協議來獲得下一跳路由器的MAC地址,而ARP基於廣播,在一般情況下路由器是不會轉發廣播,也就是廣播包無法過路由。所以對於路由器R3來講,R1和R3才是同等級的,它只能看到R1,不能看到R2,這就是為何在例一的注意中提到:“其中的閘道器IP必須是與WAN或LAN口屬於同一個網段”的原因。而文中所說的靜態路由條目組成的第3部分:閘道器又叫下一跳,而不叫下兩跳、下三跳也是這個意思。總之,在一般情況下,下一跳路由的IP地址肯定要跟這個路由器的某個介面是在同一個網段的。

本篇文章下面的部分將講解關於路由彙總(或叫路由歸納)的知識。

    上面例三中R3上的靜態路由條目,其實可以寫成一條:目的IP地址192.168.0.0,子網掩碼255.255.0.0(不再是C類子網的掩碼),下一跳10.1.1.2。這時192.168.0.0,掩碼255.255.0.0這個網段不能稱為C類或B類的子網了,由於它超過了本身C類網段的範圍,所以可以稱它是一個超網。這個網段包含了192.168.0.0~192.168.255.0所有的子網。也就是說,這條靜態路由會使所有目的IP在這個範圍內的資訊包,都發給10.1.1.2的路由器R1。將多條子路由條目彙總成一條都包含其內的總路由條目,這就是路由彙總或叫路由歸納。路由器在檢查計算路由時是比較消耗資源的,路由條目越多,路由表越長,則這個過程耗時越多,所以通過路由彙總減少路由表的長度,對提高路由器工作效率是很有幫助的。雖然在舉例中的這種只有幾個路由器的小網路中起到的作用有限,但是如果是幾十、幾百甚至上千、上萬個路由器的大型網路中,路由歸納起到的作用就非常明顯了,可以說不使用路由歸納是不可想象的。

例四:

設定靜態路由 <wbr>不同網段可以互相訪問

 圖6

可能細心的讀者已經發現,例三最後的那條歸納路由雖然包含了R1下所有的兩個子網(192.168.0.0和192.168.1.0),但是也包含了 R1下實際上並不存在的一些子網(192.168.2.0~192.168.255.0)。如果在整個區域網中別的路由器下還存在這些子網(如圖6,R4 下存在192.168.2.0子網),那麼路由就會出錯了,所以這條彙總路由是一條不精確的彙總。

    我們都知道IPv4的地址是由4段8位的二進位制陣列成,一部分是網路位,一部分是主機位。其對應的子網掩碼網路位部分就是全1的二進位制數,而主機位就是全0 的二進位制數。每個資訊包在過路由器時會檢查其目的IP,和路由表中路由條目的子網掩碼做“與”運算,並與路由條目中目的IP進行比對,相同的就按照這條路由規則轉發,不相同的就再檢查比對下一條。可以看出我們做的彙總路由的操作,就是將多條路由條目中目的IP相同的網路位提取出來寫成一條。而例三中的彙總路由之所以不精確就是因為相同部分未能全部提出來。
    如例三中,R3上的第一條:目的IP為 192.168.0.0;第二條:目的IP為192.168.1.0。我們只提取了前面的兩段192.168,而後面的第三段網路位中還是有相同的部分的。192.168.0.0中第三段寫成二進位制數為00000000(8位0),182.168.1.0中第三段寫成二進位制數為00000001(7位 0,1位1),那麼它們的前7位是相同的,在對應的子網掩碼位置上就應該是11111110(7位1,1位0),合成十進位制為254。所以這條彙總路由應該寫成:目的IP為192.168.0.0,子網掩碼255.255.254.0,下一跳10.1.1.2。這樣,這條彙總路由只包含 192.168.0.0和192.168.1.0兩個子網,是一條精確的彙總路由。如圖6中,R3下172.16.0.0的主機發送到 192.168.2.0網段的資訊包,其第三段網路位寫成二進位制為00000010(前6位0),就不包含在這條精確的彙總路由內了。

這時我們在R3上靜態路由條目應該為:

1.目的IP地址192.168.0.0,子網掩碼255.255.254.0,下一跳10.1.1.2。

2.目的IP地址192.168.2.0,子網掩碼255.255.255.0,下一跳10.1.1.4。

我們在進行路由彙總時應該儘量使用精確的彙總條目,本著能彙總的條目就彙總,不能精確彙總的條目就不彙總的原則。這樣在網路以後的擴充套件和變動時能更有條理的增改路由表,減少出錯的機率。

總結:

    靜態路由因為其設定簡單明瞭,在不常變動的網路中穩定性好,排錯也相對容易,所以在中小企業甚至一些大型的園區網中也都使用靜態路由,它在實際應用中是很常見的,屬於網路工作人員必會的基礎知識。如文中所述,靜態路由的設定原理是比較簡單的,但可以說它是學習各種路由協議的基礎,屬於學習路由知識時必學的部分。另外,在越複雜越大的網路中,彙總路由的效果就越顯著,而能不能進行有效的路由彙總、彙總的效率如何,都跟網路結構中IP地址網段的分佈有密切關係。IP地址的部署越連續而有條理,則路由彙總越容易也越有效,所以我們在部署網路時應該重視體系化編址。(注:在子網環境中,當網路地址是以2的指數形式的連續區塊時,路由歸納是最有效的。) <完>

轉:http://blog.sina.com.cn/s/blog_86d75993010109cr.html