网络协议之路由是怎么回事?

写在前面

要想去外面的世界看看, 就离不了路由器,而路由器工作的原理就是路由,那么具体是怎么路由的呢?本文就一起来看下这部分内容。

1:路由的配置

配置一条路由无非就是在配置以下三个信息:

1:包要去哪里,即目的IP
2:从路由器的哪个网口出去
3:下一跳的IP地址是啥?

知道了以上信息,就能以在局域网环境中传输包方式来完成一跳了,还是ARP获取MAC,修改目标MAC等操作。
那么如何配置呢,最简单的方式就是直接配置,如下:

 ip route add 10.176.48.0/20 via 10.173.32.1 dev eth0

意思就是如果是包要去10.176.48.0/20,就要从eth0这个网口出去,下一跳的地址是10.173.32.1,就像这样:
在这里插入图片描述
当然这样子按照目的IP来配置路由器是完全可行的,但是一个个配置工作量还是蛮大的,所以也支持其他的配置方式,比如策略配置方式,即通过源IP,TOS等方式等方式来配置,如下根据源IP来进行配置:

ip rule add from 192.168.1.0/24 table 10 如果是来源IP是192.168.1.0/24则使用路由表10
ip rule add from 192.168.2.0/24 table 20如果是来源IP是192.168.2.0/24则使用路由表20

也可以配置多个出口,来实现负载均衡:

ip route add default scope global nexthop via 100.100.100.1 weight 1 nexthop via 200.200.200.1 weight 2

下一跳有俩,分别是100.100.100.1,权重1,200.200.200.1,权重2。
接着我们来看一个出口可以二选一的实际场景。
我家在有孩子之前只买了一家运营商的网络,因为我家对网络的要求不高,我跟我老婆基本上都不看视频什么的对网速要求比较高的网站,最多也就是看看新闻,查查工作中遇到的问题啥的,但是呢,后来有了孩子,孩子要上网课,所以我们又买了另一家运营商的网络,宽带呢更高,但是家里的路由器支持一个出网网口,即只能接一个外网,为此,我们还专门买了一个可以支持两个外网网口的更高级的路由器,最终,我们家的网络就像这样子:
在这里插入图片描述
其中eth2和eth3就是两个外网网口。
此时我们家的路由配置如下:

$ ip route list table main 
60.190.27.189/30 dev eth3  proto kernel  scope link  src 60.190.27.190
183.134.188.1 dev eth2  proto kernel  scope link  src 183.134.189.34
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.1
127.0.0.0/8 dev lo  scope link
default via 183.134.188.1 dev eth2

意思是:

如果是要去60.190.27.189/30,即运营商2则从eth3口出
如果是要去183.134.188.1,即运营商1则从eth2口出
如果是去内网192.168.1.0/24,则从eth0出,此时只是在局域网内,不到外网
如果是去127则走lo,回环网口,此时是自己跟自己玩
默认走eth2

因为我们需要孩子屋使用高速网络,我们屋使用低速网络,为此还要进行如下的配置:

  • 我们屋走低速网络
添加新的路由表:# echo 200 slow >> /etc/iproute2/rt_tables
配置slow路由表:# ip route add default via 60.190.27.189 dev eth3 table slow# ip route flush cache 
配置来自我们的IP走slow路由表:# ip rule add from 192.168.1.102 table slow

这样我们屋走路由表slow,而路由表slow走eth3网口,下一跳的IP的60.190.27.189。

  • 孩子屋走高速网络
添加新的路由表:# echo 200 fast >> /etc/iproute2/rt_tables
配置slow路由表:# ip route add default via 183.134.188.1 dev eth2 table fast# ip route flush cache 
配置来自我们的IP走slow路由表:# ip rule add from 192.168.1.101 table fast

这样孩子屋走路由表fast,而路由表fast走eth2网口,下一跳的IP是183.134.188.1。
当然简单的网络环境,比如我家里的网络,手动挡捣鼓捣鼓还是问题不大的,但是当网络环境比较复杂时,手动的方式就显得力不从心了,此时就需要自动的方式来进行了。

2:动态路由配置

