路由器設定
首頁 ] 向上 ] 橋接器 ] 集線器 ] 路由器 ] [ 路由器設定 ] 中繼器 ] 網路卡 ]

 

作者:李忠憲 mailto:shane@mail1.tmtc.edu.tw

網址:http://www.tp.edu.tw/service/routing.htm

IP CLASS 網路

網路分割成子網路

什麼是路徑?

什麼是預設閘道?

路由如何傳遞?

使用tracert排除疑難

學校端路由器設定

學校端路由器遇到防火牆時

ATU-R路由設定

如何把ATU-R當校內路由器使用?

ATM路由設定


參考資料:路由協定及網路架構研析


IP階層網路

網路上的電腦必須以一種機制來識別彼此的身分,以方便雙方通訊。以網路七層架構中的第二層來說,這種機制就是網路卡硬體位址 (MAC位址),它以6個Bytes來表示,看起來像是00-0f-00-0a-e4-80,前三個位元組是生產廠商的代號,後面三個位元組是網路卡的出廠序號,每片網路卡的MAC位址必須是全球唯一的。

以七層中的最上層來說,這種機制就是SMB協定。在UNIX下是使用hostname,在Windows網路中則是使用Netbios name,這種名稱識別是用於內部網路,只要在同一網路中名稱唯一就可以,換句話說,同一個名稱可以用在不同網域中。

以七層中的第三層來說,這種機制就是IP。IP是由32個位元組成,每8個位元以(.)隔開,以十進位表示看起來就像163.21.236.71。與MAC位址一樣,每一台電腦的IP也必須全球唯一。

由於TCP/IP在網路世界的風行,使IP定址成為最重要的一種識別機制。IP的制定和核發由NIC組織負責管理,他們把IP的32個位元分成四個位元組,訂定階層關係,將網路依電腦數量之多寡區分為A、B、C、D四個等級。以台北市教育網路為例,教育部將申請自NIC的IP分給台北市教育網路一組Class B 163.21.X.X,台北市教育網路中心再將它細分成多組Class C 163.21.1.X~163.21.254.X,一一指定給各學校,有些大學校分到多個Class C,較小學校則分到半個Class C或四分之一個Class C。

在網路上要識別一台電腦,只要知道它的IP就可以,但如果要識別一群電腦就比較麻煩,必須以一個網路起始IP網路遮罩來表示。例如:163.21.236.0/255.255.255.0就代表筆者所在之網路。其中起始IP用來識別一個網路(一群電腦),所以一般稱為網路號碼,這個IP是不可以使用的網路遮罩用來表示網路的大小,網路大小是指該網路最大可容納的電腦數量,例如:255.255.255.0是表示該網路中最多可以有254部電腦,又如255.255.255.128是表示該網路中最多可以有126部電腦。將網路遮罩與IP位址進行逐位元AND運算,可以判斷該IP是屬於哪一個網路的電腦。舉例來說:

10100011    00010101    11101100    01000111    =    163.21.236.71

11111111    11111111    11111111    00000000    =    255.255.255.0

---------------------------------------------------------------------------------------

10100011    00010101    11101100    00000000    =    163.21.236.0

以163.21.236.71這部電腦來說,將它的IP 163.21.236.71和網路遮罩255.255.255.0做逐位元AND運算,得到163.21.236.0這個數值,所以該電腦是屬於163.21.236.0這個網路內的電腦。

由於網路遮罩255.255.255.0從左邊數過來總共有24個1,所以也可以簡單的用24來表示,所以163.21.236.0/255.255.255.0可以簡單的表示成163.21.236.0/24。

網路分割成子網路

一個Class C網路可用IP只有254個,因為原本IP範圍是163.21.236.0~163.21.236.255,其中163.21.236.0被網路號碼用掉了,而163.21.236.255又用來廣播(也就是當傳輸訊息時,如果目的地是163.21.236.255,那麼163.21.236.0這個網路內所有的電腦都會接收該訊息),減一減真的只剩254個IP

