H3CNE--19.IP路由的原理

H3CNE--19.IP路由的原理 IP路由的原理定义路由器负责将数据报文在IP网段之间进行转发路由是指路由器如何进行数据转发的路径信息本质来讲“路由”就是路径选择的意思而路由器的工作不像是交换将数据包交给某一个具体的PC他只是负责将数据包从一个网段发到另一个网段IP连通的前提IP连通的前提的意思是两个网段相互连接的前提有两个前提沿途的每台路由器上都有到达目的网段的路由信息路由是单向的路径信息沿途的每台路由器都要往返双向路由信息这也是排错的原则检查出问题的路由器查看对应路由表是否有需要到达目的网段的路由信息例如下图左侧PC要与右侧PC发送消息路由器不会管源地址只看目的地址因为路由是单向的在路由器中有个路由表类似于MAC地址表一样是告诉对应目的在哪个口对于R1来说目的网段4.0在2口数据包直接发往对应口如果沿途中有一个路由器不知道目的网段怎么走例如R2那么就会导致包到了R2后不清楚怎么发就给扔了因为他和交换机不同交换机在找不到的时候会广播但是路由器不会在去往目的地的过程中路由器不需要知道中间的网段他只需要知道终点在哪里就行了虽然此时路由器都知道怎么去4.0网段但是通信是一个双向的行为路由器只知道怎么把包给4.0网段那么当4.1回包的时候就回找不到位置导致被丢包因为路由是一个单向的所以需要再让路由器知道从4.0往1.0该怎么走并且需要沿途的都知道告诉每个路由器1.0从哪个口走这样通信双方才真正意义上的可以通信路由表作用存储路由信息但是他和MAC地址表不同MAC地址表信息是写在RAM中断电后就没了但是路由表是写在flash中断电后依旧存在字段内容可以随意拿出一个路由器给g0/0配置完ip我配置的是192.168.1.1后输入[H3C]display ip routing-table来查看路由表其中的Destinations是目的网段目的网段后面跟着的mask是目的网段的子网掩码Proto是告诉路由器这条路由是怎么来的一般是静态路由或者动态路由学来的Pre是路由的优先级有可能在路由器中不止一个路径可以到达目的地那么就会根据优先级选择最优路线数字越小优先级越高cost是开销和前面学的一样表示到达目的地需要的代价和消耗同样的开销越小越优NextHop叫做下一跳地址下一条就是路由从所选的接口走出去后下一个要到达的IP地址比如下图的2.0网段当路由器要发的包是发往4.0网段那么要走的口就是2口那么从2口出来碰上的第一个地址就是2.2这个地址于是这个地址就是下一跳网址路由表查表规则有两条查表规则最长掩码匹配规则假设有这样的路由表此时有个192.168.1.1他似乎两个网段都可以走因为都符合但是根据规则找掩码最长的也就是第二题路由之所以要选择最长的是因为掩码越长范围越小说明这条路指定更加精确但是这个机制会带来一个麻烦的问题——每个数据包进来后都会把路由表全部比对一遍如果路由表比较少还好但是如果有2000条路由表他在没有把所有的路由信息都看一遍是没办法知道那个掩码最长这种机制也叫做遍历路由迭代规则当路由的下一条为非直连网段地址路由器会再次在路由表中查询下一跳地址知道查询到下一跳地址为止比如说这个网络拓扑图中从左往右依次是R1、R2、R3我在R1上配置到192.168.2.0网段的静态路由的时候下一跳地址是R2的g0/0口的ip地址那么当我在R1上配置静态路由到2.2.2.0网段的时候我的下一条地址应该配置R2的g0/0口的ip地址因为下一跳要配置直连的设备的地址但是如果我配置了下一跳地址是R3的G0/0口因为我们已经知道了192.168.2.0网段的路由信息所以就会有一个路由迭代返回到路由表查询到正确的下一条这是在思科设备中配置的时候发现的具体实现逻辑前提我们已经配置了下一跳为R2的G0/0口的路由信息到192.168.2.0网段那么在我们配置到2.2.2.0的路由信息的时候下一跳地址设置成了R3的G0/0口那么路由器发现下一跳不是直连后就会返回路由表重新查询192.168.2.0网段配置时候的下一跳地址直到找到为止但是这里路由器比较少他知道192.168.2.0是通过R2的G0/0口作为下一跳找来的那么就会将到2.2.2.0网段的下一跳设置为R2的G0/0口来源路由的来源有三种直连路由开销小配置简单无需人工维护。只能发现本接口所属网段的路由。手工配置的静态路由无开销配置简单需人工维护适合简单拓扑结构的网络路路由协议发现的路由开销大配置复杂无需人工文虎适合复杂拓扑结构的网络。直连路由定义根据连接口所在的网段自动产生条件接口UP接口配置IP地址例如下图就是给路由器的接口配置了ip地址因为是直连路由器天生认识这个网段静态路由像这样跨了多个路由器并不直连的情况对于R1来说根本就不知道不直连的路由器网段所以需要手动配置手动配置的就叫静态路由它需要人工一条一条配置到目标网段的路由所以缺点就是如果拓扑结构复杂会很难完成特点配置和维护繁琐复杂但是没有协议小号减轻设备和带宽压力动态路由定义通过路由协议从邻居自动学习路由信息假设有三台路由器直连分别交R1、R2、R3邻居的意思是两台直连且运行相同路由协议的两台路由器对于R1来说除了自身的1.0和2.0网段外会从邻居R2身上学到R2的直连路由3.0但是R3不是R1的邻居所以不会直接学习R3的路由同样的R2除了自身的2.0和3.0直连路由外还从R1身上学到1.0网段以及在R3身上学到4.0网段然后R3会从R2身上学到2.0网段等到下一轮R2在告诉邻居自己的路由表的时候R1就会发现R2多了4.0R3发现R2多了1.0网段于是会再次学习至此每个路由器就知道每个网段的路由了所以通过路由协议学习就是如此一跳一跳一传十十传百让所有路由清楚目的网段路由之所以叫动态路由协议是因为会实时变化比如当1.0网段挂了那么他的邻居就会宣告那么路由器就都会把这一条路由信息删除但是同样的动态路由总是要通告消息需要费带宽所以这是他的缺点常见路由协议路由写表规则路由优先级假设如下图三台路由器互联给上方路由器配置RIPR1到R3配置静态路由此时就要面临路由怎么走的问题前面在字段的部分说过需要根据优先级的来选择最优路径那么优先级可以根据来源来决定不同来源的路由优先级不同根据路由优先级可以得出刚刚的拓扑图应该是走静态路由路由优先级中除了直连路由的优先级不能改之外其他的都可以改当三个路由都是RIP的时候R1会同时收到来自R3和R2的表示的R3路由的信息此时就要按照第二条写表规则选择cost小的优先RIP的cost就是计算跳数每经过一个路由就是一跳从R2来是2跳从R3是1跳所以选择R3这条假设当有四个路由此时拓普中都采用RIPR3到R1哪条路径都是两跳那么就会印证第三条两个会成为等价路由都会被记录那么在转发的时候就会是负载均衡两条线路分别发包常用命令[h3c]display ip routing-table查看路由表[h3c]display ip routing-table ‘network’ ‘mask’查看指定网段的路由信息