其实我们抽象的来看所有路由器,组成的其实就是一个图,而路由器无非就是找到一条最短路径而已,所以动态路由配置其实就是转化为了图的最短路径问题了,而解决最短路径问题,主要是Bellman-Ford 算法和Dijkstra 算法。具体在动态路由配置算法有以下两种。

  • 距离矢量路由算法
    该算法基于bellman-ford,适用于小型网络。
  • 链路状态路由算法
    该算法基于dijkstra算法。适用于大型网络。
    但是只有算法还是工作不起来的,还需要具体协议的支持,毕竟先干嘛后干嘛还是要有一个规范的吗,所以就有了以下的具体协议:
  • 基于链路状态路由算法的 OSPF
    OSPF(Open Shortest Path First,开放式最短路径优先)就是这样一个基于链路状态路由协议,广泛应用在数据中心中的协议。由于主要用在数据中心内部,用于路由决策,因而称为内部网关协议(Interior Gateway Protocol,简称 IGP)。
    即,这是一个内网环境的路由协议。
  • 基于距离矢量路由算法的 BGP
    这是一个外网环境的路由协议。我们称为外网路由协议(Border Gateway Protocol,简称 BGP)。
    网络世界一个独立的内网环境,比如一个公司网络,我们称为一个AS(Autonomous System),自治系统分为以下几类:
Stub AS:对外只有一个连接。这类 AS 不会传输其他 AS 的包。例如,个人或者小公司的网络。
Multihomed AS:可能有多个连接连到其他的 AS,但是大多拒绝帮其他的 AS 传输包。例如一些大公司的网络。
Transit AS:有多个连接连到其他的 AS,并且可以帮助其他的 AS 传输包。例如主干网。 

每个AS之间都有边界路由器。BGP分为eBGP和iBGP,其中AS之间使用eBGP通信,AS内部使用iBGP,如下图:
在这里插入图片描述

写在后面

参考文章列表

网络协议之不能老在家里晃悠,也得出去看看啊! 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91721.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2106. 摘水果,梳理思路

文章目录题目概要java 解法详解题目概要 在一个无限的 x 坐标轴上,有许多水果分布在其中某些位置。给你一个二维整数数组 fruits ,其中 fruits[i] [positioni, amounti] 表示共有 amounti 个水果放置在 positioni 上。fruits 已经按 positioni 升序排列…

深入理解消息队列(MQ)核心原理与设计精髓

引言:从一个“不堪重负”的订单系统说起想象一个简化的电商下单流程:用户点击“下单”后,系统需要:在订单数据库中创建一条记录。调用库存服务,扣减商品库存。调用营销服务,给用户发放积分和优惠券。调用通…

前端手撕题总结篇(算法篇——来自Leetcode牛客)