如果將一個Class C網路分割成兩個子網路,第一個子網路從163.21.236.0 ~ 163.21.236.127,第二個子網路從163.21.236.128 ~ 163.21.236.255。第一個子網路網路號碼是163.21.236.0,第二個子網路網路號碼是163.21.236.128,兩個子網路都需要一個廣播IP,分別是163.21.236.127和163.21.236.255。所以每個子網路可用IP只有126個,兩個相加只有252,我們發現分割越多子網路,可用IP就會越少。(註:每個子網路要用(浪費)二個IP)

10100011    00010101    11101100    00000000    =    163.21.236.0

10100011    00010101    11101100    10000000    =    163.21.236.128

-----------------------------------------------------------------------------------------

00000000    00000000    00000000    10000000    

11111111    11111111    11111111    10000000    =    255.255.255.128

將兩個子網路網路號碼拿來比對,差異發生在第25個位元,以此位元為參考點,我們把左邊的位元全部填上1,得到255.255.255.128,這個數值就是這兩個子網路的網路遮罩,255.255.255.128總共有25個位元是1,所以第一個子網路可以用163.21.236.0/25來表示,第二個子網路以163.21.236.128/25來表示。

什麼是路徑?

將上述兩個子網路連接在一起,必須使用一種叫做路由器的設備,當然電腦也可以拿來充當路由器使用,這時候我們也稱這台電腦是一台路由器。路由器上必須有兩個以上的網路線接孔,以便連接各個子網路,這些接孔我們稱它叫做Port,Port越多路由器可以連接的子網路也就越多,通常路由器也允許外加更多的Port,我們稱它叫做可擴充模組的路由器。如果是以PC當作路由器,就必須插入兩片以上的網路卡,一片網路卡算一個Port。Port這個名詞用在很多地方,為了避免混淆,我們稱路由器上的Port叫做閘道

閘道是到達一個網路的大門,閘道可以不止一個,就像台灣就有兩個閘道,一個是桃園中正機場,一個是高雄小港機場(比喻而已)。

每個閘道必須佔用該連接網路的一個IP,以連接上述兩個子網路的路由器來說,第一個閘道連接163.21.236.0這個子網路,我們就必須分配一個該子網路內的IP給它,通常是使用最後一個可用IP,也就是163.21.236.126。依此類推,第二個閘道就使用163.21.236.254這個IP。

從一台電腦通過一個或多個路由器到另一台電腦,我們稱它叫做路徑(Route)。「路徑」的定義方式是:一個目的地/網路遮罩以及一個閘道。例如:163.21.236.71這一台電腦要送訊息到163.21.236.200這台電腦,途中會經過路由器的第一個閘道。我們就可以定義一個路徑告訴163.21.236.71這部電腦如何去傳遞訊息,這個路徑可寫為:

163.21.236.200/255.255.255.255 GATEWAY 163.21.236.126   (送給唯一電腦)

(來源因為是自己,所以不用寫。)

為什麼是通過第一個閘道163.21.236.126而不是第二個閘道163.21.236.254呢?原因是163.21.236.71這台電腦並不認識163.21.236.254,當它使用廣播去查詢時,只有163.21.236.1 ~ 163.21.236.126這個範圍的電腦會回應訊息,所以站在163.21.236.71這台電腦的角度去思考,告訴它要送訊息到163.21.236.200去,必須把訊息丟給163.21.236.254去處理,這無異是叫一個盲人去一個陌生的地方問路一樣,最後是哪兒也去不了。

以上面所介紹的路徑來說,可以正確的指引163.21.236.71傳輸訊息封包到163.21.236.200,但是如果現在要送封包到163.21.236.201,那麼是否需要建立新的路徑呢?答案是:我們可以修改剛才那一條路徑,讓要到達的目的地,從一台單機,修改成一個網路(一群電腦)。這樣即使我們沒有替每一個目的地電腦建立路徑,也可以輕鬆找到它們,這條路徑定義為:

