首页 > 其他分享 >基于三层流量卸载方案的子网路由

基于三层流量卸载方案的子网路由

时间:2024-05-31 11:12:42浏览次数:19  
标签:子网 流量 路由 VPC 卸载 三层 网路 路由表

本文分享自天翼云开发者社区《基于三层流量卸载方案的子网路由》,作者:l****n

顾名思义,子网路由是子网级别的。如果子网关联了子网路由,那么会优先查子网路由表中的路由。通过使用子网路由,用户的虚拟私有网络将具备一些高级的功能,比如在VPC中部署集中式防火墙等。

本文介绍的子网路由功能是基于三层流量卸载方案、通过OpenFlow流表方式来实现的。在介绍子网路由之前,先了解一下东西向三层流量卸载方案。如图1所示,vm1、vm2和vm3分别属于三个不同网段的子网,同属于一个VPC,即三层可通。在卸载之前,同VPC三层流量均需要通过租户网关TGW拉通,导致TGW的流量压力较大,无法满足大客户对于同VPC三层互访流量的需求。

 

图1 基本组网图 

卸载前同主机跨网段和跨主机跨网段互访流量路径分别如下图2和图3所示。可以发现,不管是同主机还是跨主机,只要是跨网段都需要绕行租户网关。因此,可以考虑对三层东西向流量进行卸载,使它们下沉至OVS,以减轻租户网关的压力。

图2 同主机跨网段互访(卸载前)

图3 跨主机跨网段互访(卸载前)

卸载后的三层互访流量路径分别如图4和5所示。东西向三层流量不再需要绕行租户网关,同主机内的流量在OVS内部完成转发,跨主机的流量直接送至目的虚机所在宿主机,从而实现流量的最短路径转发。

 

图4 同主机跨网段互访(卸载后)

图5 跨主机跨网段互访(卸载后)

跨网段路由转发处理过程大致如下:当路由器收到一个IP数据包,路由器就会找出数据包的三层包头中的目的IP地址,然后拿着目的IP地址到自己的路由表中进行查询,找到“最匹配”的路由条目后,将数据包根据路由条目所指示的出接口或者下一跳IP转发出去,这就是IP路由。(当然路由器还会做一些额外的工作:将数据包的三层包头的TTL减一,修改数据包的二层源MAC地址为自己出接口的MAC,修改数据包的二层目的MAC地址为下一跳的MAC)。

接下来回归主题,介绍一下子网路由。VPC内子网和路由表的关联关系如图6所示,一个子网只能关联一个路由表,一个路由表(只能属于一个VPC)可以被多个子网关联。VPC1内的子网不允许关联属于VPC2的路由表。

图6 VPC内子网和路由表的关联关系 

路由表由一系列具体的路由规则(条目)组成,按照类型可分为默认路由表和自定义路由表。默认路由表中包含用于子网之间互通,访问公网的路由规则,以及VPN,专线和云间高速等在创建业务之后同步过来的路由,这些路由属于系统路由,用户不可以删除。在删除自定义路由表时,如果路由表存在关联的子网则不允许删除。在删除子网时,如果子网存在关联的自定义路由表,则不允许删除;如果子网存在关联的默认路由表,则可以删除。

 

图7 默认路由表和自定义路由表 

如图7所示,在创建VPC时,自动创建默认路由表,一个VPC对应一张默认路由表。VPC内新创建的子网,自动关联所属VPC内的默认路由表。在用户创建了自定义路由表之后,可以将子网换绑到该VPC内已经创建的自定义路由表,以管理和控制子网内虚机的(出方向)流量转发路径。每条路由规则对应OVS上一条路由流表,流表的动作会将源MAC更改为网关MAC,目的MAC更改为下一跳的MAC。

标签:子网,流量,路由,VPC,卸载,三层,网路,路由表
From: https://www.cnblogs.com/developer-tianyiyun/p/18218056

