路由器01_工作原理

一、回顾交换机工作原理

交换机里面维护了一张MAC地址表,主要记录的是MAC地址和接口的对应关系。

交换机在初始状态下,MAC地址表是空的,当收到一个来自某接口的数据时,首先查看数据帧中的MAC地址表,对照自己的MAC地址表,如果不在表中,将发送方的MAC地址学习并记录到自己的MAC地址表中,并附上对应的接口(Fa0/1),再查看目的MAC地址,如果目标MAC地址也不在MAC地址表中,将数据从除接收接口(Fa0/1)外的其他所有连接接口转发出去(广播方式),此时,目的主机接收到,其他主机也会接收到 ,其他主机接收到后直接丢弃,目的主机接收到后进行回应,回应的过程中数据同样会交由交换机进行转发,目的主机这时候就变成了回应的发送主机,当交换机接收到来自目的主机的回应报文的时候(Fa0/10),同样查看发送方的MAC地址,进行学习记录,并附带对应接口(Fa0/10),再去查看目的MAC,由于已经有记录了,所以直接从记录的接口(Fa0/1)进行转发。

路由器01_工作原理_第1张图片

总结:交换机学习源MAC、广播数据帧、接收方回应后,回应使用单播直接进行转发。

二、回顾路由器相关知识

  • 网络层的功能:

路由器是属于三层(网络层)设备,进行逻辑地址(IP地址)寻址,实现不同网络之间的路径选择。

a、不同网络指网络地址不等或者内网和外网的分隔;     

b、内网的IP地址是无法在外网进行路由的;

去查找目的是否可以到达,如果可以到达,选择一条最优的路径,如果不能到达,直接返回给发送方一个消息。

网络层所传输的PDU(传输数据单元)是数据包(IP数据包)。

三、网络层IP数据包的格式

1、IPV4的数据包格式

字段 长度 含义
版本 4bit 标识当前使用的IP版本号(IPV4或IPV6)
首部长度 4bit IP数据报文首部有一个可选字段,造成首部是可变的,所以需要一个字段去标识首部有多长。
区分服务/服务质量/优先级和服务类型 8bit

为了保证更好的服务,主要是在IP层做qos;

只有在使用区分服务时,这个字段才起作用。

总长度 16bit 主要用来标识整个数据包(首部和数据)的总长度
标识 16bit IPv4在存储器中维持了一个计数器,每差生一个数据报,计数器就加1,并将此值赋给标识字段。
标志 3bit 目前只有两位有意义,最低位为1标识后面还有分片数据报,为0表示已经是最后一个数据片;中间一位为1表示“不能分片”,为0才允许分片。
片位移 13bit 指出较长的分组在分片后,该片在原分组中的相对位置。
生存时间(TTL值) 8bit 数据包在路由器转发消耗时间如果小于1秒,TTL值就会减1.
协议 8bit 标识上层数据是使用何种协议(TCP是6,UDP是17)
首部校验和 16bit 校验数据报文的首部。数据报每经过一个设备,设备都要重新计算一下首部校验和,若首部未发生变化,则此结果必为0,于是保留这个数据报。该字段只检验数据报的首部,不包括数据部分。
源地址 32bit 发送方的IP地址
目的地址 32bit 接收方的IP地址
选项字段(长度可变) 0~40字节 用来支持排错、测量以及安全等措施,在必要时插入值为0的填充字节。
数据部分 可变 用来填充报文
路由器01_工作原理_第2张图片 IPV4数据报

2、IPV6的数据包格式

IPV6没有标识、标志、片偏移,它是放在了流标签里面

路由器01_工作原理_第3张图片 IPV6数据报字段

四、路由器的工作原理

1、路由

  • 从源主机到目标主机的转发过程(跨网络访问)
  • 包含两个内容:
    • 确定最佳路径(手动指定、根据动态路由协商方式)
    • 通过网络传输信息

