ALG和STUN

news2024/10/3 10:33:22

 

目录

 ALG 应用层网关讲解

Client1使用FTP主动模式建立FTP

Client1使用FTP被动模式建立FTP

STUN讲解


ALG 应用层网关讲解

用来替换应用层信息

Client1使用FTP主动模式建立FTP

主动模式:服务器收到客户端发来的请求FTP的地址和端口

          服务器使用20端口直接向客户端建立FTP连接

如果没有开启ALG,使用Client1访问Server1(主动模式)

Client1告诉服务器自己的地址,服务器主动建立连接,此时连接建立失败

 

此时开启ALG,使用Client1访问Server1(主动模式)

AR1系统视图:nat alg all enable

Client1使用FTP被动模式建立FTP

被动模式:服务器告知客户端自己开启的FTP数据通道的IP地址和端口

然后由客户端主动向服务器发起连接

如果没有开启ALG,使用Client1访问Server1(被动模式)

服务器发给客户端的FTP数据通道的IP地址和端口是私网的,客户端访问不到

 

此时开启ALG,使用Client1访问Server1(被动模式)

AR2系统视图下:nat alg all enable

STUN讲解

NAT ALG的缺陷

NAT ALG需要读取协议报文内容,对于新的协议或者私有的协议,NAT ALG基本不支持,需要升级NAT ALG特性

此时就提出了STUN(NAT会话穿越应用程序)

NAT过滤方式

endpoint-dependent                      Port -Restricted Cone NAT(端口限制圆锥型)

与外部地址相关、端口无关的NAT过滤方式

endpoint-independent                     Full Cone NAT(完全圆锥型)

与外部地址和端口都无关的NAT过滤方式

endpoint-and-port-dependent       Restricted Cone NAT(限制圆锥型)

