NAT、V*N、隧道技术

  • 一、NAT介绍
    • 私有IP地址
    • NAT技术
    • NAT存在的问题与NAPT的提出
  • 二、V*N介绍
    • V*N使用技术
      • 隧道技术
  • NAT和V*N的区分

一、NAT介绍

Network Address Translation,NAT,网络地址转换

私有IP地址

IPv4的地址危机,地址有限,所以划了一些私有地址/专用地址供机构内网使用,这些地址只能和机构内部主机通信,不能和公网上的其他主机通信。

NAT技术

虽然私有地址的提出解决了地址短缺问题,但是分配的私有地址并不能直接与公网IP进行通信,因此这时候就需要用到NAT技术,即将私有地址转换成公网IP地址,通过转换后的IP与其他公网IP进行通信。使用NAT技术需要在专用网连接到互联网的路由器上安装NAT软件,安装了NAT软件的路由器称为NAT路由器。

可以看到NAT技术打破了互联网的连通性,隐藏了专用网IP的真实地址。随着IPv6的推进,不再存在IP地址短缺的问题,NAT技术也将没有使用场景。

NAT存在的问题与NAPT的提出

NAT只能实现专用网主机向公网主机传送数据的单向通信,因为当公网主机向专用网主机发送数据包时,在数据达到NAT路由器时,不知道该将路由器接口的公网IP转换成哪个私有IP。简单的来说,私有IP到NAT路由器的公网IP是一个多对一的映射。

为了实现专用网主机和公网主机的双向通信,NAPT(Network Address and Port Translation)技术被提出。简单地来说,要实现公网主机到专用网主机的通信,需要建立公网IP到各个私有IP的映射。相比NAT,NAPT在建立映射关系的过程中加入了运输层端口(port)的概念,采用端口作为映射的标签,解决了NAT的问题。需要说明的是,NAT路由器转发出去的数据包的源端口是路由器生成的NAT端口,并不是内部主机发过来的内部端口(因为两台主机的端口可能一样),如果再有两台内部主机同时访问百度网站,NAT根据响应包的目的端口(注意这里是NAT端口),并查询地址转换表,即可将响应组装成内部IP数据报,并转发到正确的主机。

二、V*N介绍

Virtual Private Network, 虚拟专用网络
Virtual:虚拟的,在计算机网络的相关名词中,Virtual很常见,Virtual Local Network(VLAN),又如虚拟端口,在trunk link等中都有广泛应用。我个人理解的虚拟也即逻辑上的概念,并非物理存在,而是建立在物理连接上的虚拟、逻辑概念。因此,虚拟专用网络没有自己的物理专线,而是建立在已有公网上的逻辑概念上的网络。
Private:私人的,专用的,是为某些机构提供的仅供其内部通信使用的专用网络,这个词决定了该种网络需要具有保密性
通过对以上两个名词的解释,我想读者大概可以窥见该网络的形式和提出意义:虚拟专用网络,即利用公共网络(如 Internet)来构建的专用网络技术,保证了VPN中任何两台计算机之间的通信对外界是隐藏的。

V*N使用技术

上面提到了V*N有两大特点:

  1. 虚拟
  2. 专用、私密

这两大特点也决定了其所使用的技术:

  1. 隧道传输
  2. 加密技术

隧道技术

隧道技术将数据进行封装成新的包后传送出去,达到目的地之后再进行解包,利用隧道技术可以在公网上搭建一条逻辑路径,实现逻辑上直通的点对点链路。
隧道是由隧道协议建立的,常见的隧道协议分为二层协议和三层协议。第二层隧道协议是先把各种网络协议封装到PPP中,再把整个数据包装入其中。第三层隧道协议是把各种网络协议直接装入隧道协议中,形成的数据包依靠第三层协议进行传输。

除了构建虚拟专用网络,采用隧道技术还可以传输不同协议的数据帧或包。