2、路由器的工作原理

路由器里面维护了一张路由表,路由表中会有对应关系。

(1)直连路由  

R1       192.168.10.0   F0/0         192.168.50.0   F0/1
R2      192.168.100.0   F0/0        192.168.50.0   F0/1

当 192.168.10.1要和 192.168.100.1进行通信,发现目的IP和自己不在一个网络中,它会把数据交给自己直连的网关,R1会解封到第三层查看目的的IP地址是 192.168.100.1发现它的网络是 192.168.100.X网络,然后再去查看自己的路由表,发现 192.168.100.0网络不在自己的路由表中,它会反馈给PC1目标不可达。

此时我们想要它能够访问就需要在路由表中添加一条路由条目。

R1          192.168.100.0 F0/1

然后PC1发送数据过来,R1先解封装到第三层,查看目标IP地址所在网络,然后查看目的IP所在网络是否在自己的路由表中,如果在自己的路由表中,重新进行封装,找到对应接口转发出去。

转发到R2之后,R2同样会解封到第三层,看到源IP是192.168.10.1,目的IP是192.168.100.1,查看自己的路由表,目的IP所在网络在自己的路由表中,重新封装,然后找到对应接口进行转发。

PC2接收到数据库会进行回应,PC2作为发送方发送数据,过程同上。

路由器01_工作原理_第4张图片

(2)工作原理

接收数据包

查看目的IP地址

看目的IP地址所处IP地址在不在自己的路由表中

如果在,重新封装数据,然后在路由表中找到对应接口转发出去

如果不在,返回给发送方,目标不可达

路由器01_工作原理_第5张图片

(3)路由表

直连路由:当路由器的接口配置好对应的Ip地址并开启接口后自动生成

非直连路由:需要手动配置静态路由或者使用动态路由协议学习到

3、静态路由

  • 由管理员手动配置,不灵活,而且是单向的
  • 特殊的静态路由:默认路由,路由器中找不到 目标网络的路由条目时,再去查看默认路由
    • 使用场景:一般应用于末节(末梢)网络(网络的最末端)(路由器的一端只连接一个网络)

4、动态路由

  • 通过某种动态路由协议自动去建立路由表
  • 常见的动态路由协议:RIP OSPF IS-IS BGP IGRP EIGRP 

五、路由器转发数据包的封装过程

1、案例说明GNS3

GNS3通过

路由器01_工作原理_第6张图片

路由器01_工作原理_第7张图片 

路由器01_工作原理_第8张图片 路由器01_工作原理_第9张图片

路由器01_工作原理_第10张图片路由器01_工作原理_第11张图片

 路由器01_工作原理_第12张图片

  • 先通过no ip routing 把两台主机的路由功能关闭

     
    PC2#conf t                #进入全局模式
    Enter configuration commands, one per line.  End with CNTL/Z.
    PC2(config)#no ip routing    #关闭c3640的路由模式
    PC2(config)#
  • 全局配置模式下配置PC1的IP、子网掩码和网关(PC2设置方法如是)
    路由器01_工作原理_第13张图片
    PC1#conf  t
    Enter configuration commands, one per line.  End with CNTL/Z.
    PC1(config)#int f0/0
    PC1(config-if)#ip add 192.168.10.1 255.255.255.0        #设置PC的IP地址和子网掩码
    PC1(config-if)#no shut
    PC1(config-if)#exit
    PC1(config)#
    *Mar  1 00:06:28.811: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
    *Mar  1 00:06:29.811: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
    PC1(config)#ip def
    PC1(config)#ip default-ga
    PC1(config)#ip default-gateway 192.168.10.254            #设置PC的默认网关
    PC1(config)#
    
  •  配置路由器
    路由器R1的两个端口的IP地址、子网掩码并开启路由功能。
     
    R1#conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    R1(config)#int f0/0
    R1(config-if)#ip add 192.168.10.254 255.255.255.0
    R1(config-if)#no shut
    R1(config-if)#exit
    *Mar  1 00:30:33.163: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
    *Mar  1 00:30:34.163: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
    R1(config-if)#int f1/0
    R1(config-if)#ip add 192.168.50.1 255.255.255.0
    R1(config-if)#no shut
    R1(config-if)#
    *Mar  1 00:31:10.939: %LINK-3-UPDOWN: Interface FastEthernet1/0, changed state to up
    *Mar  1 00:31:11.939: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0, changed state to up
    R1(config-if)#
    

    路由器R2的两个端口的IP地址、子网掩码并开启路由功能

    R2#conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    R2(config)#int f0/0
    R2(config-if)#ip add 192.168.100.254 255.255.255.0
    R2(config-if)#no shut
    R2(config-if)#exit
    R2(config)#
    *Mar  1 00:35:55.247: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
    *Mar  1 00:35:56.247: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
    R2(config)#int f1/0
    R2(config-if)#ip add 192.168.50.2 255.255.255.0
    R2(config-if)#no shut
    R2(config-if)#exit
    R2(config)#
    *Mar  1 00:36:25.243: %LINK-3-UPDOWN: Interface FastEthernet1/0, changed state to up
    *Mar  1 00:36:26.247: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0, changed state to up
    R2(config)#
    