与外部地址和端口都有关的NAT过滤方式(缺省

 

STUN如何实现

需要在NAT设备修改NAT过滤方式

通过STUN客户端和STUN服务端之间的报文交互,发现NAT设备的存在

 

确定NAT设备对某个私网所做转换后的IP地址和端口号

然后在设备经过Stun客户端时,就将其转后后的公网IP地址和端口填写入报文中

注意事项

绑定请求和绑定响应的信息如果不一样表示经过了NAT设备,一样表示没有经过NAT设备

STUN典型组网

STUN客户端一般部署在Edge站点,发送绑定请求和接收绑定响应

STUN客户端与STUN服务器进行报文交互后,发现NAT设备,然后STUN客户端之间建立好数据通道,此时站点之间就可以成功建立Overlay隧道

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

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

相关文章

webpack dll 提升构建速度

DLL,动态链接库(Dynamic Link Library 或者 Dynamic-link Library),由微软公司提出。目的是为了节约应用程序所需的磁盘和内存空间。 在一个传统的非共享库中,如果两个程序调用同一个子程序,就会出现两份那…

Redis-6集群

文章目录前言Redis集群原理搭建Redis集群集群拓展后记前言 前两期介绍和搭建了Redis的主从复制架构和哨兵模式,虽然哨兵模式能够实现自动故障转移主备切换,一定程度上提高了系统的容错性 但这两种架构模式都不能解决单节点的并发压力和物理上线的问题&…

行测-判断推理-图形推理-样式规律-空间重构-立体拼合

有凸必有凹,排除A CD显然不对选BA和4能组成长方体B和3能组成长方体C和1能组成长方体选D这两个东西应该在同一侧,排除A C中间应该要由凸起,排除D选B图1向左旋转90图2逆时针旋转90选A

内网环境解决SSL证书问题

本来这个没什么好写的,但是坑实在有点多,不得不写个文章记录下来。 创建证书看这里!!! 很多知识点要结合这个页面内容来看。 创建证书已经看过相关文章,然后用unity跑的时候发现连不上,完全没…

【Go】基于VS Code配置Go语言环境

教程 1. 安装go环境 打开官网:https://go.dev/dl/,找到对应系统的环境文件。 安装完成后软件会自动把路径添加到环境变量,可以在命令行中检验一下 2. 在VS Code中安装必要的插件 这一步我理解的就是提供语法高亮和代码提示 3. 打开一个路…

基于智能边缘和云计算的数字经济服务细粒度任务调度机制

数字经济被各国视为推动经济增长的必然选择,为经济高质量发展提供了新机遇、新路径。对于中国市场而言,云计算背后的强大基础是数字经济不可阻挡的发展趋势。在数字经济中,云作为基础设施成为构建数字经济金字塔的基础。为缓解数字经济服务器…

Windows下实现Linux内核的Python开发(WSL2+Conda+Pycharm)

许多软件可以通过Python交互,但没有开发Windows版本,这个时候装双系统或虚拟机都很不方便,可以采取WSL2CondaPycharm的策略来进行基于Linux内核的Python开发。启动WSL2,安装Linux内核教程:旧版 WSL 的手动安装步骤 | M…

交并比(IOU)的计算方法

交并比(IOU, Intersetion Over Union),意思就是交集和并集的比值,用来评价两个几何图形的面积重合度,在目标检测算法模型中,通常被用来计算预测框与真实框的误差(损失函数)或者在非极大值抑制&a…

便捷式储能电源核心技术--单相逆变器设计

便捷式储能电源核心技术–单相逆变器设计 1.逆变器的规格参数 输入电压直流400V输出电压交流rms220V开关频率10kHz滤波电容6.23uF控制方式单极性倍频2.视频学习链接 视频学习链接 3.主电路仿真设计

日志服务搭建-ES-FileBeat-Kibana

1次订单量突增问题,导致了有几个数据没有录库,但是确有支付的记录,啥玩意,还能有这个操作,组内安排问题定位,解决,一看打出来的日志,只有支付有,生成订单这边没有&#x…

读书笔记-终身学习

前言人需要终身成长,也需要终身学习,以下是记录个人读书学习的笔记总结,希望能给大家一点借鉴,仅供参考。笔记1、《匠人精神》秋山利辉是日本神奈川县横滨市都筑区“秋山木工”的经营者,从事订制家具制作业务。是一家小…

Pinia不酸,保甜

为什么是Pinia 怎么说呢,其实在过往的大部分项目里面,我并没有引入过状态管理相关的库来维护状态。因为大部分的业务项目相对来说比较独立,哪怕自身功能复杂的时候,可能也仅仅是通过技术栈自身的提供的状态管理能力来处理业务场景…

使用Git Hook技术定义和校验代码提交模板

1.背景 使用Git做项目的版本控制时,在版本系统中会有很多的代码的提交记录,我们使用git log命令就会得到如下图中的提交记录: 当我们的项目比较简单,规模较小、开发人员也只有一两个的时候,其实可以不用定义代码的提…

HTML,JavaScript,JQuery合集

表单 <!DOCTYPE html> <html> <head><meta name"author" content"Yeeku.H.Lee(CrazyIt.org)" /><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title> 访问表单控件 <…

cli 开发工具 - NodeJS、Borwser 中制作漂亮的炫彩控制台

cli 界面制作、颜色计算工具 - JC Color 帮你在 NodeJS、Borwser 中制作漂亮的炫彩控制台 homepage&#xff1a;http://thispage.tech:9680/jclee1995/jc-color github&#xff1a;https://github.com/jacklee1995/jc-color npm&#xff1a;https://www.npmjs.com/package/jc-c…

2023年场外个股期权研究报告

第一章 概况 场外个股期权&#xff08;Over-the-Counter Equity Option&#xff09;&#xff0c;是指由交易双方根据自己的需求和意愿&#xff0c;通过协商确定行权价格、行权日期等条款的股票期权。与交易所交易的标准化期权不同&#xff0c;场外个股期权的合同内容可以根据交…

轻松学会css变量

css变量太无敌啦css变量是啥&#xff1f;css变量的语法css变量的使用场景主体切换响应式设计统一风格动态效果展示一下css变量是啥&#xff1f; CSS变量是一种用于存储和重复使用值的方法。它们可以在选择器中声明&#xff0c;并在整个样式表中使用。使用CSS变量可以提高代码的…

Kettle工具通过JNDI连接Oracle集群

我们在用Kettle ETL工具的时候&#xff0c;可能会遇到数据库为Oracle集群的模式&#xff0c;或者有时候目标库为oracle&#xff0c;在持续的循环调度中&#xff0c;经常发现oracle的数据库连接中断的情况&#xff0c;此时&#xff0c;在Kettle中有一个JNDI的连接方式能很好的解…

【LeetCode每日一题】——376.摆动序列

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【题目进阶】九【时间频度】十【代码实现】十一【提交结果】一【题目类别】 贪心算法 二【题目难度】 中等 三【题目编号】 376.摆动序列 四【题目描述】…

数据结构(八)排序

一、排序的概念以及引用概念排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;…