以GRE为例,要了解其工作原理,请想像一下汽车和渡轮之间的区别。汽车在陆地上行驶,而渡轮在水上行驶。汽车通常不能在水上行驶,但是可以将汽车装载到渡轮上。在这个类比当中,地形类型好比是支持某些路由协议的网络,而车辆则好比是数据包。GRE 是一种将一种类型的数据包装载到另一种类型的数据包中的方式,以便第一个数据包可以穿越它通常无法穿越的网络,就像一种类型的运输工具(汽车)被装载到到另一种类型的运输工具(渡轮)上,以便穿越原本无法行驶的地形。例如,假设一家公司需要在位于两个不同办公室的局域网(LAN)之间建立连接。两个 LAN 都使用最新版本的 互联网协议 IPv6。但是,为了从一个办公网络到达另一个办公网络,流量必须通过一个由第三方管理的网络 — 该网络有些过时,仅支持较旧的 IPv4 协议。借助 GRE,该公司可以将 IPv6 数据包封装在 IPv4 数据包中,然后便可通过此网络传输流量。回到那个类比,IPv6 数据包是汽车,IPv4 数据包是渡轮,而第三方网络则是水。

使用GRE还可以克服IGP协议的一些局限性。

例如,RIP路由协议是一种距离矢量路由协议,最大跳数为15。如果网络直径超过15,设备将无法通信。这种情况下,可以使用GRE技术在两个网络节点之间搭建隧道,隐藏它们之间的跳数,扩大网络的工作范围。

常见的隧道协议有:
IP in IP (Protocol 4): IP in IPv4/IPv6
SIT/IPv6 (Protocol 41): IPv6 in IPv4/IPv6
GRE (Protocol 47): Generic Routing Encapsulation (通用路由协议)
GRE仅进行封装,没有加密功能
https://blog.csdn.net/taozpwater/article/details/9774123?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-9774123-blog-124812126.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-9774123-blog-124812126.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=1
OpenVN (UDP port 1194): Openvn
SSTP (TCP port 443): Secure Socket Tunneling Protocol
IPSec (Protocol 50 and 51):Internet Protocol Security
L2TP (Protocol 115): Layer 2 Tunneling Protocol
VXLAN (UDP port 4789): Virtual Extensible Local Area Network.

基于底层的PPP(点对点传输协议)来实现建立专属网络的功能。过程大概是这个样子的

vpn client利用PPTP在系统内建立一个虚拟网卡
计算机网络通讯客户端(例如:浏览器,微信什么的)借用系统接口将需要发送的数据封装成IP包,源地址为虚拟网卡地址。目标地址为期望访问的地址,比如说google.com。
虚拟网卡拿到IP包之后,PPTP驱动会按照PPP协议对IP包的完整内容包装到payload里面(这就是隧道技术)用一层新的IP头包裹,并将这个新包的目标地址设置为VPNServer。
VPNserver收到这个包之后将payload内容拿出来,并按照IP协议再解析一边,拿到原始的目标地址,代为发送到google.com
收到google的回复,server将数据封装到IP包里面,再按照PPP协议分装,添加新的IP头发送到原始的虚拟网卡。
虚拟网卡将数据交由客户端处理

MPLS 也类似一种隧道技术,LDP(标签分发协议)就是其对应的隧道协议。

NAT和V*N的区分

可以发现VPN协议和NAT协议都是通过重新构建一个IP首部来实现的,但他们的实现又有区别,VPN是将内部IP数据报加密后打包成外部IP数据报的数据部分,它的主要目的是为了数据的保密性,而NAT是纯进行地址转换,它的目的是为了解决本地编址的内部网络与外网通信的问题。