相关文章

  • Mac卸载 Node npm,升级 Node
    电脑上的版本太老了。删除重新下载安装https://nodejs.org/en/download/prebuilt-installer由于使用安装包的形式安装的,所以网上的卸载命令不起作用。直接通过命令删除:#删除Node、npmjimmy@MacBook-Pronpm%sudorm-rf/usr/local/{bin/{node,npm},lib/node_modules/npm......
  • delphi 三层源码框架
    一,框架简介1,本套源码主要是用来开发企业应用系统如:erp,mes,hrms,进销存等制造业内部应用系统;跟网上常见的delphi中间件相比,功能更丰富,开发便捷。若用来开发一些几千上万的高并发,垮平台,实时高效的系统,可能需要自己优化下代码。(交流微信173713873)2,此框架服务端没有使用任何第三......
  • Xperia 1iii 日版 免root 卸载系统程序
    一、开启开发者选项自行百度不再赘述二、安装adb并且配置到环境变量中自行百度不再赘述三、执行批处理文件新建一个bat文件把下面的内容复制进去然后双击执行。每一行代码会删除一个程序@echooffadbshellpmuninstall-k--user0jp.co.nttdocomo.lcsappadbshell......
  • 卷积神经网路的原理及Python实现
    卷积神经网络(ConvolutionalNeuralNetworks)是一种深度学习模型或类似于人工神经网络的多层感知器,常用来分析视觉图像。卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种在计算机视觉领域取得了巨大成功的深度学习模型,该算法的灵感来自于人脑的一部分,即视觉皮层。视觉皮层是人......
  • 基于Android Room的三层架构设计与实现
    摘要本文探讨了在Android应用中实现三层架构的设计思路与具体实现,采用Kotlin语言及AndroidStudio开发工具。通过对Room数据库的集成,展示了数据层、业务层和表现层的详细代码和实现原理。本文旨在为开发者提供一个清晰的参考示例,以便在实际开发中高效地构建可维护、扩展性强的应......
  • 基于Android Room的三层架构设计与实现
    题目:基于AndroidRoom的三层架构设计与实现摘要本文探讨了在Android应用中实现三层架构的设计思路与具体实现,采用Kotlin语言及AndroidStudio开发工具。通过对Room数据库的集成,展示了数据层、业务层和表现层的详细代码和实现原理。本文旨在为开发者提供一个清晰的参考示例,以......
  • Linux安装卸载MySQL
    大家好,我是Java陈序员。今天,给大家分享下在Linux环境中如何安装卸载MySQL.关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。MySQL安装准备一台Linux服务器下载Linux版MySQL安装包下载地址:https://downloads.m......
  • Centos7.9安装卸载Docker
    目录1、官网安装1.1、卸载旧版本Docker1.2、通过rpm仓库安装1.2.1、设置仓库1.2.2、安装DockerEngine1.2.3、启动Docker1.2.4、验证安装1.3、通过rpm软件包安装1.4、通过便捷脚本安装2、yum安装2.1、安装docker-ce以及客户端2.2、启动docker2.3、配置镜像加速3、卸载Docker3.1、......
  • Mysql数据库安装卸载(windows)
    MySQL数据库环境准备MySQL下载、安装、配置、卸载、安装DBMS、使用DBMSMySQL版本及下载MySQL是Oracle的免费的关系型数据库,官网https://www.mysql.com/MySQL8.x新特性性能比5.7快支持NoSQL存储:5.7版本开始提供对NoSQL的支持,8.0.x作了改进窗口函数(新的查询方式)索引......
  • 已卸载Tuxera NTFS for Mac后仍在ntfs磁盘插入后仍有提示
    “Microsoft NTFS by Tuxeracouldnotvalidateyourproductkey.PleasecontactTuxera'semailsupportforhelp.”我之前安装过MicrosoftNTFS但是过期了,我就给它卸载了,但是每次插入u盘还是会弹出上面一行内容的提示框。于是我找到这个朋友发的[文章](https://zhuanla......