![[ 永远的UNIX::UNIX技术资料的宝库 ]](/images/title.gif)
|
| 首页 > 网络管理 > 局域网技术 > 正文 |
 |
| 路由基本认识及设定 |
| http://www.fanqiang.com (2001-05-02 02:57:40) |
--------------------------------------------------------------------------------
作者:李忠宪 mailto:shane@mail1.tmtc.edu.tw
--------------------------------------------------------------------------------
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就会越少。
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值之设定省略)
(对教育部连线之设定,因与学校端设定无关,省略)
(http://www.fanqiang.com)
进入【UNIX论坛】
|
|
| 相关文章 |
|
|
|
|
 |
★ 樊强制作 欢迎分享 ★ |