2、 添加路由

  • 全局模式添加静态路由

(1)第一种方式:指定出口路由器接口

R1#
R1#conf  t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#ip route 192.168.100.0 255.255.255.0 fast
R1(config)#ip route 192.168.100.0 255.255.255.0 fastEthernet 1/0
R1(config)#

 (2)第二种方式,指定下一个路由器接口的IP地址

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#ip route 192.168.100.0 255.255.255.0 192.168.50.2
R1(config)#

 在R2上配置PC1网段的路由

R2#
R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#ip route 192.168.10.0 255.255.255.0 192.168.50.1
R2(config)#
  • 查看路由表命令(show ip route)

路由器01_工作原理_第14张图片路由器01_工作原理_第15张图片 

(3)ping连通性测试 

PC1连接 PC2设备中默认发送五个数据包
当出现!代表连通,当出现...代表不通。

因为前面配置了路由,会去查找路由,查找路由有个过程,所以前面3个数据包不通

3、路由器转发数据包的封装过程

查看接口的信息并查看PC1的MAC地址
路由器01_工作原理_第16张图片路由器01_工作原理_第17张图片

 同样去查看R1路由器、R2路由器以及PC2接口的MAC地址

路由器01_工作原理_第18张图片

PC1访问PC2

第一个报文:源IP:PC1的IP 源MAC是PC1的MAC 目的IP:PC2的IP 目的MAC、是路由器R1的MAC

当R1收到数据报文后,会解封到网络层,查看目的是否可到,如果可以到转发到对应接口,重新进行二层封装,源MAC变成R1路由器的 F1/0接口MAC 目的MAC变成R2 的F1/0接口MAC。

当R2收到数据报文后,会将数据交给对应接口,重新进行二层封装,源MAC变成R2路由器的 F0/0接口MAC, 目的MAC是PC2的MAC。

总结:路由器在转发数据包的封装过程:源IP和目的IP始终是没有发生变化的,源MAC地址和目的MAC是一直在变换的,因为路由器会重新进行二层封装。

  • 同网段传输主要是二层转发(不需要进行重新封装)
  • 跨网段传输是三层转发(需要重新进行二层封装)

六、抓包分析

ping是ICMP协议,所以直接看ICMP报文

(1)PC1到R1的报文

路由器01_工作原理_第19张图片

(2)R1到R2的报文

从Sequence Number可以看出它们是同一条报文

路由器01_工作原理_第20张图片

(3)R2到PC2的报文 

路由器01_工作原理_第21张图片

你可能感兴趣的:(安全与运维,智能路由器,网络)