计网-静态路由实验解析

网络架构拓扑结构

实验拓扑结构

根据实验手册的规定,拓扑结构如上图:

整个拓扑结构被划分为3个网段:10,11,12。其中10段为路由器之间的段,11段为Router1与PCA之间的段,12段为Router2与PCB之间的段。路由器为多端设备,因此每个端口都有一个IP地址;PC为单端设备,只有一个IP地址

根据实验的设置,整个结构包含三个网,网络地址分别为:

  • 10.0.0.0
  • 11.0.0.0
  • 12.0.0.0

三个地址对应三个网的划分。主机PCA想要到达PCB,途中必须经过两个路由器,vice versa。

路由器命令解释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sys				# 进入系统设置模式
sysname RT1 # 设置系统名字为RT1
int e 0/0 # 进入以太网0号端口进行设置
ip addr 10.0.0.1 24 # 设置该端口(0号)IP地址为10.0.0.1,子网掩码包含24位
(e 0/1 类似)

display ip routing-table # 显示,IP协议的设置,路由表

# 设置静态路由,三个参数分别为:目标地址,子网掩码,下一跳地址
ip route-static <destinaton> <subnet mask> <nexthop>
ip route-static 10.0.0.0 255.255.255.0 10.0.0.2
# 去往10.0.0.0网路,子网掩码为3个255,需要的下一个路由为10.0.0.2

undo ... # 撤销某条命令

路由表状态解释

1
2
3
4
5
Destination/Mask	Protocol	Pre	Cost	Nexthop			Interface
(目标地址) 协议 下一跳 网络接口
需要前去的目标主机 路由协议 这两个不知道 前往该主机, 对应的网口(或者回环)
需要向哪个 回环就是自己
端口发送数据

例如:

1
2
3
10.0.0.0/24			Direct	0	0	10.0.0.2	Ethernet0/0

前往10.0.0.0这个网,需要向10.0.0.2发送数据。这个路由是接口直接连接得来的,所以协议为Direct(直接)

![未命名文件 (3).png][1]

因此,在这个拓扑内:

PCA ping Router1是可以ping通的,在设置了PCA的IP地址后;Router1 对 Router2是可以ping通的,其他直连路亦然。因为他们直接连起来了。

然鹅,PCA是不可以ping通PCB的,Router2也不可以ping通PCA的。R1同样ping不通PCB的。Why?这里就要解释一下ping的原理和路由的原理。

路由

路由,route,意思是,路径,即从某点a到某点b的一条道路。路由包含了目标地址,下一跳地址。也就是说,以上面的为例子,去往10.0.0.0这个网,路由器需要发往10.0.0.2这个地址。也就是说,然鹅,在没有设置路由的情况下,PCB想要到PCA,它把包发给Router2,(因为只有一个口可以发出去),然鹅router2不知道该发给谁,它就把包丢掉了。所以设置之前,PCA和PCB是不互联的。

在后续的实验步骤中,包含了设置路由的操作,目的就是告诉路由器,前往11,或者12这两个网段,需要把包发给谁。例如,在Router1设置:

1
ip route-static 12.0.0.0 255.255.255.0 10.0.0.2

就是告诉路由器,若11段要前往12段,需要把数据包发给10.0.0.2这个口。子网掩码是为了确认两个网是平行的,不属于谁的子网。

设置完这个选项后,当PCA发送包出去,发送给路由器时,路由器就会发送给10.0.0.2这个口。于是Router2就会把数据包根据目标地址,发出去了。于是乎PCA就可以到达PCB。

在Router2的设置是类似的,为了让12段可以到达11段。

然鹅,只设置一边是不可以ping通的。Why?这里解释一下ping的原理。

ping program

ping常用来检测路径的连通情况。需要双向可达,这样才可以ping通。这是因为ping利用的ICMP协议,ping的主机发送请求,被ping的主机收到请求后回复。至于ICMP是什么,超出了我们要讨论的范围。我们知道这是一种IP层协议,以及ping的过程需要主机向目标发送请求,目标返回一个信号。