链表指定区域反转 找到区间(头和为 for循环当**时)->反转链表(返回反转过后的头和尾)->连接 function reverseBetween( head , m , n ) {//preEnd&cur&nextStart cur.next断开if(mn)return head;const vHeadNode…

从Excel到工时管理系统:企业如何选择更高效的工时记录工具?

还在为手工统计员工工时而头疼吗?月末堆积如山的Excel表格、反复核对的数据、层出不穷的差错,这些问题正在拖慢企业的发展步伐。8Manage工时管理系统发现,传统手工记录不仅耗费大量人力,更让宝贵的工时数据难以转化为有效的管理决…

Java设计模式之《命令模式》

目录 1、介绍 1.1、命令模式定义 1.2、对比 1.3、典型应用场景 2、命令模式的结构 2.1、组成部分: 2.2、整体流程 3、实现 3.1、没有命令模式 3.2、命令模式写法 4、命令模式的优缺点 前言 java设计模式分类: 1、介绍 1.1、命令模式定义 命…

【动态规划算法】路径问题

什么是动态规划算法动态规划(Dynamic Programming,简称 DP)是一种通过分解复杂问题为重叠子问题,并存储子问题的解以避免重复计算,从而高效求解具有特定性质(重叠子问题、最优子结构)问题的算法…

Java基本技术讲解

一、基础语法三要素 暂时无法在飞书文档外展示此内容 🔑 黄金法则​:每个变量都要声明类型!二、程序逻辑控制(游戏行为核心) 条件判断:if-else - “岔路口选择” // 捡到金币逻辑 if (isTouching(Coin.clas…

【网络基础2】路由器的 “两扇门”:二层接口和三层接口到底有啥不一样?

目录 前言:路由器不是只有 “插网线的口” 一、先搞懂一个基础:路由器是 “网络交通枢纽” 二、二层接口:“小区内部的单元门”,只认 “住户身份证” 1. 啥是二层接口? 2. 用 “小区内部串门” 理解二层接口 步骤 1:手机打包数据,写上 “收件人身份证” 步骤 2:二…

MLIR TableGen

简介 TableGen 是一种领域特定语言(DSL),TableGen 的设计目标是允许编写灵活的描述,并将记录的通用特性提取出来,从而减少重复代码并提高代码的可维护性。 TableGen的工作流程: 前端解析: Ta…

2、docker容器命令 | 信息查看

1、命令总览命令作用docker ps查看运行中的容器(-a查看所有容器)docker logs [CONTAINER]查看容器日志(-f实时追踪日志)docker inspect [CONTAINER]查看容器详细信息(JSON格式)docker stats [CONTAINER]实时…

【MySQL】MySQL中锁有哪些?

一、按照粒度分类: 粒度越小,并发度越高,锁开销越大。 1.全局锁: 作用: 锁定整个MySQL实例(所有数据库)。适用场景: 全库逻辑部分。(确保备份期间数据的一致性。)实现方式: 通过 FLUSH TABLES W…

语义分割--deeplabV3+

根据论文网络结构图讲一下:网络分为两部分:encoder和decoder部分。 Encoder:DCNN就是主干网络,例如resnet,Xception,MobileNet这些(主干网络也要使用空洞卷积),对dcnn的结…

Azure DevOps 中的代理

必知词汇 深入研究 Azure DevOps 中的代理之前需要掌握的基本概念: 代理:Azure DevOps 中的代理是一个软件组件,负责执行流水线中的任务和作业。这可能包括数据中心内的物理服务器、本地或云端托管的虚拟机,甚至是容器化环境。这些代理可以在各种操作系统和环境中运行,例如…

AUTOSAR进阶图解==>AUTOSAR_SRS_ADCDriver

AUTOSAR ADC驱动详解 基于AUTOSAR标准的ADC驱动模块需求规范分析目录 ADC驱动模块概述 关键概念定义 ADC驱动架构 ADC驱动在AUTOSAR分层架构中的位置ADC驱动的主要职责 ADC驱动配置结构 通用配置(AdcGeneral)硬件单元配置(AdcHwUnit)通道配置(AdcChannel)通道组配置(AdcChanne…

宝马集团与SAP联合打造生产物流数字化新标杆

在德国雷根斯堡的宝马工厂,每57秒就有一辆新车下线。这座工厂不仅是汽车制造的基地,更是宝马集团向SAP S/4HANA云平台转型的先锋项目。通过“RISE with SAP”计划,宝马将该工厂的运营系统全面迁移至SAP S/4HANA Cloud Private Edition&#x…

Go 语言实战:构建一个高性能的 MySQL + Redis 应用

引言:为什么是 Go MySQL Redis?在现代后端技术栈中,Go MySQL Redis 的组合堪称“黄金搭档”,被广泛应用于各种高并发业务场景。Go 语言:以其卓越的并发性能、简洁的语法和高效的执行效率,成为构建高性能…

Excel超级处理器,多个word表格模板中内容提取到Excel表格中

在职场中,很多人习惯在word里插入表格,设计模板,填写内容,一旦有多个word文件需要整理在excel表格中,最常见的工作方式就是每个word文件打开,复制,粘贴到excel表格里,这样的工作方式…

前端工程化:ES6特性

本文为个人学习笔记整理,仅供交流参考,非专业教学资料,内容请自行甄别 文章目录一、let与var1.1、越狱问题1.2、变量的重复声明1.3、变量提升问题二、解构2.1、数组解构2.2、对象解构2.3、方法解构三、链判断四、参数默认值五、箭头函数六、模…

大屏项目展示

一、项目克隆与基础操作 我们参考的项目 互联网设备可视化平台---IofTV-Screen: 🔥一个基于 vue、datav、Echart 框架的物联网可视化(大屏展示)模板,提供数据动态刷新渲染、屏幕适应、数据滚动配置,内部图表自由替换、Mixins注入等功能,持续更新.... 将次项目克隆到本…

基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析实践技术应用

在自然和社会科学领域有大量与地理或空间有关的数据,这一类数据一般具有严重的空间异质性,而通常的统计学方法并不能处理空间异质性,因而对此类型的数据无能为力。以地理加权回归为基础的一系列方法:经典地理加权回归,…