ALG和STUN

news/2024/11/8 21:06:09/

 

目录

 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.ppmy.cn/news/31155.html

相关文章

LearnOpenGL-光照-1.颜色

本人刚学OpenGL不久且自学,文中定有代码、术语等错误,欢迎指正 我写的项目地址:https://github.com/liujianjie/LearnOpenGLProject 文章目录颜色OpenGL代码例子颜色 物体颜色简介 我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有…

第十四届蓝桥杯第三期模拟赛 C/C++ B组 原题与详解

文章目录 一、填空题 1、1 找最小全字母十六进制数 1、1、1 题目描述 1、1、2 题解关键思路与解答 1、2 给列命名 1、2、1 题目描述 1、2、2 题解关键思路与解答 1、3 日期相等 1、3、1 题目描述 1、3、2 题解关键思路与解答 1、4 乘积方案数 1、4、1 题目描述 1、4、2 题解关…

Spring的@Conditional注解

前言Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。Conditional的源码定义://此注解可以标注在类和方法上 Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTI…

【模板进阶】

目录 1. 非类型模板参数 2. 模板的特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 3 模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译 4. 模板总结 有需要的老哥可以先看看模板的介绍:http://t.csdn.cn/2TkUYhttp://t.csdn.cn/2TkUY 1. …

嵌入式学习笔记——寄存器实现控制LED小灯

文章目录前言GPIO通用输出模式初始化LED小灯的GPIO原理图初始化代码初始化的效果功能函数封装直接分开宏定义两个使用条件运算符封装函数实现简单的功能前言 上一篇中,介绍了GPIO相关的所有寄存器,并在最后简单实现了一个LED灯的控制,由于那…

JDBC连接执行SQL

JDBC [Java DataBase Connectivity] JAVA数据库连接JDBC是SUN提供的一套API接口,使用JAVA连接数据库的一套标准接口。各个数据库提供上都提供了一套JDBC的实现类用于连接自家的DBMS。而提供的这一套实现类也称为连接该DBMS的驱动(Driver)1:要加载需要操作的DBMS厂商…

kube-ipam配置和使用说明

Kube-ipam基于etcd分布式存储实现kubernetes动态IP网络分配管理,确保集群中IP地址的唯一性。Kube-ipam支持给kubernetes集群中的Pod固定IP地址,同时支持resolv.conf的DNS配置。 1. 概述 一些场景往往对IP地址有依赖,需要使用固定IP地址的Po…

JVM调优面试题——垃圾回收专题

文章目录1、如何确定一个对象是垃圾?1.1、引用计数法1.2、可达性分析2、对象被判定为不可达对象之后就“死”了吗?3、都有哪些垃圾收集算法?3.1、 标记-清除(Mark-Sweep)3.2、标记-复制(Mark-Copying)3.3、标记-整理(Mark-Compact)3.4、分代收…