163.21.236.128/255.255.255.128 GATEWAY 163.21.236.126  (送給一群電腦)

(目的地從單機的IP,改為網路號碼。)

什麼是預設閘道

在廣大的網路世界裡,不可能將所有的路徑都建立在路由表(routing table)中。對163.21.236.71這台電腦來說,它只認識隔壁的子網路(在路由表中有記載到達163.21.236.128/25這個網路的路徑),如果現在要送訊息到136.2.80.1這台電腦,該怎麼辦呢?

當本地網路要連往遠端網路時,如果從路由表中找不到路徑,那麼系統還有最後一種選擇,就是使用預設路徑。這個路徑是當所有路徑都無法適用時,才會起作用。預設路徑所通過的閘道,稱為預設閘道,通常一個網路內只能有一個預設閘道。對於區域網路上的主機來說,這個閘道會設定成任何一部可以直接通往外界的機器 (不管是透過撥接上網,或者透過ADSL專線連接)。

假設163.21.236.0/25這個網路中,有一部電腦透過ADSL專線連接上Internet,它的IP是163.21.236.1。那麼站在163.21.236.71這台電腦的角度來想,要到達路由表上找不到的目的地,只能將訊息封包丟給163.21.236.1去處理,因此我們在路由表中建立一個路徑:

0.0.0.0/0.0.0.0 GATEWAY 163.21.236.1

(0.0.0.0/0.0.0.0 也就是說任何IP目的地都可適用此路徑)

這個路徑我們稱它為預設路徑,而預設路徑所用的閘道163.21.236.1我們稱它為163.21.236.0/25的預設閘道。

預設閘道的另一邊連接著網路供應商(ISP)的線路,也就是說,163.21.236.1的另一個閘道必須設成ISP(網際網路服務商)所提供IP,例如中華電信所提供的A點10.11.64.13。

路由如何傳遞

現在讓我們轉移焦點,來看看163.21.236.200這台電腦應該怎麼設定路徑。這台電腦位於163.21.236.128/25網路中,這個網路並沒有直接連接到Internet的線路,想要連出去唯有依靠163.21.236.0/25這個網路當媒人,也就是說163.21.236.200要連到外面的世界,必須通過連接兩個子網路的路由器163.21.236.254(另一邊是163.21.236.126,請參考前兩小節的描述),再進一步的推論,從163.21.236.200不管是要到163.21.236.0/25這個網路,或是要到任何一個IP,都得通過163.21.236.254這個閘道。因此很幸運的,我們只要建立一條預設路徑,就可以解決所有的問題:

0.0.0.0/0.0.0.0 GATEWAY 163.21.236.254

(任何IP都符合此規則,包括163.21.236.0/255.255.255.128在內)

根據這個路徑,我們可以說163.21.236.254就是163.21.236.0/25這個網路的預設閘道。

現在我們再次轉移焦點,來看看被視為預設閘道的路由器163.21.236.1的情形,在這個路由器上面,第一個閘道已經設定成163.21.236.1,另一個閘道則已經設定為中華電信提供的A點10.11.64.13。這個路由器有三個任務:

第一個任務是:將要到163.21.236.0/25的訊息封包送到163.21.236.0這個網路上,這個很容易辦到,因為第一個閘道163.21.236.1已經是屬於163.21.236.0這個網路,所以只要把訊息從第一個閘道丟出去就可以了,並不需要透過任何路由器轉送:

163.21.236.0/255.255.255.128 INTERFACE 163.21.236.1

(這個路徑跟以往介紹的不同,因為不需要通過任何路由器,所以不必設定GATEWAY,而是設定成自己的INTERFACE,也就是自己機器上的一個Port)

第二個任務是:將要到163.21.236.128/25的訊息封包送到163.21.236.0這個網路上,這次稍為麻煩一點,必須藉由另一台路由器的163.21.236.126閘道來幫忙轉送:

163.21.236.128/255.255.255.128 GATEWAY 163.21.236.126

第三個任務是:將要到其它任何一個IP的訊息封包送出去。由於連往外界的路徑是由中華電信負責設定,所以我們只要把封包丟給中華電信的路由器就好了,這個路由器就是下面會介紹的ATU-R(暱稱叫小烏龜的東西),小烏龜上面有一個連接校內路由器的閘道,它的IP是10.11.64.14(虛擬網路),也就是所謂的B點

0.0.0.0/0.0.0.0 GATEWAY 10.11.64.14

這些路徑建立起來網路就四通八達了!呀呼!

使用tracert排除疑難

有時候在路由傳遞的途中會出現一些問題,而使您無法連往某些主機。此時,如果您要找出網路斷線的地方,可以使用traceroute 這個有用的指令。這個指令在您無法連往某部主機(例如 ping 不到主機的時候)時,也可以派上用場。

這個工具用來追蹤封包從一部機器到另一部機器,將會經由網路走哪一條路徑。 當然系統管理師必須對網路實際連接的架構有所瞭解,才能派上用場。假如我現在想要瞭解,平常連接台大網站時,到底是經過哪些地方,我可以使用以下指令:

C:\>tracert www.ntu.edu.tw

Tracing route to w3.cc.ntu.edu.tw [140.112.8.130]
over a maximum of 30 hops:

1 1 ms <10 ms 1 ms 163.21.236.254
2 <10 ms 1 ms <10 ms 163.21.254.254
3 2 ms 1 ms 1 ms 140.111.255.17
4 3 ms 4 ms 5 ms 203.72.38.112
5 4 ms 4 ms 3 ms r7513-CC.ntu.edu.tw [140.112.254.7]
6 3 ms 3 ms 3 ms w3.cc.ntu.edu.tw [140.112.8.130]

如上圖經過的閘道共有:師院電算中心路由器、台北市教育網路中心路由器、教育部路由器 、網路交換中心、台灣大學路由器,最後到達目的地台大Web伺服器。如果出現三個星號,表示路徑選擇失敗,從失敗的位置可以找出網路故障的範圍,例如:

1 1 ms <10 ms 1 ms 163.21.236.254
2 <10 ms 1 ms <10 ms 163.21.254.254
3 * * *
4 * * *
5 * * *
6 * * *

出現這個現象時,表示網路斷訊出現在台北市教育網路中心路由器和教育部路由器之間,有三個可能性:一是台北市教育網路中心的預設路徑設錯了(筆者就是這個路由器的管理員,我不會犯這個錯誤的,請大家放心),第二是途中線路斷了(這要找中華電信處理),第三是教育部路由器當機了(這就要找教育部電算中心了)。

學校端路由器設定

目前各校已建置ADSL專線,架構如下圖

從圖上可知,校園網路要連上網際網路,必須經過三個路由器,二個虛擬網域,上圖四個網域假設為:

網域 校園網路 虛擬網域一 虛擬網域二 網際網路
網域代表IP 163.21.1.0 10.11.64.224 10.11.82.224 0.0.0.0
子網路遮罩 255.255.255.0 255.255.255.252 255.255.255.252 0.0.0.0
A點   10.11.64.225    
B點   10.11.64.226    
D點     10.11.82.226  

三個路由器的介面及IP位址應設定如下:

路由器 校內路由器 ATU-R ATM交換機
第一個通訊閘 ethernet port

eth0/0

163.21.1.254

lan port

eth0

10.11.64.226(B點)

虛擬介面

atm1/0.xxx

10.11.82.226(D點)

第二個通訊閘 ethernet port

eth0/1

10.11.64.225(A點)

wan port

wan0-0

 

虛擬介面

atm1/0.500

140.11.255.18

校內端路由器設定如下(僅供參考,因廠牌不同設定會有差異)

