一、静态路由原理
路由:负责路由器控制层面的工作,决定数据包从来源端到目的端所经过的路由路径(源主机到目标主机之间的最佳传输路径)
路由器上的每个接口是一个广播域;交换机上的每个接口是一个冲突域;
路由表:路由器中维护的路由条目的集合,路由器根据路由表做出路径选择
路由表的形成:直连网段和非直连网段(直接相连和间接相连)
非直连:静态路由和动态路由
静态路由由管理员手工配置,特点是单向的且缺乏灵活性(适合小范围)
默认路由:路由表找不到目标网络的路由条目时,将请求转发到默认路由接口(通向其他网段有且仅有一条路径)
优先级:当路由表中同时存在静态路由和默认路由的时候,静态路由的优先级最高,匹配上了立刻进行转发,如果没有匹配上静态路由,则按照默认路由进行转发。
二、路由器转发数据包的封装过程(三层转发原理)
特点:IP不变,MAC始终在变;路由器是隔离广播的
下面结合图例详细说明这个过程:
首先,我们的环境是所有设备都是初始状态,即对外界几乎一无所知,现在要实现主机 A和主机 B之间通信
(1)主机A想要与主机B通信,但是目前只知道主机B的IP地址,所以要先经过网关,而此时主机A并不知道路由器A的MAC地址,所以发送ARP广播请求从而获取路由器A的MAC地址,此时四要素:
源IP地址:192.168.1.2/24
源MAC地址: 00-11-12-21-11-11
目的IP地址:192.168.1.1/24
目标MAC地址:FF-FF-FF-FF
(2)由于是ARP广播,所以路由器A的E0端口接收到这个广播,查看数据帧发现是自己的IP地址,由路由器A的E0端口给出回应,主机A收到回应进行ARP缓存,此时由主机A发送一个ping的数据包,此时四要素(主要内容是):
源IP地址:192.168.1.2/24
源MAC地址: 00-11-12-21-11-11
目的IP地址:192.168.2.2/24
目标MAC地址:00-11-12-21-22-22
(3)路由器A的E0接口发现目标MAC地址是自己,然后拆开数据包(解开MAC头部),发现IP地址是主机B的IP地址,此时路由器A会打开路由表查询是否有该条目信息,匹配目标网段,找到路径是E1方向,此时需要重新封装MAC头部信息,但是现在无法封装,因为没有目标的MAC地址,只能将该ping包丢弃,此时路由器A的E1端口发起一个ARP广播,此时四要素是:
源IP地址:10.1.1.1/8
源MAC地址:00-11-12-21-33-33
目的IP地址:10.1.1.2/8
目标MAC地址:FF-FF-FF-FF
(4)此时路由器B的E1端口接收到此广播,发现是目标IP是自己,将给出回应,于是将(路由器B的E1端口)自己的MAC地址(00-11-12-21-44-44)告诉路由器A的E1端口,那么路由器A的E1端口缓存路由器B的E1接口的MAC地址,此时主机A的ping包可以到达路由器B的E1端口,路由器B发现找的是自己,此时开始拆包,查询路由表,找到要经过路由器B的E0端口将数据封装后发送出去,但是此时不知道目标(主机B)的MAC地址,将该ping 包丢弃,那么此时路由器B的E0端口将发起一个ARP广播,从而获取主机B的MAC地址,此时四要素是:
源IP地址:192.168.2.1/24
源MAC地址:00-11-12-21-55-55
目的IP地址:192.168.2.2/24
目标MAC地址:FF-FF-FF-FF
(5)此时主机B收到该广播,拆包发现目标IP是自己的,将对路由器B的E0接口给出回应,告诉它自己的MAC的地址,此时路由器B的E0接口缓存该回应的信息,此时主机A的ping包数据再次过来,此时四要素:
源IP地址:192.168.2.1/24
源MAC地址:00-11-12-21-55-55
目的IP地址:192.168.2.2/24
目标MAC地址:00-11-12-21-66-66
此后主机A和主机B就可以正常互相通信,从而不再需要进行ARP的广播过程。注意上述过程中的斜体部分,是否验证了前面所说的“IP不变,MAC始终在变”的转发特点。
三、静态路由的配置实验操作
结合上述的原理过程,通过一个简单的实验验证这一过程。
首先介绍一下环境和拓扑结构
我们需要在GNS3软件(我的版本是1.3.10)中搭建这个拓扑结构,结构图如下所示(其中的IP地址的设置可以自己设置,但要注意网段区分):
路由器设备为Cisco产品,镜像为c3725 ,R1和R2是两台路由器,PC1和PC2是PC机。Cisco设备的相关模式有以下四个:
用户模式(>)、特权模式(#)、全局模式(config#)和接口模式(config-if)括号中代表其进入模式的特征,在下面的操作过程中会给出解释
(1)首先自己添加好IP地址,打开设备连接,如下图所示,添加标注就是表明IP地址,以防自己后面遗忘混乱配置
(2)打开后红色的点标转为绿色,表示连通,随后开始进行初始化操作,对各个设备进行IP地址的配置,此时双击点设备开图标,将打开SecureCRT会话窗口(如何将GNS3结合SecureCRT请参照文章末尾的相关补充,已经实现的可以忽略),此时以PC1 为例,打开后的状态如下图所示:
(3)然后根据你起先设置的IP地址输入配置PC1的IP地址等相关信息,操作结果如下图所示:
此时PC1已经初始化,不要关闭该会话窗口,然后对PC2进行类似操作
(4)在上述PC1和PC2的初始化完成后,切记不要关闭会话窗口,然后开始初始化路由器,以R1为例,依旧是双击设备进行配置操作,默认会进入特权模式,下面是初始状态:
(5)根据下图操作进行路由器A的初始化过程:
此时已经对路由器A进行了初始化设置,可以使用do show int ip brief 查看相关信息,然后需要对路由器B进行初始化设置的配置。
(6)根据上述步骤完成了设备的初始化操作,随后我们需要对路由器进行静态路由的手动配置,具体操作如下同所示:
在R1上的配置操作是:
格式为:ip route 目标网络号 子网掩码 到目标网络经过的下一跳路由器的接口地址
在R2上的配置操作是(操作诸如R1的,但是一定要注意参数):
(7)根据第(6)步的操作完成了该简单拓扑结构中路由器静态路由的配置,此时回到PC1的会话窗口,输入ping命令,如下图所示:
此时发现有timeout发生,这恰好验证了上述三层转发过程中丢包的情况,当然这个丢包的次数不需要过于在意,然后在PC2上ping PC1的IP地址(我是过了一段时间才操作的),结果如下图所示:
如果此时立刻再返回PC1上继续ping PC2,结果是:
此时发现不会有超时现象,因为已经建立了通信,不在丢包了。
四、相关补充
如何将GNS3结合SecureCRT?
1.在GNS3软件界面中选择Edit中的Preferences...打开窗口设置
2.然后进行下图序号顺序的操作,一定要注意Set下面的路径是否准确!!!
3.最后说一下SecureCRT的背景和字体设置
(1)一次有效如图所示(只限当前窗口,关闭后下次打开就无效了)
(2)永久设置(设置完后需要关闭窗口再次打开才生效)