软件定义网络中的网络流量控制

2024-04-12 15:44

本文主要是介绍软件定义网络中的网络流量控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

软件定义网络(SDN)是一种网络范例,它支持一种新的方法来构建网络基础设施,其主要概念是基于集中控制平面和分布式转发平面的分离,其中整个网络及其设备通过使用开放API的软件应用程序进行集中控制和管理。SDN使网络虚拟化成为可能,并提供整个网络拓扑的全局概览。这与软件控制的应用程序或API的功能相结合,形成了一个集成的网络管理配置文件的基础,有助于引导流量或与底层硬件通信。

网络流量控制的任务是定义应用程序流量在网络中可以采用的不同路径,作为网络流量控制的一个固有部分,它涉及管理、控制或减少网络上的流量,网络管理员使用它来解决网络中的拥塞、延迟和数据包丢失等问题。

传统网络使用固定功能硬件进行网络流量控制(例如交换机、路由器等),这些设备每一个都单独运行,并相互支持,共同构成网络的基础,然而,在不断扩展的业务场景中,传统网络面临着缺乏可扩展性和需要实现现代安全功能的重大挫折。

在传统网络中,控制平面的物理位置限制了管理员对流量进行管理和控制的能力。SDN通过虚拟化技术将控制平面从物理硬件实体转变为软件实体,使得控制平面可以通过连接的设备和集中的Ul进行访问,从而为网络管理员提供更大的控制能力,有效地引导流量。

网络流量控制的需求是什么

传统网络采用基于物理IP路由器的分布式路由机制进行流量路由,典型的路径选择包括一个路由器,它通过尝试找到源节点和目的节点之间的最短路径来选择输出接口。有许多算法使用各种网络度量来估计或评估路径的成本,在路由协议的实现中广泛使用的最短路径算法使用静态度量,如跳数或权重之和。这种基于简单的静态指标选择最短路径的方法通常会导致对网络资源的低效使用。

此外,由静态最短路径路由引起的问题可能会使整个网络成为瓶颈。举例来说,当发生故障时,路由器会寻找一条新的最短路径作为传输流量的媒介,当找到这样一条路径时,从断裂路径的总流量会转移到新定义的路径上,这种流量路由导致新设置的路径拥塞,而源和目的之间的旧路径没有得到充分利用。

构建网络基础设施的SDN方法包括部署中间件,这些中间件用于各种目的,可以转换、检查、过滤和操作流量,主要侧重于提高性能、安全性和可见性。这些中间件涵盖了各种复杂程度不同的功能,包括负载平衡、网络地址转换(NAT)、协议转换、广域网优化、入侵检测、防火墙、应用程序级网关、缓存、代理、内容交付网络(CDN)等。

基于最短路径的从源到目的地的流的简单路由已经被必须通过这些中间框的策略感知路径所取代,单独的控制平面和转发平面的SDN架构通过使用网络流量控制,在这些网络设备之间强制基于策略的路由,流量控制允许运营商通过在必要时和在必要时引导流量来保持整个网络的最佳资源利用率。

:这种复杂的路由架构是软件定义网络的主要驱动力之一。

网络流量控制策略

流量控制策略是一个框架,用于定义给定网络区域的流量管理行为,这些策略有助于配置为DNS请求提供服务的规则,提供故障转移功能,跨多个资源对流量进行负载均衡,并提供简单、灵活且强大的引导机制来引导网络流量。控制策略有五种类型:

  • 负载平衡器:这些策略允许在多个端点之间分配流量,流量可以在这些端点上均匀分配,或者可以为比率负载平衡分配权重。
  • 故障转移:这些策略通过在发生故障时配置主资产和辅助资产之间的流量移动来提供端点故障转移管理。
  • 地理位置:这些策略用于根据查询的地理来源动态地将网络流量引导不同的端点。
  • ASN:使用ASN引导策略,可以根据原始 ASN 将网络流量引导到特定端点。
  • IP前缀:这些策略基于原始查询的IP地址前缀启用网络流量控制。

在这里插入图片描述

网络流量控制方案

流量控制是在多个级别和不同的功能上实现的,下面列出了使用它的一些方案:

  • 基本故障转移
  • 负载均衡
  • Canary测试
  • 零费率服务

基本故障转移

考虑到目前部署的混合网络的广泛情况,始终存在网络故障和性能瓶颈的风险。由于可以使用各种设备和网络基础设施,管理员需要密切关注这些设备的可用性和性能。基于策略的流量控制可用于配置服务器、防火墙、接入点和其他中间设备的故障转移点,以确保在主要端点出现故障时,始终有一个辅助端点接收流量,从而保持最佳的网络健康。

负载均衡

可以使用网络流量控制策略配置多台服务器的池,自动将网络流量分配到服务器集上。此外,可以使用运行状况检查来确定服务器运行状况,如果发现服务器运行状况不佳,则可以将流量自动重定向到运行状况良好的服务器,有助于实现高效的资源管理,从而保持最佳的整体网络性能。

Canary测试

Canary测试是在生产环境中与实时用户一起测试新软件版本或功能的过程。它涉及到将新的代码部分发布给一小部分用户,这些用户单独验证代码,以免影响实时用户。

如果新应用程序或版本部署在与旧服务器不同的服务器上,则可以有选择地将网络流量路由到新地址,以收集使用统计数据、用户体验和功能反馈、产品或功能改进建议等。

如果新应用程序托管在同一台服务器上,则可以利用IP前缀控制的功能来配置路由策略,从而为内部和外部用户提供不同的响应。

零费率服务

可以实施有条件的控制,以根据原始源、网络媒介和通信提供商来分流流量,以支持可能存在的各种策略。在这种情况下,ASN控制用于将特定ASN定向到免费资源,同时将其他ASN定向到付费资源。

NetFlow Analyzer 带宽和网络流量管理以及网络流量控制工具,它利用流量技术来监控网络流量,可以有效地监控网络中的每一个流量和活动,帮助管理员获得获得带宽控制所需的可见性。除了监控带宽和网络流量外,还会分析这些信息,以识别流量模式、主要应用程序和带宽占用。

这篇关于软件定义网络中的网络流量控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/897559

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