interface Ethernet0/0

ip  addr 163.21.1.254  255.255.255.0

interface Ethernet0/1

ip  addr  10.11.64.225  255.255.255.252

ip  route  163.21.1.0 255.255.255.0 eth0/0

 ( or set route add ip 163.21.1.1 255.255.255.1  gw 163.21.1.254 )

ip  route  0.0.0.0  0.0.0.0  10.11.64.226

 

學校端路由器遇到防火牆時

校園網路使用虛擬IP時,網路架構變成下圖:

你可以將此圖看成是上圖的部分放大圖,右邊部分與上圖相同,所以省略不談。

在這個新的架構中,校園網路的真實IP(NIC IP)變成是一個夾在假IP與虛擬網域一(見上圖)的網域,在這個網域中有兩個Gateway,一個是校內路由器,一個是防火牆,防火牆的介面及IP位址應設定如下:

路由器 防火牆 校內路由器
第一個通訊閘 網路卡一

163.21.1.253

ethernet port

eth0/0

163.21.1.254

第二個通訊閘 網路卡二

192.100.1.254

ethernet port

eth0/1

10.11.64.225(A點)

防火牆上之Routing Table可以用指令 Route Print 或 Netstat -rn 來觀察,正確的設定值應該是(只談網域Routing部分):

Network Address Netmask Gateway Address  Interface
0.0.0.0 0.0.0.0 163.21.1.254
(在Router上)
163.21.1.253
163.21.1.0 255.255.255.0 163.21.1.253 163.21.1.253
192.100.1.0 255.255.255.0 192.100.1.254 192.100.1.254

由於學校端將NIC IP拿來作NAT(IP轉換),因此必須進一步將NIC IP分割成兩個子網路,後面半組Class C拿來用在上圖的NIC IP子網路,前半組Class C必須導向到防火牆上面,由防火牆拿來作NAT用途,校內端路由器修改設定如下(僅供參考,因廠牌不同設定會有差異)

interface Ethernet0/0

ip  addr 163.21.1.254  255.255.255.128

interface Ethernet0/1

ip  addr  10.11.64.225  255.255.255.252

ip  route  163.21.1.0 255.255.255.128  163.21.1.253

ip  route  163.21.1.128 255.255.255.128  Ethernet0/0

ip  route  0.0.0.0  0.0.0.0  10.11.64.226

 

ATU-R路由設定

ATU-R有人說是ADSL數據機,但是它的功能並非僅止於此,它也具有路由功能本身就是一個路由器

set int eth0 addr 10.11.64.226

set int eth0 netmask 255.255.255.252

set int wan0-0 dest 10.11.82.226

set int wan0-0 netmask 255.255.255.252

set route add ip 163.21.1.0 255.255.255.0 gw 10.11.64.225

set route default wan0-0

(pvc值之設定省略)

 

如何把ATU-R當校內路由器使用?

如果學校沒有錢買校內路由器,也可以直接將ATU-R接在HUB上,將ATU-R充當校內路由器來使用,此種狀態下網路架構將變成下圖

從上圖可以看出少了一個虛擬網域一,因此也就沒有A點和B點,原設定在ATU-R上之B點,改設為校內路由器之真實IP

set int eth0 addr 163.21.1.254

set int eth0 netmask 255.255.255.0

set int wan0-0 dest 10.11.82.226

set int wan0-0 netmask 255.255.255.252

set route add ip 163.21.1.1 255.255.255.1 gw 163.21.1.254

set route default wan0-0

(pvc值之設定省略)

 

ATM路由設定

int ATM1/0.xxx point-to-point

ip addr 10.11.82.226 255.255.255.252

ip route 10.11.64.224 255.255.255.252 ATM1/0.xxx

ip route 163.21.1.0 255.255.255.0 ATM1/0.xxx

(pvc值之設定省略)

(對教育部連線之設定,因與學校端設定無關,省略)