华为HCIE课堂笔记第十七章 广域网互联技术

第十七章 广域网互联技术

17.1 GRE VPN

GRE VPN用于分支与分支通过私网地址互联,通过在私网报文上添加一个GRE的头部,以及添加一层外层的IP头部,通过外层头部中的目IP地址使得报文到达隧道对端接口,并解封装得到原始的私网报文。隧道的两个源目IP地址就相当于是形成了一个隧道。

17.1.1 报文格式

格式:外层的帧头+外层IP头部+GRE头部+内层的IP头部+载荷部分

外层帧头:由报文外层目的IP地址及查找路由的下一跳决定。

外层IP头部:Tunnel接口中配置的隧道远端IP地址和隧道目的端IP地址决定

GRE头部:

  1. 1、C bit位:如果置1,表示该头部中携带校验和字段(可变字段),置0不携带
  2. 2、K bit位:如果置1,表示该头部中携带Key字段(主要是用于隧道通信时进行隧道合法性验证),置0不携带。
  1. Recursion:该字段表示报文经过了几层GRE的封装,防止报文进行无限次数封装。GRE头部最多3层,设备收到超过3层GRE的封装的报文,则丢弃。
  2. Protocol type字段:乘客协议,是指GRE报文内部中封装的私网报文是何种协议。

私网IP头部:源目IP地址是互访的两条私网设备自身地址。

GRE隧道是承载3层数据通信的L3VPN,支持广播、组播、单播、因此该隧道中可以传递动态路由协议,可以承载IPv4和IPv6报文。

17.1.2 GRE功能

1、Keepalive机制

GRE默认不开启Keepalive 机制,手动开启后,设备将按照默认5s的周期发送Keepalive报文给隧道对端的接口,如果重传3次,对端仍为未回复Keepalive报文,则认为隧道Down。

2、校验和机制

GRE头部中Cbit位置1,表示携带校验和字段,校验和根据载荷部分报文hash计算得来,一起发送给对端,对端收到报文之后,对载荷部分重新按照相同算法再进行一次校验,得出校验值与报文GRE头部中的校验和进行比较,相同则接受,不同则丢弃。

  1. Key功能

GRE隧道两端设备都隧道接口都设置相同的关键字(key),收发报文关键字必须一致,否则就丢弃报文。Kbit位置1,携带Key字段。

  1. 动态路由:支持IGP协议直接通过隧道学习分支路由表
    1. 在私网的IGP中通告GRE Tunnel接口的本身的IP地址,但是不同通告隧道的源地址。
    2. 如果通告了隧道的源地址(公网地址),公网地址也通过隧道封装,会导致报文重复进行GRE封装,而封装失败。(隧道接口网络层协议平繁的up和down)
  2. 应用场景:MPLS VPN 中CE设备和PE设备非直连,通过GRE隧道在CE和PE之间建立GRE VPN,PE上创建实例在Tunnel 接口下绑定。

17.2 L2TP VPN

  1. 概念:
    1. NAS:网络接入服务器,连接的终端的拨号网络(也是LAC)
    2. LAC:网络接入客户端,发起L2TP连接的设置(一般为出差员工的终端设备)
    3. LNS:L2TP网络服务器,与LAC是一对,接收L2TP的连接请求的服务器。(一般总部的出口设备)
  2. 组网模型:三种,常用远程办公连接
    1. 远程办公设备作为LAC直接向LNS进行拨号
    2. 分支的出口设备作为LAC向总部LNS进行拨号
    3. 分支的终端设备通过PPPoE向ISP的NAS进行拨号,NAS作为LAC向总部的LNS进行L2TP拨号连接。
  3. 消息类型:控制消息和数据消息
    1. 控制消息:主要是用于隧道建立,会话建立拆除等
      1. 公网IP头部+UDP头部+L2TP头部+控制消息部分
    2. 数据消息
      1. 公网IP头部+UDP头部+L2TP头部+PPP头部+私网IP头部+数据部分
    1. IPsec VPN

17.3.1 IPsec的功能:

      1. 加密、认证,提供报文的安全
      2. 防重放机制:防止恶意大量复制IPsec报文并发送给IPsec目标设备,消耗目标设备系统资源
      3. 不可否认性:通过对通信双方身份进行信息认证。

17.3.2 加密方式

对称加密:用于数据传输过程中对报文的加密,加密和解密使用相同的密钥进行。

加解密需要用密钥算法和密钥(密码)。DES、3DES算法,AES算法。

