| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 网工路由基础(2)路由选路原理 -> 正文阅读 |
|
[网络协议]网工路由基础(2)路由选路原理 |
往期回顾??网工路由基础(1)静态路由
路由器是实现网络互联,在不同网络之间转发数据单元的重要网络设备。路由器主要在OSI参考模型的第三层(网络层),路由器的主要任务就是为经过它的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的终点。 为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用。由此可见,选择最佳路径策略即路由算法是路由器的关键所在。 因此,当路由器接收到来自一个网络端口的数据包时,首先根据其中所含的目的地址查询路由表,决定转发路径(转发接口与下一跳地址),然后从ARP缓存中调出下一跳地址的MAC地址,将路由器自己的MAC地址作为源MAC, 下一跳地址的NAC作为目的MAC封装成帧头,同时IP数据包头的TTL(Time To Live)也开始减数,最后将数据发送到转发端口,按顺序等待,传送到传输链路上去。
路由器的基本功能 ?路由功能 路由功能指路由器通过运行动态路由协议或其他方法来学习和维护网络拓扑结构,建立,查询和维护路由表。 ?转发功能 一般来说,路由器的主要工作是对数据包进行存储转发,具体如下: 路由选择牵涉到三个方面: ?建立路由表? ? ? ? ?每个路由协议处理路由更新时,选择到目的地址的最佳路由,并试图安装到路由表中。如果只有多个动态路由协议运行,存在争先安装路由的问题。
? ? ? ?其他协议对于未安装的协议怎么处理?EIGRP安装的路由失败了怎么办?对此有两种解决方法: ? ? ? ?对于EIGRP 、IS-IS、OSPF、BGP、RIP这样的有自身路由信息表的路由协议,将采取第二种办法,安装失败的路由将登记在路由表中,当原路由条目失效时,将通知做登记的路由协议的处理进程来安装它们的路由,如果有多个进程来安装,管理距离小的协议优先。 ?调整管理距离值? ? ? ? ?改变路由协议的缺省距离值是比较慎重的动作,有可能导致路由循环或其他奇怪的问题,必须非常小心!
三个路由的前缀长度(子网掩码)不同,所以得到不同目的网络的路由,同时安装到路由表中。 ?转发决策? 先看一下路由器刚才安装的三个路由条目: router#show ip route .... D ?192.168.32.0/26 [90/25789217] via 10.1.1.1 R ?192.168.32.0/24 [120/4] via 10.1.1.2 O ?192.168.32.0/19 [110/229840] via 10.1.1.3 ? ? ? ? 如果目的地址为192.168.32.1 ,将选择哪条路由呢?这依赖于所匹配的前缀长度,最长匹配的前缀长度优先。 ? ? ? ?匹配是用路由条目中的掩码与目的地址相遇后再与网络地址比较,相同意味着匹配。该地址与这三条路由都匹配,但第一跳匹配的路由前缀(26)最长,所以该包将转发到10.1.1.1。 ?IP CLASSLESS?的影响? 该命令只影响转发进程,不影响路由表的建立。如下: router#show ip route .... 172.30.0.0/16 is variablysubnetted, 2 subnets, 2 masks D ? 172.30.32.0/20 [90/4879540] via10.1.1.2 D ? 172.30.32.0/24[90/25789217] via 10.1.1.1 S* ? 0.0.0.0/0 [1/0] via 10.1.1.3 假设? ip classless ?命令没有设置,那么:
数据包的转发决定依赖于三部分的进程:路由协议、路由表、实际的转发交换,这三者的关系图如下: 选择路由时采取最长匹配的原则,而路由协议安装路由的优先级取决于管理距离值。 路由选择原理 ?最长掩码匹配 l ?主机地址 l ?子网 l ?一组子网(汇总路由) l ?主类网络号(ABC类) l ?超网汇总(CIDR) l ?缺省地址(默认路由) 示例: 去往172.16.10.1,应该被172.16.10.1/32匹配住 去往172.16.10.2,应该被172.16.10.0/30匹配住 去往172.16.10.100,应该被172.16.10.0/24匹配住 去往172.16.20.1,应该被172.16.0.0/16匹配住 去往172.17.20.1,应该被172.0.0.0/8匹配住 去往192.168.10.1,应该被默认路由匹配住 show ip route 4.0.0.0/24 is subnetted, 1 subnets S ? ? ? ?4.4.4.0 [1/0] via 12.1.1.2 路由标识:也可称为路由来源,S表示静态
各类协议的管理距离:
R1#show ip route 1.1.1.1 Routing entry for 1.1.1.1/32 Known via "connected", distance 0, metric 0 (connected) ? 直连路由 Routing Descriptor Blocks: * directly connected, via Loopback0 Route metric is 0, traffic share count is 1 R1#show ip route 4.4.4.0 Routing entry for 4.4.4.0/24 Known via "static", distance 1, metric 0 ? ?静态路由 Routing Descriptor Blocks: * 12.1.1.2 Route metric is 0, traffic share count is 1 全局模式下,show ip protocols可以查看动态路由协议的管理距离 show ip protocols Routing Protocol is "ospf 1" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Router ID 1.1.1.1 Number of areas in this router is 0. 0 normal 0 stub 0 nssa Maximum path: 4 Routing for Networks: Routing Information Sources: Gateway ? ? ? ? Distance ? ? ?Last Update Distance: (default is 110) 度量值分类: l ?带宽,负载,延迟,可靠性,EIGRP协议使用 l ?开销 ,OSPF,IS-IS协议使用 l ?跳数 ,RIP协议使用 静态路由配置:
l ?通信是双向的,因此要留意往返流量 l ?尽量配置下一跳IP,不要配置出接口,会产生ARP消息,但可以下一跳和出接口一起配置,如: l ip route 192.168.23.0 255.255.255.0 s0/0 192.168.12.2 ,多一个路由属性,比如BFD检测,路由策略会用到。 l ?注意通信双方的源地址,以及目的地址 l ?路由递归查询 何谓路由递归: ? ? ? 假设上面的图例,R3后面还有一个网段,比如192.168.20.0,那么在R1上可以这样写: ip route 192.168.20.0 255.255.255.0 192.168.23.3 ? ? ? ?那么当R1收到一个去往目的网络192.168.20.0/24的数据包时,先查路由表,发现有去往这个目的网络的路由, ? ? ? 但发现下一跳路由器是192.168.23.3,这时路由器会做一个操作,路由递归。那就是再查路由表,看192.168.23.3 怎么去,发现去往192.168.23.3,有路由,下一跳是192.168.12.2。 浮动静态路由: 去往一个目的网段,有多个路径,一条为主,一条为备 指定两个下一跳,通过调整AD值,正常情况下,AD值小的路由加表,AD值大的大的隐藏在后台, 当主路由出现问题时才加入路由表, ip route 192.168.23.0 255.255.255.0 192.168.12.2 ip route 192.168.23.0 255.255.255.0 192.168.12.3?10 ? ?//AD调整为10 负载均衡: 去往一个目的网段,有多个路径,路由的AD值一致,metric值也一致,流量两条链路同时走 ip route 192.168.23.0 255.255.255.0 192.168.12.2 ip route 192.168.23.0 255.255.255.0 192.168.12.3 汇总路由: 改变子网掩码,通过汇总路由匹配明细,从而简化路由表,减少配置量及路由负器载 ip route 192.168.0.0 255.255.252.0 192.168.254.1 实际上匹配了: 192.168.0.0/24 192.168.1.0/24 192.168.2.0/24 192.168.3.0/24 默认路由: 常用于边缘路由器,比如,最底层接入路由器,或者出口路由器 匹配所有目的网段, ip route 0.0.0.0 0.0.0.0 192.168.12.2 黑洞路由: 将不需要的流量丢弃到null 0接口,null 0 是路由的一个黑洞接口, ip route 10.10.10.0 255.255.255.0 null ?0 loopback接口: l ?也叫回环口,是一个逻辑的、虚拟的接口 l ?使用全局配置命令 interface looback x 创建 l ?创建完成后即可为接口配置IP地址 (可以是32位的IP地址) l ?Looback 接口创建后,除非人为shutdown,否则不会down 作用: l ?模拟路由器的直连网段,用于测试 l ?可用于设备管理(Loopback接口比较稳定) l ?供其它协议使用。例如OSPF、BGP、MPLS等 l ?其他用途,总之非常广泛 案例分享: 通过浮动静态路由,结合BFD双向技术检测,保证出口路由冗余,环境如下: 交换机为二层交换机 R5 IP地址: l loopback:5.5.5.5/32 l E0/1:100.1.1.5/24 l E0/3:200.1.1.5/24 R6 IP地址: l loopback:6.6.6.6/32 l E0/0:100.1.1.6/24 l E0/2:200.1.1.6/24 配置要点: l ?接口下开启BFD检测,R5,R6都要开启,并且参数保持一致,因为BFD是双向检测技术 l ?配置静态路由,必须带上出接口字段,否则BFD无法检测 l ?将静态路由与BFD进行关联 查看:show bfd nei ?动态路由协议 ? ? ? ?通过在路由器之间,运行动态路由协议,赋予路由器动态感知网络变化,以及发现网络的能力,并且将发现的网络生成路由条目,自动的添加到本地路由表中,并进行维护。
?有类及无类路由查找区别 无类路由(ip classless,默认打开):
去往目的IP:192.168.1.33,走F0/0 有类路由(no ip classless或ip classful): 当路由器收到一个数据包时,先查看目的地址所属的主类网络。 去往目的IP:192.168.1.1,主类网络是192.168.1.0/24 查子网,匹配192.168.1.0/27,所以走F1/0 去往目的IP:192.168.1.33,主类网络是192.168.1.0/24 有主类路由的情况下: |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:50:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |