认识路由
互联网是有路由器连接的网络组合而成的,为了能让数据报正确到达目标主机,路由器必须在途中进行正确的转发。这种想“正确方向”转发数据所进行的处理就叫做路由控制。
路由的目的就是在复杂的网络结构中,找出一条通往终点路线
路由的过程就是这样一跳一跳的过程(Hop by Hop)
1、一跳(1Hop)是指利用数据链路层以下分层的功能传输数据帧的一个区间;
2、以太网等数据链路中使用MAC地址传输数据帧。
此时的一条是指从源MAC地址带目标MAC地址之间传输帧的区间。
3、多条路由是指由路由器或主机在转发IP数据报时只指定下一个路由器或主机,
而不是将最终目标地址为止的所有通路全都指定出来。
因为每一个区间(跳)在转发IP数据包时会分别指定下一跳的操作,直到达到最终的目标地址
IP数据包的传输过程也和问路一样
每一个节点内部都维护着一个路由表,该表记录IP数据在下一步要发给那个路由器。
1、当IP数据包到达路由器时,路由器会先查看目的IP
2、然后查看路由表,决定这个数据包应该发送到哪里,
3、一直反复,一致到达目标IP地址
1、路由表可以使用route命令查看
2、如果目的IP命中了路由表,就直接转发即可
3、路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,
当目的地址与路由表中其他行都不匹配时就按照缺省路由条目规定的接口发送到下一跳地址。
假设某主机上的网络接口配置和路由表如下:
1、这台主机有两个网络接口,一个网络接口连到192.168.10.0/24网络,另一个网络接口连到
2、Destination:目的网络地址
Genmask:子网掩码
Gateway:下一跳地址
Iface是发送接口,
Flags中的U标志表示此条目有效(可以禁用某些 条目),G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发;
转发过程例1: 如果要发送的数据包的目的地址是192.168.56.3
1、跟第一行的子网掩码做与运算得 到192.168.56.0,与第一行的目的网络地址不符
2、再跟第二行的子网掩码做与运算得 到192.168.56.0,正是第二行的目的网络地址,
因此从eth1接口发送出去;
3、由于192.168.56.0/24正是与eth1 接口直接相连的网络,
因此可以直接发到目的主机,不需要经路由器转发;
转发过程例2:要发送的数据包的目的地址是202.10.1.2
1、依次和路由表前几项进行对比, 发现都不匹配;
2、按缺省路由条目, 从eth0接口发出去, 发往192.168.10.1路由器;
由192.168.10.1路由器根据它的路由表决定下一跳地址;
路由选择协议:
内部网关协议:
RIP:分布式的距离向量协议,适用于小型网络,按固定时间间隔与相邻路由器交换路由表信息。
OSPF:分布式的链路状态协议,适用于大型网络,只在链路状态变化时才向本自治系统中的所有路由器发送相邻路由器的信息。
外部网关协议:
BGP-4:针对不同自治系统之间的路由器,目标是寻找一条能够到达目的网络且不兜圈子的路由。