路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程 [1] 。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。\
路由器用一句话概况就是可以使不同网段的主机进行通信
交换算法相对而言较简单,对大多数路由协议而言是相同的,多数情况下,某主机决定向另一个主机发送数据,通过某些方法获得路由器的地址后,源主机发送指向该路由器的物理(MAC)地址的数据包,其协议地址是指向目的主机的。
路由器查看了数据包的目的协议地址后,确定是否知道如何转发该包,如果路由器不知道如何转发,通常就将之丢弃。如果路由器知道如何转发,就把目的物理地址变成下一跳的物理地址并向之发送。下一跳可能就是最终的目的主机,如果不是,通常为另一个路由器,它将执行同样的步骤。当分组在网络中流动时,它的物理地址在改变,但其协议地址始终不变。
路由器的某一个接口接收到一个数据包时,会查看包中的目标网络地址以判断该包的目的地址在当前的路由表中是否存在(即路由器是否知道到达目标网络的路径)。如果发现包的目标地址与本路由器的某个接口所连接的网络地址相同(直连端口),那么马上数据转发到相应接口;如果发现包的目标地址不是自己的直连网段,路由器会查看自己的路由表,查找包的目的网络所对应的接口,并从相应的接口转发出去;如果路由表中记录的网络地址与包的目标地址不匹配,则根据路由器配置转发到默认接口,在没有配置默认接口的情况下会给用户返回目标地址不可达的 ICMP (ping命令)信息。
在计算机网络中,路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。
路由表从左到右对应的参数为
destination/Mask Proto Pre Cost Flag NextHop Interface
目的地址/子网掩码 优先级 路由开销 标识 下一跳IP地址 输出接口
对应的含义
destination:目的地址,用来标识IP包的目的地址或者目的网络。
mask:网络掩码,与目的地址一起标识目的主机或者路由器所在的网段的地址。
pre:标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用。
cost:路由开销,当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由。
interface:输出接口,说明IP包将从该路由器哪个接口转发。
nexthop:下一跳IP地址,说明IP包所经过的下一个路由器。
想要讲清这个问题,读者需要先了解VLAN的作用,(点这里https://blog.csdn.net/ck784101777/article/details/97659535)
在一个局域网中,通常有不同网段(不同vlan)的机群,仅使用交换机是无法使它们互相通信的,而路由器就是解决不同vlan之间互相通信而存在的.
静态路由(英语:Static routing),一种路由的方式,路由项(routing entry)由手动配置,而非动态决定。与动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。一般来说,静态路由是由网络管理员逐项加入路由表。
静态路由需要管理员手动配置,一般用于主机数量较少的情况
如图所示有三个网段的主机群,并且通过两个路由器进行跨网段转发数据.
利用eNSP建立拓扑图,设置主机ip/子网掩码,对路由器R1,R2进行配置
路由配置思路:
①为路由器的端口配置ip地址
②配置路由表
这里使用静态路由配置路由表,目的是在路由表中加入需访问网段的ip地址,并添加下一跳的端口ip
如R1,需要配置192.168.3.1和192.168.4.1的主机ip,并且下一跳的端口为R2的g0/1端口(192.168.2.2)
R1配置:
R2配置:
为3台主机配置ip地址,子网掩码和网关,网关填写所连路由器上的端口ip
测试内容:
1.0网段ping 2.0网段 通信成功
1.0网段ping 4.0 网段 通信成功
2.0网段ping 4.0 网段 通信成功
看一下这个案例,我们需要实现全网互通,即vlan1.2.3.4实现互通
我们使用一台普通交换机,一台三层交换机,一台路由器,和4台主机
那么如何实现全网互通呢? 我们需要分析三台设备各种执行什么功能.
普通交换机:划分vlan1,vlan2,vlan3,将同网段的主机添加到所属vlan中,使用trunk中继链路向三层交换机传递数据
三层交换机:这是整个拓扑图的关键所在,在整个案例中,三层交换机充当了路由器的效果,即配置了3个虚拟端口(通过vlan),因为每个vlan的主机都需要配置自己的网关,并且是相同网段的网关,而路由器通常只有三个接口,所以这里使用三层交换机创建虚拟端口来代替路由器的端口(实际上三层交换机也可以充当路由器使用,但是它少了很多路由器的功能)
路由器:在这个案例中,这台路由器显得有点多余,因为我们已经使用三层交换机充当路由器了,ip为192.168.5.1的主机可以直接访问三层交换机的端口. 为什么使用路由器呢? 因为路由器实际上实现了很多三层交换机不具备的功能,并且处理数据的能力要强于三层交换机,所以这个使用还是添加了路由器,大家可以对这个案例拓展一下,移除路由器,尝试使用三层交换机进行不同vlan之间的通信.
有了设备后,我们还需要一种协议来做动态路由配置,那就是ospf协议
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯加算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等.
OSPF的简单说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。整个过程使用了五种报文、三个阶段、四张表.
s3700普通交换机配置:
S5700三层交换机配置:
路由器配置:
为4台主机配置ip/子网掩码 和网关,网关为路由器上端口ip号
1) 使用pc1(192.168.1.1) ping 其他三个网段的主机
pc1(192.168.1.1) ping pc2 (192.168.2.1) 通信成功
pc1(192.168.1.1) ping pc3 (192.168.3.1) 通信成功
pc1(192.168.1.1) ping pc4 (192.168.5.1) 通信成功
默认路由(Default route),是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。目的地不在路由器的路由表里的所有数据包都会使用默认路由。这条路由一般会连去另一个路由器,而这个路由器也同样处理数据包: 如果知道应该怎么路由这个数据包,则数据包会被转发到已知的路由;否则,数据包会被转发到默认路由,从而到达另一个路由器。每次转发,路由都增加了一跳的距离。
默认路由是特殊的静态路由,配置命令如下:
[HUAWEI] ip route-static 0.0.0.0 0 192.168.1.1
命令内容为若找不到下一跳的路由器,默认调用跳向端口ip为192.168.1.1的路由器
1.最为最后选择: 如果找不到下一跳的端口,那么就是用默认路由规定的端口,这样至少可以将数据发出去而不至于死在路由上.
2.作为对外网的出口: 我们不知道外网端口的ip地址,但是我们可以将这个数据抛出去而不用在意到底抛到哪