# 路由

### 一、基础概念

1. #### 路由(Routing)

   在计算机网络中,路由是指分组从源到目的地的转发过程。这个过程涉及到决定数据包应该通过哪一个路径在网络中的多个节点之间传输,以到达最终目的地。路由器(Router)是执行这种功能的网络设备,它会根据路由表中的信息来决定如何转发数据包。

   > 简单表述:数据从一个网络到另外一个网络之间转发数据包的过程称为路由

2. #### 路由器(Router)

   路由器是一种网络设备,用于连接多个逻辑上分开的网络,并在这些网络之间转发数据包。

   > 简单表述:连接不同网络,实现不同网段之间的通信

   - 功能:
     1. 数据包转发:路由器根据数据包的目的地址,决定将其发送到哪个网络或下一跳路由器。
     2. 路由选择:路由器通过运行路由协议(如RIP、OSPF、BGP等)和维护路由表来决定最佳路径。
     3. 网络层连接:路由器工作在网络层(OSI模型的第三层),可以连接不同类型的网络,如局域网(LAN)、广域网(WAN)和互联网。
     4. 网络地址转换(NAT):许多路由器具有NAT功能,允许私有网络中的设备使用单个或少数几个公共IP地址访问互联网。
     5. 安全功能:路由器可以提供防火墙、数据加密、访问控制列表(ACL)等安全功能。
   - 特点:
     1. 多个网络接口:路由器通常具有多个网络接口,每个接口连接不同的网络。
     2. 智能决策:路由器可以根据预定的路由协议和策略,智能地选择数据包的传输路径。
     3. 可管理性:路由器通常具有管理接口,允许网络管理员配置和监控设备。
     4. 可扩展性:在大型网络中,可以通过增加更多接口或使用更高级的路由器来扩展网络。
   - 类型:
     1. 家庭/小型办公路由器:适用于小型网络,通常提供基本的上网功能和一些安全特性。
     2. 企业级路由器:适用于大型企业网络,提供高速、高可靠性和高级管理功能。
     3. 核心路由器:用于互联网服务提供商(ISP)和大型网络的核心,处理大量数据。
     4. 无线路由器:提供无线接入点(Wi-Fi)功能,允许无线设备连接到网络

3. #### 路由表(Routing Table)

   路由表是网络设备(如路由器或交换机)中的一个数据表,它用于存储网络中各个目标地址(通常是IP地址)与下一跳地址之间的映射关系,以及到达这些目标地址应该使用的网络接口。路由表是路由器进行数据包转发决策的基础。

   > 简单表述:路由器选择数据传输路径的依据

   - 路由表条目(Route Entry):
     - 目标网络地址:数据包要到达的网络地址。
     - 子网掩码:用于确定目标地址中的网络部分和主机部分。
     - 下一跳地址:数据包应该被转发到的下一网络设备的地址。
     - 出口接口:数据包应该从哪个接口发出。
     - 路由优先级:当存在多条到达同一目标的路由时,用于确定哪条路由优先。
     - 度量值(Metric):用于衡量路由的好坏,通常是基于跳数、带宽、延迟等因素。
   - 路由表的工作原理:
     1. 查找:当路由器接收到一个数据包时,它会查看数据包的目的IP地址,并在路由表中查找与之匹配的条目。
     2. 匹配:路由器会根据最长前缀匹配规则来确定最佳匹配的路由条目。也就是说,它会选择子网掩码最长匹配的路由。
     3. 转发:一旦找到匹配的路由条目,路由器就会根据该条目中的下一跳地址或出口接口将数据包转发出去。
   - 路由表的类型:
     - 静态路由表:由网络管理员手动配置的路由信息。
     - 动态路由表:通过运行路由协议(如RIP、OSPF、BGP等)自动获取和更新的路由信息。
   - 路由表的管理:
     - 添加路由:管理员可以手动添加路由条目到路由表。
     - 删除路由:管理员可以删除不再需要的路由条目。
     - 修改路由:管理员可以修改现有路由条目的属性,如下一跳地址或度量值。

