经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
HCNA Routing&Switching之路由基础 - Linux-1874
来源:cnblogs  作者:Linux-1874  时间:2021/6/29 2:07:33  对本文有异议

  在开始聊路由之前,我们首先要明白在网络通讯里,什么是路由?什么是路由表、路由器以及网关的相关术语;路由简单讲就是指网络数据包从源头到目标的路径,主要用来为不同网络间通讯提供数据包转发依据;路由表就是多条路由信息的集合,主要作用就是用来存储路由信息,以及为路由器提供路由的依据;路由器就是指具有路由功能和维护路由表的网络设备;所谓网关是指路由器上的接口ip地址(一台路由器一个接口对应一个广播域,所以路由器天生就是用来隔离广播域的);

  路由器的工作原理

  当路由器(或其他三层设备)收到一个ip数据包时,首先会查看该包的ip头部中的目标ip地址,并在路由表中进行查找和匹配,在匹配到最优路由后,将数据包扔给对应路由所指的出接口或下一跳,从而完成数据包的转发;当收到的ip数据包在路由表中没有匹配的路由时,路由器会自动丢弃对应的ip数据包;简单讲就是路由器收到报文,然后查找路由表,如果有对应匹配的路由,就把对应报文从对应路由所指定的出接口或下一条所在同网段ip地址所在接口发出去;如果没有匹配的路由信息则自动丢弃该数据报文;从上述描述我们不难理解,一个数据报文要想从路由器通过,必须满足对应路由器上要有匹配的路由;有了匹配的路由,对应路由器就知道把对应数据报文从那个接口转发出去;

  ip路由过程

  提示:当一个报文从10.3.1.0发出,首先会被RA收到,RA收到报文后,一看该报文是到10.4.1.0网络,然后就查看自己的路由表,看看有没有到达10.4.1.0路由;如果有就从对应路由所指定的出接口转发出去;如果没有就丢弃;同样的原理,当数据包从RA的E0口发送出去以后,对应与RA的E0口直连的RB的E0口就会收到对应的数据报文;当RB收到RA转发出来的报文以后,也会先看对应报文的目标网络,然后和自己的路由表中的路由进行匹配;匹配到就从对应的接口发出去;依次类推,最终数据包会到达RC,RC收到报文以后,查看路由表发现对应报文的目标网络是和自己E1口直连,然后RC会把对应报文从E1口发送出去;到此路由器的工作就完成了;后续就是通过目标ip地址,arp广播拿到对应目标ip地址mac,然后进行二层以太网封装,最终将数据报文送达到对应主机或设备的网卡上,由对应目标ip地址所在设备进行处理;

  查看路由表

  1. <Huawei>display ip routing-table
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Routing Tables: Public
  5. Destinations : 4 Routes : 4
  6.  
  7. Destination/Mask Proto Pre Cost Flags NextHop Interface
  8.  
  9. 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
  10. 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  11. 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  12. 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  13.  
  14. <Huawei>

  提示:Destination/Mask字段用来描述目标网络和掩码;Proto用来描述路由的来源,常见的路由来源有Direct(直连),static(静态),ospf(动态路由学习中的一种),RIP等等;pre用来描述对应路由的优先级,如果有多条不同的路由到达相同目标网络,优先级越低对应路由就越优先匹配;cost是用来描述对应路由的开销,多条相同路由来源到达相同目标网络,开销越低,对应路由就越优先匹配;NextHop用来描述下一跳地址,所谓下一跳就是指ip报文所经由的下一个路由器的接口地址;interface用来描述出接口(ip报文从哪个接口转发出去);

  路由器转发原则

  1、被转发到路由必须存在(如果不存在该路由条目,路由器收到此类报文会直接丢弃不做任何处理);

  2、根据最长匹配原则进行匹配,也就是掩码越长越优先转发;

  提示:如图所示,R1上有两条静态路由,分别都能到达3.3.3.3,其中一条是出接口为g0/0/0掩码为24,一条是g0/0/1掩码为32,现在我们看看数据报文到底会走哪一边呢?

  验证:用tracert 3.3.3.3来查看对应数据包会走的那一条路?

  1. [R1]tracert 3.3.3.3
  2. traceroute to 3.3.3.3(3.3.3.3), max hops: 30 ,packet length: 40,press CTRL_C to break
  3. 1 4.4.4.4 30 ms 10 ms 10 ms
  4. 2 5.5.5.3 20 ms 30 ms 30 ms
  5. [R1]

  提示:可以看到当目标地址相同时,相同协议,优先级,开销的情况下掩码越长越优先匹配上;

  3、当掩码长度一样,会比较优先级,优先级数字越小越优先转发;

  示例:还是上述实验top,修改下静态路由,把g0/0/1上的优先级改调大一点,看看对应数据包是否还会选择下面的路呢?

  提示:当我们把原来的32位掩码路由删除以后,重新添加24为掩码的优先级为80的路由以后,对应路由表中反而就只有一条优先级为60的路路由;说明相同目标网络,相同掩码以及相同协议和开销的情况下,优先级越低的路由优先匹配(因为路由表中只存在最优路由);此时我们在R1上访问3.3.3.3时,数据报文会从g0/0/0发出,因为路由表中就只有一条路由;

  验证:用R1 tracert 3.3.3.3,看看数据包是否走R2到达R3?

  1. [R1]tracert 3.3.3.3
  2. traceroute to 3.3.3.3(3.3.3.3), max hops: 30 ,packet length: 40,press CTRL_C to break
  3. 1 1.1.1.2 20 ms 20 ms 10 ms
  4. 2 2.2.2.3 30 ms 30 ms 30 ms
  5. [R1]

  提示:可以看到数据包走g0/0/0到达1.1.1.2,然后在到达R3的2.2.2.2;

  常用路由协议默认优先级

  4、当掩码和优先级一样,会比较开销(cost值),开销越小越优先转发;

  示例:还是上述的top,全网运行ospf,然后修改g0/0/0上的开销为50,看看对应的路由表中会存放那条路由?

  1. [R1]dis ip routing-table
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Routing Tables: Public
  5. Destinations : 13 Routes : 14
  6.  
  7. Destination/Mask Proto Pre Cost Flags NextHop Interface
  8.  
  9. 1.1.1.0/24 Direct 0 0 D 1.1.1.1 GigabitEthernet0/0/0
  10. 1.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
  11. 1.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
  12. 2.2.2.0/24 OSPF 10 2 D 1.1.1.2 GigabitEthernet0/0/0
  13. 3.3.3.3/32 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
  14. OSPF 10 2 D 1.1.1.2 GigabitEthernet0/0/0
  15. 4.4.4.0/24 Direct 0 0 D 4.4.4.1 GigabitEthernet0/0/1
  16. 4.4.4.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
  17. 4.4.4.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
  18. 5.5.5.0/24 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
  19. 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
  20. 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  21. 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  22. 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  23.  
  24. [R1]int g0/0/0
  25. [R1-GigabitEthernet0/0/0]ospf cost 50
  26. [R1-GigabitEthernet0/0/0]q
  27. [R1]dis ip routing-table
  28. Route Flags: R - relay, D - download to fib
  29. ------------------------------------------------------------------------------
  30. Routing Tables: Public
  31. Destinations : 13 Routes : 13
  32.  
  33. Destination/Mask Proto Pre Cost Flags NextHop Interface
  34.  
  35. 1.1.1.0/24 Direct 0 0 D 1.1.1.1 GigabitEthernet0/0/0
  36. 1.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
  37. 1.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
  38. 2.2.2.0/24 OSPF 10 3 D 4.4.4.4 GigabitEthernet0/0/1
  39. 3.3.3.3/32 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
  40. 4.4.4.0/24 Direct 0 0 D 4.4.4.1 GigabitEthernet0/0/1
  41. 4.4.4.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
  42. 4.4.4.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
  43. 5.5.5.0/24 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
  44. 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
  45. 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  46. 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  47. 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  48.  
  49. [R1]

  提示:可以看到在没有改g0/0/0接口开销时,在路由表中存在两条到达3.3.3.3的路由,而更改了g0/0/0接口开销以后,对应路由表中只有一条开销为2的路由;说明当去往同一目标ip地址时,掩码优先级一样时,开销越低越优先被匹配;

  5、当掩码、优先级、开销都一样,则负载分担;

  示例:还是上述top,我们把g0/0/0接口上的开销删除,看看对应路由会有什么变化?

  1. [R1]dis ip routing-table
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Routing Tables: Public
  5. Destinations : 13 Routes : 13
  6.  
  7. Destination/Mask Proto Pre Cost Flags NextHop Interface
  8.  
  9. 1.1.1.0/24 Direct 0 0 D 1.1.1.1 GigabitEthernet0/0/0
  10. 1.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
  11. 1.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
  12. 2.2.2.0/24 OSPF 10 3 D 4.4.4.4 GigabitEthernet0/0/1
  13. 3.3.3.3/32 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
  14. 4.4.4.0/24 Direct 0 0 D 4.4.4.1 GigabitEthernet0/0/1
  15. 4.4.4.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
  16. 4.4.4.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
  17. 5.5.5.0/24 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
  18. 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
  19. 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  20. 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  21. 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  22.  
  23. [R1]int g0/0/0
  24. [R1-GigabitEthernet0/0/0]d th
  25. [V200R003C00]
  26. #
  27. interface GigabitEthernet0/0/0
  28. ip address 1.1.1.1 255.255.255.0
  29. ospf cost 50
  30. #
  31. return
  32. [R1-GigabitEthernet0/0/0]undo ospf cos
  33. [R1-GigabitEthernet0/0/0]undo ospf cost
  34. [R1-GigabitEthernet0/0/0]d th
  35. [V200R003C00]
  36. #
  37. interface GigabitEthernet0/0/0
  38. ip address 1.1.1.1 255.255.255.0
  39. #
  40. return
  41. [R1-GigabitEthernet0/0/0]q
  42. [R1]dis ip routing-table
  43. Route Flags: R - relay, D - download to fib
  44. ------------------------------------------------------------------------------
  45. Routing Tables: Public
  46. Destinations : 13 Routes : 14
  47.  
  48. Destination/Mask Proto Pre Cost Flags NextHop Interface
  49.  
  50. 1.1.1.0/24 Direct 0 0 D 1.1.1.1 GigabitEthernet0/0/0
  51. 1.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
  52. 1.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
  53. 2.2.2.0/24 OSPF 10 2 D 1.1.1.2 GigabitEthernet0/0/0
  54. 3.3.3.3/32 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
  55. OSPF 10 2 D 1.1.1.2 GigabitEthernet0/0/0
  56. 4.4.4.0/24 Direct 0 0 D 4.4.4.1 GigabitEthernet0/0/1
  57. 4.4.4.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
  58. 4.4.4.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
  59. 5.5.5.0/24 OSPF 10 2 D 4.4.4.4 GigabitEthernet0/0/1
  60. 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
  61. 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  62. 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  63. 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
  64.  
  65. [R1]

  提示:删除g0/0/0上的接口开销以后,对应路由表中就有两条去往3.3.3.3的路由,他们掩码优先级开销都一样,此时当r1收到一个去往3.3.3.3的报文后,有可能数据包走g0/0/0,也有可能走g0/0/1;

  等价路由(ECMP, Equal Cost Multi-Path)

  类似上一个示例,同一个路由来源,当达到同一个目标网络有几条相同度量值的路由时,这些路由都会被加入到路由表中, 数据包会在这几个链路上进行负载分担。所谓负载分担不是负载均衡,负载分担是指多条链路上都会有流量,不一定是平均分配的;而负载均衡是指多条链路上的流量是平均负载的;

  路由表的形成以及路由的来源

  路由表的形成就是一条条路由信息的集合,路由的来源主要由三个,第一个是直连路由,所谓直连路由是路由a连接路由B,中间没有任何设备,这个就叫做直连;直连路由的形成必须满足两个条件,首先对应直接接口都正确配置了地址,其次对应接口都接线了,并且接口物理状态是up状态,这两个条件必须同时满足,直连路就会生成;一般在模拟器上我们连好线,配置上地址,对应直连路由就会自动生成; 路由信息除了来自直连路由,还来自静态路由和动态路由;静态路由就是管理员人工手动添加到路由;动态路由是指路由器之间通过动态路由协议学习到的路由;常用的动态路由协议有rip,ospf,bgp,isis;

原文链接:http://www.cnblogs.com/qiuhom-1874/p/14947897.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号