华为eNSP网络实验之IPsec协议学习

华为eNSP网络实验之IPsec协议学习

网络拓扑图如图所示:

组网方案:

设备 接口 IP地址/掩码 网关 所属区域
Client1 Ethernet 0/0/0 192.168.1.2/24 192.168.1.1 私网A
Server2 Ethernet 0/0/0 192.168.2.2/24 192.168.2.1 私网B
AR1 GE0/0/0 192.168.1.1/24 - 私网A网关
GE0/0/1 10.1.12.1/30 - 公网
AR2 GE0/0/0 10.1.12.2/30 - 公网
GE0/0/1 10.1.23.1/30 - 公网
AR3 GE0/0/0 10.1.23.2/30 - 公网
GE0/0/1 192.168.2.1/24 - 私网B网关
LSW1, LSW2 - 无需配置 - 纯二层交换

实验要求:实现client1到sever2的ipsec通信。如client1通过httpclient的IP地址成功访问到server2。

1、该实验中,AR1 和 AR3 已经承担了网关角色,LSW1/LSW2 纯粹就是二层转发,所以无需配置。

2、本实验软件环境、版本:ensp 1.3.00,VirtualBox 5.2.22,wireshark3.0.0

(ps:不通软件版本的配置命令可能不同)

本实验同款环境:通过网盘分享的文件:计算机网络拓扑实验所需的配置软件

链接 : https://pan.baidu.com/s/1yHLcijdIQK8Ggl2r-l2Yqg?pwd=opop 提取码: opop)

一、基础连通性配置、测试。

1、client1与sever2配置。


2、AR1、AR2、AR3配置。
复制代码
<Huawei>system-view 
[Huawei]sysname AR1
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]ip address 192.168.1.1 24
[AR1-GigabitEthernet0/0/0]quit 
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]ip address 10.1.12.1 30
[AR1-GigabitEthernet0/0/1]quit 

<Huawei>system-view 
[Huawei]sysname AR2
[AR2]interface GigabitEthernet 0/0/0
[AR2-GigabitEthernet0/0/0]ip address 10.1.12.2 30
[AR2-GigabitEthernet0/0/0]quit 
[AR2]interface GigabitEthernet 0/0/1
[AR2-GigabitEthernet0/0/1]ip address 10.1.23.1 30
[AR2-GigabitEthernet0/0/1]quit 

<Huawei>system-view 
[Huawei]sysname AR3
[AR3]interface GigabitEthernet 0/0/0 
[AR3-GigabitEthernet0/0/0]ip address 10.1.23.2 30
[AR3-GigabitEthernet0/0/0]quit 
[AR3]interface GigabitEthernet 0/0/1
[AR3-GigabitEthernet0/0/1]ip address 192.168.2.1 24
[AR3-GigabitEthernet0/0/1]quit 
3、内网联通性测试。
复制代码
[AR1]ping 192.168.1.2            #client1和AR1连通性测试
  PING 192.168.1.2: 56  data bytes, press CTRL_C to break
    Reply from 192.168.1.2: bytes=56 Sequence=1 ttl=255 time=140 ms
    Reply from 192.168.1.2: bytes=56 Sequence=2 ttl=255 time=30 ms
    Reply from 192.168.1.2: bytes=56 Sequence=3 ttl=255 time=30 ms
    Reply from 192.168.1.2: bytes=56 Sequence=4 ttl=255 time=20 ms
    Reply from 192.168.1.2: bytes=56 Sequence=5 ttl=255 time=30 ms

  --- 192.168.1.2 ping statistics ---
    5 packet(s) transmitted
    5 packet(s) received
    0.00% packet loss
    round-trip min/avg/max = 20/50/140 ms
    
[AR3]ping 192.168.2.2             #server21和AR3连通性测试
  PING 192.168.2.2: 56  data bytes, press CTRL_C to break
    Reply from 192.168.2.2: bytes=56 Sequence=1 ttl=255 time=120 ms
    Reply from 192.168.2.2: bytes=56 Sequence=2 ttl=255 time=30 ms
    Reply from 192.168.2.2: bytes=56 Sequence=3 ttl=255 time=30 ms
    Reply from 192.168.2.2: bytes=56 Sequence=4 ttl=255 time=20 ms
    Reply from 192.168.2.2: bytes=56 Sequence=5 ttl=255 time=40 ms

  --- 192.168.2.2 ping statistics ---
    5 packet(s) transmitted
    5 packet(s) received
    0.00% packet loss
    round-trip min/avg/max = 20/48/120 ms