NAT、V*N、隧道技术相关推荐

  1. 第三章 隐藏通信隧道技术

    第三章 隐藏通信隧道技术 3.1 隐藏通信隧道基础知识 3.1.1 隐藏通信隧道概述 什么是隧道? 在实际的网络中,通常会通过各种边界设备.软/硬件防火墙甚至入侵检测系统来检查对外连接情况,如果发现异 ...

  2. 内网渗透测试:隐藏通讯隧道技术(上)

    什么是隧道? 在实际的网络中,通常会通过各种边界设备.软/硬件防火墙甚至入侵检测系统来检查对外连接情况,如果发现异样,就会对通信进行阻断.那么什么是隧道呢?这里的隧道,就是一种绕过端口屏蔽的通信方式. ...

  3. 反弹端口 HTTP代理 HTTP隧道技术

    现在,很多木马都利用了"反弹端口原理"与"HTTP隧道技术",它的服务端(被控制端)会主动连接客户端(控制 端),因此,在互联网上可以访问到局域网里通过NAT代 ...

  4. 【内网安全】域横向网络传输应用层隧道技术

    必备知识点: 1.代理和隧道技术区别? 代理只是为了解决网络通信问题,有些内网访问不到,可以用代理实现 隧道不仅是解决网络的通信问题,同时更大的作用是被防火墙甚至入侵检测系统进行拦截的东西的突破. 2 ...

  5. HTTP代理原理以及HTTP隧道技术

    通过HTTP协议与代理服务器建立连接,协议信令中包含要连接到的远程主机的IP和端口号,如果有需要身份验证的话还需要加上授权信息,服务器收到信令后首先进行身份验证,通过后便与远程主机建立连接,连接成功之 ...

  6. linux ip隧道技术,linux之IP隧道配置

    本文系统Centos6.0 在这里我就不讲什么隧道.IP隧道技术了:lvs的三种模式也不说了 我这里隧道说白了就是不同机房,不同公网IP,怎么让他们实现局域网的效果,配置同一网段的私网IP:可以实现互 ...

  7. [转]数据中心网络虚拟化 隧道技术

    http://www.sdnlab.com/12077.html SDNLAB 如何实现不同租户和应用间的地址空间和数据流量的隔离是实现数据中心网络虚拟化首先需要解决的几个问题之一.所谓地址空间的隔离 ...

  8. IPv6隧道技术基础知识

    随着IPv4地址的枯竭,IPv6投入应用是必然的.但是全球大部分网络都还在使用IPv4,所以IPv6到IPv4的过渡必定是渐进的,这是一个相对缓慢的过程,这时就需要使用IPv6隧道技术使IPv4网络与 ...

  9. 图解再谈ssh port forwarding-ssh隧道技术

    https://www.ramkitech.com/2012/04/how-to-do-ssh-tunneling-port-forwarding.html https://www.cnblogs.c ...

最新文章

  1. SystemCenter2012SP1实践(15)共享库服务器和ISO
  2. 语义分割--Understanding Convolution for Semantic Segmentation
  3. js解析二维码_最新最全阿里巴巴,今日头条,腾讯Flutter面试真题全解析(狂虐不止)...
  4. ACM训练计划建议(转)
  5. 【转载】Nessus安全测试插件编写教程
  6. java画虚线_在java中绘制虚线
  7. oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型
  8. android编译的错误日志,android编译遇到错误
  9. ubuntu + usb转RS232驱动
  10. 《Java设计模式》刘伟 超清晰版本 下载链接
  11. 安装Editplus软件
  12. 蓝牙定位在各行业领域中的应用及蓝牙定位原理浅析-新导智能
  13. 【学习笔记】统计学入门(6/7)——参数估计与可信区间
  14. 单点登录(SSO)服务
  15. Eclipse使用入门
  16. 用python解密百度指数数据
  17. android adc,Android配置ADC接口
  18. html5 语音导航,TeleNav提供基于HTML5技术的浏览器级turn-by-turn语音导航服务
  19. P1100高低位交换
  20. ubuntu16.04安装qq

热门文章

  1. Android——天气预报(酷欧天气)(第二篇)
  2. 宝塔部署开源云盘Cloudreve
  3. 3DCAT实时渲染云在虚拟展会中的应用
  4. 如何新建git本地厂库
  5. 【POJ 1723】SOLDIERS(排序、中位数)
  6. 豆瓣电台接口中频道(channel)参数的对应表
  7. java metrics 简书_Metrics Server 安装
  8. FPGA通信第三篇--TCP
  9. arc hdmi 接线图_HDMI ARC接口和其他的有什么不同?
  10. 【光电设计大赛】非接触酒精浓度测量中放大器和ADC模块误差分析