4. #### 路由器的工作原理

   1. 接收数据包

      > 当路由器从其某个接口接收到一个数据包时,它会首先检查数据包的完整性,然后开始处理这个数据包。
   2. 解析数据包头部

      > 路由器会读取数据包的网络层头部,通常是IP头部。这里包含了源IP地址、目的IP地址、协议类型(如TCP、UDP、ICMP等)以及其他控制信息。
   3. 查找路由表

      > 路由器会使用数据包的目的IP地址在路由表中查找匹配的路由条目。路由表包含了一系列规则,告诉路由器如何转发数据包。
   4. 路由决策

      > 路由器根据以下步骤进行路由决策:
      >
      > - 最长前缀匹配:路由器会比较路由表中所有条目的子网掩码,选择与目的IP地址最匹配的条目(即前缀最长的条目)。
      > - 度量值(Metric):如果有多个匹配的路由,路由器会选择度量值最小的路由。度量值通常基于跳数、带宽、延迟、成本等因素。
      > - 路由策略:在某些情况下,管理员会设置路由策略来影响路由选择,比如安全策略或负载均衡。
   5. 转发数据包

      > 一旦确定了下一跳地址和出口接口,路由器就会将数据包转发到下一跳。这个过程可能涉及以下步骤:
      >
      > - 更新数据包的TTL(Time to Live):IP头部中的TTL字段表示数据包在网络中可以经过的最大路由器数。每经过一个路由器,TTL值减1。如果TTL降到0,路由器将丢弃该数据包。
      > - 重新计算校验和:由于TTL的变化,IP头部的校验和需要重新计算。
      > - 发送数据包:数据包被发送到下一跳路由器或最终目的地。
   6. 数据包处理

      > 在整个转发过程中,路由器还可能执行其他操作,如网络地址转换(NAT)、数据包过滤、QoS(Quality of Service)处理等。
   7. 维护和更新路由表

      > 路由器会通过运行路由协议(如RIP、OSPF、BGP等)来动态地学习和更新路由表,以反映网络拓扑的变化。

### 二、路由配置

1. #### 连通两个不同网段(直连路由)

   - 建立两个不同网段192.168.1.0/24与192.168.2.0/24,设置PC端网关,IP、子网掩码、网关(与路由端口对应的IP地址一致),各自网段可互相Ping通

   - 路由端口设置IP(网关)

     ![image-20240805105527297](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20240805105527297.png)
     
     ```
     <Huawei>display ip routing-table
     
     [Huawei]interface GigabitEthernet 0/0/0
     [Huawei-GigabitEthernet0/0/0]ip address 192.168.1.254 24	##  0/0/0端口与192.168.1.0网段对应
     <Huawei>display ip routing-table
     
     [Huawei]interface GigabitEthernet 0/0/1
     [Huawei-GigabitEthernet0/0/1]ip address 192.168.2.254 24	##  0/0/1端口与192.168.2.0网段对应
     <Huawei>display ip routing-table
     ```
     
   - 查看路由表

     ```
     <Huawei>display ip  routing-table 
     ```

2. #### 路由类型

   1. 直连路由:配置路由器接口IP并为UP状态自动生成直连路由
   2. 非直连路由:
      - 静态路由:由网络管理员手动配置的路由信息。
      - 动态路由:通过运行路由协议(如RIP、OSPF、BGP等)自动获取和更新的路由信息。

3. #### 交换机远程路由器

   - 路由器配置

     ```
     <R1>sy
     [R1]user-interface vty 0 4
     [R1-ui-vty0-4]authentication-mode password 
     > Please configure the login password (maximum length 16):123
     [R1-ui-vty0-4]user privilege level 3
     ```

   - 交换机配置

     ```
     <SW1>u t m
     [SW1]interface Vlanif 1
     [SW1-Vlanif1]ip address 192.168.1.100 24
     <SW1>telnet 192.168.1.254
     ```