client1和AR1连通性测试成功。server2和AR3的连通性测试成功。

4、公网路由配置、测试。

使用OSPF协议将AR1、AR2、AR3的公网接口联通,使它们能相互通信:

复制代码
[AR1]ospf 1 router-id 1.1.1.1
[AR1-ospf-1]area 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]network 10.1.12.1 0.0.0.3
[AR1-ospf-1-area-0.0.0.0]quit 
[AR1-ospf-1]quit 
[AR1]ip route-static 192.168.2.0 24 10.1.12.2 #保留私网指向静态路由

[AR2]ospf 1 router-id 2.2.2.2
[AR2-ospf-1]area 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]network 10.1.12.2 0.0.0.3
[AR2-ospf-1-area-0.0.0.0]network 10.1.23.2 0.0.0.3
[AR2-ospf-1-area-0.0.0.0]quit 
[AR2-ospf-1]quit #纯公网转发,无需私网静态路由

[AR3]ospf 1 router-id 3.3.3.3
[AR3-ospf-1]area 0.0.0.0
[AR3-ospf-1-area-0.0.0.0]network 10.1.23.0 0.0.0.3
[AR3-ospf-1-area-0.0.0.0]quit 
[AR3-ospf-1]quit 
[AR3]ip route-static 192.168.1.0 24 10.1.23.1

公网联通性测试:

复制代码
[AR1]ping -a 10.1.12.1 10.1.23.2
  PING 10.1.23.3: 56  data bytes, press CTRL_C to break
    Reply from 10.1.23.3: bytes=56 Sequence=1 ttl=255 time=30 ms
    Reply from 10.1.23.3: bytes=56 Sequence=2 ttl=255 time=20 ms
    Reply from 10.1.23.3: bytes=56 Sequence=3 ttl=255 time=20 ms
    Reply from 10.1.23.3: bytes=56 Sequence=4 ttl=255 time=20 ms
    Reply from 10.1.23.3: bytes=56 Sequence=5 ttl=255 time=20 ms

  --- 10.1.23.3 ping statistics ---
    5 packet(s) transmitted
    5 packet(s) received
    0.00% packet loss
    round-trip min/avg/max = 20/22/30 ms

ar1到ar3的公网路由打通成功。

复制代码
[AR1]display ospf peer brief 

	 OSPF Process 1 with Router ID 1.1.1.1
		  Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          GigabitEthernet0/0/1             2.2.2.2          Full        
 ----------------------------------------------------------------------------

[AR1]display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 11       Routes : 11       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

      10.1.12.0/30  Direct  0    0           D   10.1.12.1       GigabitEthernet
0/0/1
      10.1.12.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
      10.1.12.3/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
      10.1.23.0/30  OSPF    10   2           D   10.1.12.2       GigabitEthernet
0/0/1
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    192.168.1.0/24  Direct  0    0           D   192.168.1.1     GigabitEthernet
0/0/0
    192.168.1.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
  192.168.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

二、IPsec配置、测试。

复制代码
计算机A和计算机B使用IPsec进行通信的流程:(IPsec是网络层协议)

(1)初始化。A发送数据包给B,发现未建立IPsec SA(security association),触发协商。

(2)IKE(互联网密钥交换)第一阶段:建立IKE SA。

A-----发出策略提议(如加密方式、认证方式等)------>B,B----发送策略接受-------------->A;

A-----发送DH公钥、随机数等------------------->B,B----发送DH公钥、随机数等-------->A;

结果:双方计算共享密钥,认证身份,成功建立IKE SA(即协商结果)。

(3)IKE(Internet key exchange)第二阶段:建立IPsec SA。

A-----(通过IKE SA加密)发起IPsec协商-------->B,B---(通过IKE SA加密)确认IPsec SA参数--->A;

(4)数据传输。

A-----使用IPsec SA发送加密的业务数据包---->B,B---使用IPsec SA发送加密的业务数据包--->A;