非对称加密:用于身份认证,保护对称密钥,加密和解密使用不同的密钥进行。DH算法,RSA算法。公钥和私钥,公钥是公开的,所有人可以得到该用户的公钥,私钥用户自己保存,不能泄露。

  1. 数据认证:主要作用是报文被篡改后能够及时发现
    1. A将报文和报文hash计算之后的hash值一起发送给B
    2. B将报文的内容重新进行hash计算,得出的hash值与报文携带的hash值进行比较,相同则说明报文未被修改,接收。不同则说明报文被篡改,丢弃不接受。

17.4 IPsec 工作原理

  1. 加密思路:
    1. 通信报文通过对称密钥A进行加解密,需要保障密钥A交互的过程中必须要安全
    2. 使用对端的公钥B1进行加密对称密钥A,得到密钥A的密文X
    3. 对端收到密文X后,通过自己的私钥B2进行解密,得到对称密钥A,用于数据通信加密。
  2. IPsec SA(安全联盟):用于隧道建立的一些要素的约定,包含了加密算法、认证算法、封装的类型(隧道模式封装,传输模式封装)。两个方向,对于同一个通信的两个点,本端设备上会存在两个IPsec SA(inbound和outbound方向)。Ipsec隧道的建立过程,就是SA的建立过程。两种方式:手工和IKE自动建立。
  3. IPsec加密和认证
    1. 认证:本端根据加密算法,将自己的报文A加密得到A1,在根据认证算法将A1进行hash计算,得到hash值ICV,ICV与A1一起发送给对端。
    2. 对端将根据相同的认证算法,对报文进行hash计算,得到ICV与报文后携带ICV进行比较,相同则进行解密,不同,则丢弃。
    3. 解密:对端根据解密算法,将报文A1进行解密得到原始报文A
  4. 两种传输协议:AH(支持认证)、ESP(认证、加密)
  5. 两种封装模式:隧道封装、传输模式封装
    1. 隧道封装报文:AH
      1. 原报文:私网IP+Data部分
      2. AH封装后报文:外层IP+AH头部(ICV)+私网IP头部+Data部分
      3. AH认证的部分:外层IP头部到Data部分(包含这两个部分)
    2. 隧道封装报文:ESP
      1. 原报文:私网IP头部+Data部分
      2. ESP封装后的报文:外层IP头部+ESP头部+私网IP头部+Data部分+ESP尾部+ESP认证数据
      3. ESP加密后的报文:私网IP头部+Data部分+ESP尾部
      4. ESP认证范围:ESP头部+私网IP头部+Data部分+ESP尾部
      5. 对加密后的报文进行认证,将认证后计算的Hash值放入到ESP认证数据部分,报文格式:外层IP头部+ESP头部+私网IP头部+Data部分+ESP尾部+ESP认证数据
    3. 传输模式封装报文:AH
      1. 原报文:私网IP+Data部分
      2. AH封装后:私网IP+AH头部+Data部分
      3. 认证范围:私网IP+AH头部+Data部分
    4. 传输模式封装报文:ESP
      1. 原报文:私网IP+Data部分
      2. ESP封装后:私网IP头部+ESP头部+数据部分+ESP尾部+ESP认证数据
      3. 认证范围:ESP的头部+数据部分+ESP的尾部,认证数据放到报文尾部ESP认证数据字段
      4. 加密范围:数据部分+ESP尾部
    5. 总结:AH的认证范围是包含外层IP头部;ESP的加密范围是ESP头部之后的数据(隧道模式包含内层的IP头部)+ESP尾部;ESP认证范围是ESP的头部到ESP尾部中间(包含头尾)。

17.5 IPsec 隧道动态建立过程

17.5.1 IKE 协议动态建立IPsec SA

IKE两个版本:v1版本和V2版本

  1. IKE V1版本:两种模式,主动模式和野蛮模式,两个阶段
  2. 主动模式:第一阶段,6个报文,三次交互
    1. 1,2个报文进行IKE提议的交互,确定IKE SA
    2. 3,4个报文交互密钥材料,生成相同的密钥,生成飞对称密钥。
    3. 5,6个报文使用第2步生成密钥对身份认证和过程的认证报文交互进行加密保护
  3. 野蛮模式:第一阶段,3个报文
    1. 1,2个携带IKE 提议、身份和验证信息,交互报文确定IKE SA
    2. 发送验证数据
  4. 快速模式:第二阶段,主要的任务协商IPsec SA,该过程使用第一阶段生成的密钥进行加密保护。
    1. 1,2报文进行IPsec 提议的交互,协商IPsec SA
    2. 发送方发送确认信息,确认与响应方可以通信,协商结束。

17.5.2 IKE v2

除了初始交换过程开始两个报文不加密,其他报文均加密

1、初始交换:用于协商IPsec SA的,4个报文,其中两个报文用于交互IKE参数,2个报文用于进行身份和过程认证。