ping的工作过程如下:

ping程序以目标IP为地址,发送一个ICMP包(echo request)。ICMP通过一定的路径,到达了目标。目标收到后,立刻返回一个信号(echo reply)。ping主机收到信号后,就确定,在两台主机之间,存在一条通路,可以从一端到达另一端。如果这个包在中途被丢掉了,不管是在哪儿丢的,最后ping的主机都无法收到回复,超出了一定的时间无法收到回复后,发送端便认为,目标不可达

ping的过程就是如此。若不存在一条路由,使得两端双向可达,哪怕存在链路,也是不可以ping通的。这就解释了为什么设置一端ping不通。假设ping的数据包从A主机发出,在Router1的指引下去到了Router2,然后Router2分发给了B。B立刻对A的地址进行回复,然鹅到了Router2后,Router2不知道发给谁,就把这个包视为非法包(invalid),对其丢弃。因此B的回复永远到不了A,A就会超时,自然会不通了。

设置过程

  1. 设置路由器端口IP、主机IP(略)

  2. 查看路由表(略)

  3. 第十步:添加静态路由。这里就是把路由器添加一条静态路由,目标网络为12.0.0.0,下一跳地址为10.0.0.2。回到上图,就是Router2的en0/0。因为对于路由器1,想要到达12网,就必须从10.0.0.2这个口进去。然后发生了什么,路由器1就不需要知道了。这样,一切从11段发出去的,以及路由器1发出去的,都会被发往10.0.0.2。

  4. 从PCA ping Router2的10.0.0.2以及ping PCB

    这里,结论是,ping 10.0.0.2不可以通,PCB也通不了。原因是,Router2和Router1直接相连,因此Router1知道去往10段需要发给Router1的10.0.0.2口。因此,ping 10.0.0.2时,数据包从A主机跳到Router1,Router1查表,发现目标是router2的一个口,而且是直连的,就发出去了。router2的10.0.0.2收到后,立刻响应,然而路由2没有一条通往11段的记录,就无法把包回给11网段,因此被丢弃。ping B主机的原理类似,包到达Router1,Router1发给Router2,Router2分发给PCB,PCB回复,但Router2不知道发给谁,丢弃,A主机就永远收不到回复了。GG!

  5. 在Router2添加一条到11段的路由

    Router2添加完这条路由,跟上文阐述的类似,它就知道了去往11段是要发给10.0.0.1了。所以,从A主机ping B,或者Router2,当B主机或者Router2回复的时候,回复的数据包到了Router2,就被发往10.0.0.1。然后Router1收到,分发给自己或者A主机。收到请求,ping成功

  6. 删除RT1添加的路由,添加默认路由

    默认路由的意思是,当路由器找不到目标主机相应的下一跳,就会发给这个地址。例如,A发往B,经过路由器1,路由器1不知道发给谁,就发给默认的那个口。至于结果,路由器不管。

    在这里,我们添加的路由是:

    1
    0.0.0.0  0.0.0.0  10.0.0.2

全0,代表任意IP地址,意思是,当找不到一条特殊约定的路由,就使用它。而由于默认路由的规定,发给了10.0.0.2。也就是说,找不到该发给谁,统统发给这个地址,10.0.0.2。

这样,第三次ping是可以ping通的。A发给了Router1,Router1找不到目标,发给了10.0.0.2,然鹅10.0.0.2就是我们要的目标,所以B可以收到,也可以回复。回复的数据包由于先前的设置,也会发回去。于是,ping成功。

一些其他的设置:

  1. 交换机与主机、路由器之间用直连线,路由器、主机之间用交叉线。交叉线就是两头线序不一样的线,比如棕色的那条,一个在一边,一个在另一边
  2. 设置交换机IP,也需要手动设置主机IP
  3. 从超级终端ping,是利用路由器ping出去。从cmd ping,才是从主机ping出去
  4. 交叉线不够,可以把直连线插交换机,交换机再接路由器,然后再从路由器连交换机,然后连路由器。(具体看操作吧,说不清楚了——)

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×