(5)IPsec生命周期结束或通信中断,隧道拆除。
1、AR1上的配置:
(1)定义ACL。
复制代码
[AR1]acl 3000						#(client1网段到sever2网段是需要加密的流量)
[AR1-acl-adv-3000]rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
[AR1-acl-adv-3000]quit 
(2)IKE第一阶段协商配置。
①配置IKE安全提议。
复制代码
[AR1]ike proposal 1
[AR1-ike-proposal-1]encryption-algorithm aes-cbc-128   //AES128位对称加密算法
[AR1-ike-proposal-1]authentication-algorithm sha1     //SHA1算法验证数据的完整性和真实性
[AR1-ike-proposal-1]dh group14     #Diffie-Hellman (DH) 密钥交换算法是非对称的:
[AR1-ike-proposal-1]quit 
  • AR1 和 AR3 用 DH 算法各自生成一对公私钥,互相交换公钥,然后各自算出 相同的对称密钥。即使有人在中间抓包,拿到公钥也算不出最终的对称密钥。
  • 这就是 IPsec 的经典组合:
    • DH (非对称):安全交换密钥。
    • AES (对称):高效加密数据。
②配置ike对等体。
复制代码
[AR1]ike peer AR3 v1
[AR1-ike-peer-AR3]pre-shared-key simple Huawei@123
[AR1-ike-peer-AR3]ike-proposal 1
[AR1-ike-peer-AR3]remote-address 10.1.23.2   #对端公网接口IP
[AR1-ike-peer-AR3]quit 
(3)IPsec第二阶段配置。
①配置IPsec安全提议。
复制代码
[AR1]ipsec proposal trans1
[AR1-ipsec-proposal-trans1]encapsulation-mode tunnel   #这里的传输模式是隧道模式
[AR1-ipsec-proposal-trans1]transform esp 
[AR1-ipsec-proposal-trans1]esp encryption-algorithm aes-128
[AR1-ipsec-proposal-trans1]esp authentication-algorithm sha1
[AR1-ipsec-proposal-trans1]quit 

这里设置的是隧道模式:加密了整个数据包,网络开销较高,但安全性也较高。

如果设置为传输模式[AR1-ipsec-policy-isakmp-AR1-Policy-10] encapsulation-mode transport,则只加密有效载荷,网络开销较低,安全性也较低。

②创建IPsec策略。
复制代码
[AR1]ipsec policy policy1 10 isakmp 
[AR1-ipsec-policy-isakmp-policy1-10]security acl 3000
[AR1-ipsec-policy-isakmp-policy1-10]ike-peer AR3
[AR1-ipsec-policy-isakmp-policy1-10]proposal trans1 
[AR1-ipsec-policy-isakmp-policy1-10]quit 
(4)应用策略到公网接口.
复制代码
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]ipsec policy policy1 
[AR1-GigabitEthernet0/0/1]quit 
2、AR3上的配置:
(1)定义ACL。
复制代码
[AR3]acl 3000							#(和AR1相比:源地址和目的地址互换)
[AR3-acl-adv-3000]rule 5 permit ip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
[AR3-acl-adv-3000]quit 
(2)IKE第一阶段协商配置。
①配置IKE安全提议。
复制代码
[AR3]ike proposal 1                      #(和AR1相比:完全相同)
[AR3-ike-proposal-1]encryption-algorithm aes-cbc-128
[AR3-ike-proposal-1]authentication-algorithm sha1 
[AR3-ike-proposal-1]dh group14
[AR3-ike-proposal-1]quit 
②配置ike对等体。
复制代码
[AR3]ike peer AR1 v1				      #(和AR1相比:peer名字和对端公网接口互换)
[AR3-ike-peer-AR1]pre-shared-key simple Huawei@123
[AR3-ike-peer-AR1]ike-proposal 1
[AR3-ike-peer-AR1]remote-address 10.1.12.1
[AR3-ike-peer-AR1]quit
(3)IPsec第二阶段配置。
①配置IPsec安全提议。
复制代码
[AR3]ipsec proposal trans1                #(和AR1相比:完全相同)
[AR3-ipsec-proposal-trans1]encapsulation-mode tunnel
[AR3-ipsec-proposal-trans1]transform esp 
[AR3-ipsec-proposal-trans1]esp encryption-algorithm aes-128
[AR3-ipsec-proposal-trans1]esp authentication-algorithm sha1
[AR3-ipsec-proposal-trans1]quit
②创建IPsec策略。
复制代码
[AR3]ipsec policy policy1 10 isakmp      #(和AR1相比:peer名字互换)
[AR3-ipsec-policy-isakmp-policy1-10]security acl 3000
[AR3-ipsec-policy-isakmp-policy1-10]ike-peer AR1
[AR3-ipsec-policy-isakmp-policy1-10]proposal trans1 
[AR3-ipsec-policy-isakmp-policy1-10]quit
(4)应用策略到公网接口
复制代码
[AR3]interface GigabitEthernet 0/0/0       #(和AR1相比:公网接口是000)
[AR3-GigabitEthernet0/0/0]ipsec policy policy1 
[AR3-GigabitEthernet0/0/0]quit 
3、 配置测试。
(1)触发隧道建立