2、子SA交换过程,如果需要协商过个IPSec SA,每增加一个SA,增加一次子SA交换过程即可

3、通知交换过程:用于交换查错信息,消息信息等。

17.6 IPsec NAT穿越

AH协议由于要对报文的外层IP头部进行认证,经过了NAT设备后,IP头部发生改变,会导致对端接受到报文后,认证失败,因此AH不支持NAT穿越

ESP协议,新增加封装UDP头部,则可以支持NAT穿越。

NAT-T 功能,开启NAT-T,检测数据包的源IP地址和端口号,将源IP地址与源端口号hash计算,传递给对端,对端收到报文后,将报文的IP源IP地址和与源端口再次hash计算,得出的结果不同,则认为报文经过了NAT设备。

NAT穿越只能通过分部发起IPsec协商,如果需要总部发起IPsec协商可以在NAT设备上,将端口500和4500一起映射到公网。总部发起IPsec协商的地址是分部的公网地址。如果不映射,分部发起IPsec协商,总部采用策略模版配置。

NAT-T场景,IPsec网关在分支的NAT设备后面,分支访问总部,在NAT设备上创建NAT会话表,总部回包根据NAT会话,NAT设备进行向内部转发。总部无法主动访问分支,因为NAT设备上不存在NAT会话表。但是如果存在NAT会话表,总部也可以主动访问分支IPsec网关。

NAT会话保活:分支IPsec网关周期默认20s一次发送NAT保活报文,用于保留NAT设备上的NAT映射表,此时总部和分支都可以主动任意互访。

17.7 NAT穿越

17.7.1 NAT的类型

  1. 圆锥型:同一个内部tuple转换为同一个外部tuple
  1. 完全圆锥型:收到报文检查报文的目的地址与映射表中的外部tuple是否相同,相同则转发
  2. 限制圆锥型:收到报文之后,检查报文的目的地址与映射表中的外部tuple是否相同,还检查报文的源地址是否与映射表中的目的tuple是否相同。
  3. 端口限制圆锥型:收到报文之后,检查报文的目的地址与因设备表的外部tuple是否相同,还检查报文的源地址与端口号是否与目的tuple相同。
  1. 对称型:同一个内部tuple加上同一个目的tuple转为同一个外部tuple,否则不同的外部tuple;收到报文后检查项和端口限制圆锥型相同。

17.7.2 映射表

存在三个tuple:

    1. 内部tuple:私网IP地址和私网端口号(转换前的IP地址和端口号)
    2. 外部tuple:转换后的IP地址和端口号(公网IP地址和端口号)
    3. 目的tuple:私网设备经过NAT设备访问公网设备,报文的目的IP地址和端口号。

17.7.3 NAT穿越

NAT ALG技术:对应用层报文的内容进行识别,并修改应用层报文的内容,提前建立映射表。实现NAT穿越。典型应用是FTP协议。

参考命令:

[Huawei]nat alg all enable //使能所有可以支持的应用层协议支持ALG功能。

STUN技术:作用主要适用于获取NAT地址转换映射关系

  1. 内网设备发送绑定请求消息,给到STUN服务器,服务器收到请求消息后,从消息中读取设备的源地址(私网地址和端口号),以及报文的源地址(公网地址和端口号)的映射关系。将绑定关系回复给内网设备(客户端)
  2. 通过BGP协议相互学习对方的NAT信息,从而或者对方的映射信息,私网之间设备通信访问映射消息中的公网地址和端口号即可。
  3. 必须是要完全圆锥型NAT才能支持。
相关推荐
群联云防护小杜3 分钟前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
PyAIGCMaster25 分钟前
ubuntu装P104驱动
linux·运维·ubuntu
奈何不吃鱼26 分钟前
【Linux】ubuntu依赖安装的各种问题汇总
linux·运维·服务器
爱码小白31 分钟前
网络编程(王铭东老师)笔记
服务器·网络·笔记
zzzhpzhpzzz40 分钟前
Ubuntu如何查看硬件型号
linux·运维·ubuntu
蜜獾云42 分钟前
linux firewalld 命令详解
linux·运维·服务器·网络·windows·网络安全·firewalld
陌北v144 分钟前
Docker Compose 配置指南
运维·docker·容器·docker-compose
柒烨带你飞1 小时前
路由器转发数据报的封装过程
网络·智能路由器
只会copy的搬运工1 小时前
Jenkins 持续集成部署——Jenkins实战与运维(1)
运维·ci/cd·jenkins
LuH11241 小时前
【论文阅读笔记】Learning to sample
论文阅读·笔记·图形渲染·点云