路由器的定义
路由器(Route)是 TCP/IP 网络上的一种网络互连设备。用于在不同的网段间扮演网关的角色,提供数据包的转发和传输路径的选择。
路由器的基本功能
A、连接多个独立的网络或子网
B、实现网间最佳寻径和数据包传送
C、数据流量控制、负载分流等
路由分类
大体上路由分直连路由、静态路由、动态路由、策略路由
直连路由:直连路由就是自己接口上的路由
静态路由:指由用户或网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息
动态路由:是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整,动态路由分为RIP、OSPF、ISIS、BGP。
策略路由:是一种比基于条件进行路由更加灵活的数据包路由转发机制,条件可以是源IP、目标IP、协议、应用等。
深信服产品支持静态路由、策略路由,部分产品支持OSPF动态路由协议
路由表
指的是路由器或者其他互联网网络设备上存储的表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。
Window路由表截图

Cisco路由表截图

Sangfor路由表截图

单臂路由
单臂路由是指在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不存在真正物理接口)的方式,实现原来相互隔离的不同VLAN(虚拟局域网)之间的互联互通。单臂路由
单臂路由的使用场景
回顾一下我们之前讲的三层交换机VLAN间路由中有讲到要实现VLAN间路由一定要使用三层交换机启用路由功能来实现,如下的情况若只有二层交换机要怎么来实现不同VLAN之间的互访呢?

前面我们讲到三层交换机是因为自带了路由功能,如果是二层交换机则可以通过在前端添加一个路由器来实现不同VLAN之间的路由,这就叫做单臂路由

PC_A访问PC_C的步骤如下:(假如所有设备都已获取ARP表)
PC_A判断目标PC_C和自己属于不同网段将数据包发送给自己的网关(SVI接口)处理,此时数据包如下:
源IP | 目标IP | 源MAC | 目标MAC | VLAN标签 |
192.168.1.1 | 192.168.2.1 | MAC_A | MAC_R | 无 |
交换机收到数据包后,查询MAC表,得知MAC_R为端口6,且端口6为Trunk口,则打上VLAN2的标签,此时数据包如下:
源IP | 目标IP | 源MAC | 目标MAC | VLAN标签 |
192.168.1.1 | 192.168.2.1 | MAC_A | MAC_R | VLAN2 |
路由器收到数据包后,读取VLAN标签信息,属于红色VLAN2,由交收SVI2接口进行处理,查询路由发现2.0网段为直连网段,且对应蓝色VLAN3,接下来会由SVI3接口进行处理及转发,此时数据包如下
源IP | 目标IP | 源MAC | 目标MAC | VLAN标签 |
192.168.1.1 | 192.168.2.1 | MAC_R | MAC_C | VLAN3 |
交换机的聚会链接收到此数据包后,查询VLAN标签属于VLAN3,且自己也存在此VLAN,则去掉VLAN标签,通过查找ARP表得知从端口3发送出去,此时数据包如下
源IP | 目标IP | 源MAC | 目标MAC | VLAN标签 |
192.168.1.1 | 192.168.2.1 | MAC_R | MAC_C | 无 |

通过上面的分析可以发现单臂路由其实和VLAN间路由实现的原理是一样的,只是一个是集成了路由模块,一台设备进行处理,一个是独立添加一台路由器来处理。
静态路由
静态路由的特点:
手动配置:静态路由需要管理员根据实际需要一条条自己手动配置,路由器不会自动生成所需的静态路由的。静态路由中包括目标节点或目标网络的IP地址,还可以包括下一跳IP地址(通常是下一个路由器与本地路由器连接的接口IP地址),以及在本路由器上使用该静态路由时的数据包出接口等
路由路径相对固定:因为静态路由是手动配置的,静态的,所以每个配置的静态路由在本地路由器上的路径基本上是不变的,除非由管理员自己修改。当网络的拓扑结构或链路的状态发生变化时,这些静态路由也不能自动修改,需要网络管理员需要手工去修改路由表中相关的静态路由信息。
永久存在:也因为静态路由是由管理员手工创建的,所以一旦创建完成,它会永久在路由表中存在的,除非管理员自己删除了它。
不可通告性:静态路由信息在默认情况下是私有的,不会通告给其它路由器,也就是当在一个路由器上配置了某条静态路由时,它不会被通告到网络中相连的其它路由器上。
单向性:静态路由是具有单向性的,也就是它仅为数据提供沿着下一跳的方向进行路由,不提供反向路由。所以如果你想要使源节点与目标节点或网络进行双向通信,就必须同时配置回程静态路由。
静态路由使用场景

如图所示,PC_A要访问PC_B要怎么来配置静态路由
A访问B具体过程如下:(假设所有设备都已有相应的ARP表的情况)
A把自己的IP地址和B的IP地址比较,发现不在同一子网内,由发送给A自己的网关进行处理
源IP | 目标IP | 源MAC | 目标MAC |
192.168.1.1 | 172.16.1.1 | MAC_A | MAC_B |
Route1收到此数据包后,发现目标IP自己没有直连路由,则查找路由表,所以这里需要给Route1添加上去172.16.1.0/24网段的静态路由
Cisco静态路由配置:ip route 172.16.1.1 255.255.255.0 10.10.10.2
Sangfor静态路由配置:

查询到路由表后,则将数据进行封装从MAC_2这个接口发送出去。此时数据包如下:
源IP | 目标IP | 源MAC | 目标MAC |
192.168.1.1 | 172.16.1.1 | MAC_2 | MAC_3 |
Route2接收到数据包后,查询路由表发为172.16.1.0为直连网段,通过查询ARP表得知从MAC_4这个接口发送出去。此时数据包如下:
源IP | 目标IP | 源MAC | 目标MAC |
192.168.1.1 | 172.16.1.1 | MAC_4 | MAC_B |
PC_B收到数据包后回复的数据包过程一样,只是要注意的是,前面我们讲到静态路由是单向的,所以在Route2上还需要添加去往192.168.1.0/24网段的路由,如下:
ip route 192.168.1.0 255.255.255.0 10.10.10.1
策略路由
策略路由使用场景
某学校有电信和教育网两个ISP线路,学校希望教师网段172.16.1.0/24网段所有用户通过教育网的线路出去上网,学生网段192.168.1.0/24网段所有用户通过电信线路出去上网。此时单纯通过静态路由无法实现此要求,只能通过策略路由来实现。

策略路由配置
配置策略路由之前,先要在Route上配置192.168.1.0/24和172.16.1.0/24的回程路由,此配置不在重复讲述。
Cisco策略路由配置
access-list 101 permit ip 192.168.1.0 0.0.0.255 any //访问控制列表101允许192.168.1.0访问所有
access-list 102 permit ip 172.16.1.0 0.0.0.255 any //访问控制列表102允许172.16.1.0访问所有
route-map ISP-CT permit 10 //定义route-map,取名为ISP-CT,序列为10
match ip address 101 // 检查源地址,匹配ACL101
set ip default next-hop 123.0.0.3 //指定下一路地址为电信出口的网关地址
route-map ISP-EDUpermit 20 //定义route-map,取名为ISP-EDU,序列为20
match ip address 102 // 检查源地址,匹配ACL102
set ip default next-hop 223.0.0.3 //指定下一路地址为教育网出口的网关地址
Sangfor策略路由配置

