zoukankan      html  css  js  c++  java
  • IPSec和UDP 4500端口的关系

    背景:

    在IPv4的网络中,IP地址是紧缺资源,为了能让用户上网,我们往往要使用PAT(Port Address Translation)端口地址转换技术(也称为端口多路复用技术)。这种技术可以使用一个IP地址被多个会话所复用。与NAT(Network Address Ttanslation)技术只对IP地址做转换不同,PAT技术为了区分源自于不同主机的会话,不仅仅转换源IP地址,而且还会转换这次会话的源端口,把它转换成为一个未被使用的大于1023的端口号。从互联网返回的数据包,通过不同的目的端口号来区分不同的会话。实现一个地址的多会话复用。

    有鉴于此,IPSec VPN通道的中间如果经过了PAT转换就会产生问题。

    实验环境搭建:

    本实验一共需要使用2台路由器,1台防火墙。由左到右分别模拟公司中心节点出口路由器(site1)、互联网防火墙(PATdevice)和公司分支节点出口路由器(site2)。其中site1的环回口(loopback0)模拟公司中心节点内部网络,site2的环回口(loopback0)模拟公司分支节点内部网络。IP地址规划如图所示。   

    该拓扑是一个lan-to-lan全网接入的VPN拓扑,site1和site2是本次IPSec VPN实验的加密设备。site2位于PATdevice内部,使用的是私有网络地址。为了能使site2访问互联网,并且与site1建立IPSec VPN,我们在PATdevice上配置了PAT地址转换,把内部192.168.1.0/24网络PAT转换到PATdevice的E0口地址(100.100.100.2/24)。

    加密的感兴趣的分别为site1身后的10.10.10.0/24网络和site2身后的10.10.20.0/24网络之间的流量。

    实验结果:

    隧道两端可以正常通信

    实验分析:

    PAT不仅仅要转换源IP地址,还要转换传输层(四层)源端口号。IPSec VPN用的ESP是一个三层技术,没有传输层头部,自然也就没有传输层端口号。那么按照这个原理推理下来此VPN隧道应该不能建立成功才对,可是实验为什么可以通信呢?

     原因就在于中间的PAT设备开启了NAT-T技术!

    NAT-T技术介绍:

    NAT-T技术解决问题的思路其实很简单。如下图所示,这项技术在原ESP头部和外层IP头部之间,插入了一个UDP/4500的头部。使得PAT设备按照处理一个普通UDP数据包的方式对它进行处理。有个NAT-T技术的协助,ESP数据包就能够穿越PAT设备了。

    注: 默认情况下主流的一些的防火墙和路由器都自动开启了NAT-T功能

    提示:有运营骨干网安全设备的小伙伴一定要注意了,一定要记得放行UDP的4500端口哦,万一两端有人建立有穿越PAT的IPSec VPN呢。

  • 相关阅读:
    【JAVA SE基础篇】28.面向对象三大特征之多态
    【JAVA SE基础篇】27.面向对象三大特征之封装
    【JAVA SE基础篇】26.toString()方法和equlas()方法
    【JAVA SE基础篇】25.面向对象三大特征之继承
    【JAVA SE基础篇】24.包的机制和import详解
    ssh框架文件上传下载
    java格式化时间格式
    表单提交后打印后台传过来的数据
    使用ajaxfileupload.js实现文件上传
    JSTL跳出<c:forEach>循环
  • 原文地址:https://www.cnblogs.com/baihualin/p/12023223.html
Copyright © 2011-2022 走看看