Client1 上执行 ping 192.168.2.2(需确保 Client1 支持命令行,否则用 AR1 的 ping -a 192.168.1.1 192.168.2.2 模拟触发)。

复制代码
[AR1]ping -a 192.168.1.1 192.168.2.2
  PING 192.168.2.2: 56  data bytes, press CTRL_C to break
    Reply from 192.168.2.2: bytes=56 Sequence=1 ttl=255 time=90 ms
    Reply from 192.168.2.2: bytes=56 Sequence=2 ttl=255 time=40 ms
    Reply from 192.168.2.2: bytes=56 Sequence=3 ttl=255 time=40 ms
    Reply from 192.168.2.2: bytes=56 Sequence=4 ttl=255 time=50 ms
    Reply from 192.168.2.2: bytes=56 Sequence=5 ttl=255 time=30 ms

  --- 192.168.2.2 ping statistics ---
    5 packet(s) transmitted
    5 packet(s) received
    0.00% packet loss
    round-trip min/avg/max = 30/50/90 ms
(2)查看 IPsec 安全联盟
复制代码
[AR1]display ipsec sa

===============================
Interface: GigabitEthernet0/0/1
 Path MTU: 1500
===============================

  -----------------------------
  IPSec policy name: "policy1"
  Sequence number  : 10
  Acl Group        : 3000
  Acl rule         : 5
  Mode             : ISAKMP
  -----------------------------
    Connection ID     : 13
    Encapsulation mode: Tunnel
    Tunnel local      : 10.1.12.1
    Tunnel remote     : 10.1.23.2
    Flow source       : 192.168.1.0/255.255.255.0 0/0
    Flow destination  : 192.168.2.0/255.255.255.0 0/0
    Qos pre-classify  : Disable

    [Outbound ESP SAs] 
      SPI: 3951477948 (0xeb86c4bc)
      Proposal: ESP-ENCRYPT-AES-128 ESP-AUTH-SHA1
      SA remaining key duration (bytes/sec): 1887329280/3488
      Max sent sequence-number: 5
      UDP encapsulation used for NAT traversal: N

    [Inbound ESP SAs] 
      SPI: 87806325 (0x53bd175)
      Proposal: ESP-ENCRYPT-AES-128 ESP-AUTH-SHA1
      SA remaining key duration (bytes/sec): 1887436380/3488
      Max received sequence-number: 5
      Anti-replay window size: 32
      UDP encapsulation used for NAT traversal: N

IPsec隧道建立成功了。

  1. 存在有效的 SPI (安全参数索引)

    • 出方向 SPI: 0xeb86c4bc
    • 入方向 SPI: 0x53bd175
      这两个非零的 SPI 说明 IPsec 第二阶段协商已经完成,隧道建立成功。
  2. 序列号在增加

    • Max sent sequence-number: 5 → 已经发送了 5 个加密包

    • Max received sequence-number: 5 → 已经收到了 5 个加密包

      这说明数据已经在隧道中双向加密传输,隧道不仅建立,而且正在正常工作。


(3)Httpsever配置与测试

双击打开sever2设备-服务器信息-HttpSever-选择文件根目录为C盘-点击启动,如下图所示:

双击打开Client1-客户端信息-HttpClient-输入server2的IP地址http://192.168.2.2,成功获取文件

HTTP/1.1 200 OK 就是 HTTP 服务成功响应的标准状态码,这表示 Client1 已经通过 IPsec 加密隧道成功访问到了 Server2 上的网页服务,实验目标达成!

(4)Ftpsever配置与测试

在本地电脑的G盘新建一个"helloworld.txt"文件。

双击打开sever2-ftpsever-根目录选择c盘-启动监听端口:

双击打开client1-ftpclient-服务器地址192.168.2.2-点击登录-将G盘刚刚创建的文件helloworld.txt-点击大于号:

打开本地c盘发现刚刚创建好的helloworld.txt文件从G盘传过来了。

(5)通过抓包验证加密

①点击AR2,右键-数据抓包-0/0/0端口或者 0/0/1端口:

点击client1的HttpClient-获取,

在 Wireshark 的显示过滤器栏输入 esp,回车。

ESP 报文内部不会显示 任何 192.168.1.2192.168.2.2 或 ICMP 的详细信息,因为这些内容已被加密并封装在 ESP 的加密载荷中。

在 AR2 的抓包,ICMP 报文应显示为 ESP 封装,看不到原始内层 IP 信息。这表示通信信息成功加密了。

②对比非加密时的报文。暂时移除 IPsec 策略(undo ipsec policy):

复制代码
[AR1] interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1] undo ipsec policy
[AR1-GigabitEthernet0/0/1] quit

[AR3] interface GigabitEthernet 0/0/0
[AR3-GigabitEthernet0/0/0] undo ipsec policy
[AR3-GigabitEthernet0/0/0] quit

用相同方式抓包过滤 icmp,看到完整的 ICMP 请求/应答,里面直接包含内层源 IP 192.168.1.2 和目标 IP 192.168.2.2

重新恢复 IPsec策略:

复制代码
[AR1] interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1] ipsec policy policy1

[AR3] interface GigabitEthernet 0/0/0
[AR3-GigabitEthernet0/0/0] ipsec policy AR3-Policy

Client1再次通过HttpClient获取请求server2。可以看到这些内层 IP 就被 ESP 完全"吞没"了。

(6)别忘记保存本实验的配置哦。
复制代码
<AR1>save 
  The current configuration will be written to the device. 
  Are you sure to continue? (y/n)[n]:y
  It will take several minutes to save configuration file, please wait..........

  Configuration file had been saved successfully
  Note: The configuration file will take effect after being activated

<AR2>save 
  The current configuration will be written to the device. 
  Are you sure to continue? (y/n)[n]:y
  It will take several minutes to save configuration file, please wait........
  Configuration file had been saved successfully
  Note: The configuration file will take effect after being activated

<AR3>save 
  The current configuration will be written to the device. 
  Are you sure to continue? (y/n)[n]:y
  It will take several minutes to save configuration file, please wait........
  Configuration file had been saved successfully
  Note: The configuration file will take effect after being activated

三、网工真题实战

有时间再写咯......

相关推荐
知识分享小能手2 小时前
ECharts入门学习教程,从入门到精通,综合实战——ECharts数据大屏 - 完整知识点(9)
前端·学习·echarts
AI生产力指南2 小时前
泛微·易秒办集成OpenClaw机器人:打造“能说会做”的智能助手
运维·网络·人工智能
嵌入式小企鹅2 小时前
算力价值重估、AI编程模型齐开源、RISC-V融资15亿
人工智能·学习·ai·程序员·risc-v·前沿科技·太空算力
威联通安全存储2 小时前
内存带宽解禁:TS-h3077AFU 闪存算力释放解析
网络
老毛肚3 小时前
Redis实战
网络
眷蓝天8 小时前
OSI七层模型
网络
DeepModel11 小时前
通俗易懂讲透 Q-Learning:从零学会强化学习核心算法
人工智能·学习·算法·机器学习
云安全助手11 小时前
弹性云服务器+高防IP:让DDoS攻击不再是业务“生死劫”
运维·网络·安全
jiejiejiejie_12 小时前
Flutter 三方库 pull_to_refresh 的鸿蒙化适配指南
flutter·华为·harmonyos