GRE over IPsec VPN 实验

实验拓扑


图 1-1

注:如无特别说明,描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备,R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备,以此类推;另外,同一网段中,IP 地址的主机位为其设备编号,如 R3 的 g0/0 接口若在 192.168.1.0/24 网段,则其 IP 地址为 192.168.1.3/24,以此类推


实验需求

  1. 某企业北京总部、上海分支、武汉分支分别通过 R1,R3,R4 接入互联网,配置默认路由连通公网
  2. 按照图示配置 IP 地址,R1,R3,R4 分别配置 Loopback0 口匹配感兴趣流,Loopback1 口模拟业务网段
  3. 北京总部拥有固定公网地址,在 R2 上配置 DHCP,对 R3 和 R4 动态分配 IP 地址,IP 地址网段如图
  4. 北京总部、上海分支、武汉分支配置 GRE over IPsec VPN 连通内网,要求北京总部使用模板来简化配置
  5. 总部和分支之间配置 RIPv2 传递内网路由

实验解法

  1. 配置默认路由部分略

  2. 配置 IP 地址部分略

  3. 配置 DHCP 部分略

  4. 北京总部、上海分支、武汉分支配置 GRE over IPsec VPN 连通内网,要求使用模板来简化配置

    步骤 1:在 R1 上创建 GRE Tunnel 口,配置 IP 地址,并指定源地址和目的地址为两端 Loopback0 口地址

      分析:由于需要配置 GRE over IPsec,所以 Tunnel 口的源地址和目的地址配置为两端 Loopback0 口,且根据图示,Tunnel0 口对应 R3,Tunnel1 口对应 R4

    [R1]interface Tunnel0 mode gre
    [R1-Tunnel0]ip address 10.1.1.1 24
    [R1-Tunnel0]source LoopBack 0
    [R1-Tunnel0]destination 10.10.10.3
    
    [R1]interface Tunnel1 mode gre 
    [R1-Tunnel1]ip address 10.2.2.1 24
    [R1-Tunnel1]source LoopBack 0
    [R1-Tunnel1]destination 10.10.10.4
    

    步骤 2:在 R1 上配置 FQDN 名为 bj

      分析:由于总部拥有固定公网 IP,但分支没有固定 IP 地址,所以必须使用野蛮模式来连接 VPN,只能通过 FQDN 名称来识别对端身份

    [R1]ike identity fqdn bj
    

    步骤 3:在 R1 上创建 IKE 提议,使用默认配置即可

    [R1]ike proposal 1
    

    步骤 4:在 R1 上创建预共享密钥,这里连接上海和武汉分支使用同样的密钥,所以可以只配置一条 Keychain,在 Keychain 中分别对上海和武汉配置密钥

    [R1]ike keychain fz
    [R1-ike-keychain-fz]pre-shared-key hostname sh key simple 123456
    [R1-ike-keychain-fz]pre-shared-key hostname wh key simple 123456
    

    步骤 5:在 R1 上创建 IKE Profile

      分析:在 IKE Profile 中配置 IKE 模式为野蛮模式,并使用 FQDN 名称来标识对端

    [R1]ike profile sh
    [R1-ike-profile-sh]exchange-mode aggressive 
    [R1-ike-profile-sh]match remote identity fqdn sh
    [R1-ike-profile-sh]proposal 1
    [R1-ike-profile-sh]keychain fz
    
    [R1]ike profile wh
    [R1-ike-profile-wh]exchange-mode aggressive 
    [R1-ike-profile-wh]match remote identity fqdn wh
    [R1-ike-profile-wh]proposal 1
    [R1-ike-profile-wh]keychain fz
    

    步骤 6:在 R1 上创建 IPsec 转换集,对两个分支可以使用同一个转换集

    [R1]ipsec transform-set fz
    [R1-ipsec-transform-set-fz]esp authentication-algorithm sha1
    [R1-ipsec-transform-set-fz]esp encryption-algorithm aes-cbc-128
    

    步骤 7:在 R1 上分别创建对上海和武汉分支的 IPsec 策略模板

    [R1]ipsec policy-template sh 1 
    [R1-ipsec-policy-template-sh-1]transform-set fz
    [R1-ipsec-policy-template-sh-1]ike-profile sh
    
    [R1]ipsec policy-template wh 1 
    [R1-ipsec-policy-template-wh-1]transform-set fz
    [R1-ipsec-policy-template-wh-1]ike-profile wh
    

    步骤 8:在 R1 上创建 IPsec 策略,绑定两个模板

    [R1]ipsec policy fz 1 isakmp template sh
    [R1]ipsec policy fz 2 isakmp template wh
    

    步骤 9:在 R1 的公网接口上下发 IPsec 策略

    [R1-GigabitEthernet0/0]ipsec apply policy fz
    

    步骤 11:在 R3 上创建 GRE Tunnel 口,配置方法与 R1 一致

    步骤 12:在 R3 上配置 IPsec 感兴趣流,目的和源为两端 Loopback0 口地址

       分析:由于上海和武汉分支没有固定公网 IP 地址,所以需要配置感兴趣流,来作为建立隧道的主动发起方;但是北京总部由于拥有固定公网 IP,所以无需配置感兴趣流

    [R3]acl advanced 3000
    [R3-acl-ipv4-adv-3000]rule permit ip source 10.10.10.3 0 destination 10.10.10.1 0
    

    步骤 13:在 R3 上配置 FQDN 名为 sh,方法与 R1 一致

    步骤 14:在 R3 上创建 IKE 提议,方法与 R1 一致

    步骤 15:在 R3 上创建 IKE 预共享密钥,匹配对端公网地址

    [R3]ike keychain bj
    [R3-ike-keychain-bj]pre-shared-key address 100.1.1.1 key simple 123456
    

    步骤 16:在 R3 上创建 IKE Profile,方法与 R1 一致

    [R3]ike profile bj
    [R3-ike-profile-bj]exchange-mode aggressive 
    [R3-ike-profile-bj]match remote identity fqdn bj
    [R3-ike-profile-bj]proposal 1
    [R3-ike-profile-bj]keychain bj
    

    步骤 17:在 R3 上创建 IPsec 转换集,加密和验证算法需要与 R1 上一致

    步骤 18:在 R3 上创建 IPsec 策略,调用上述配置

    [R3]ipsec policy bj 1 isakmp 
    [R3-ipsec-policy-isakmp-bj-1]security acl 3000
    [R3-ipsec-policy-isakmp-bj-1]remote-address 100.1.1.1
    [R3-ipsec-policy-isakmp-bj-1]ike-profile bj
    [R3-ipsec-policy-isakmp-bj-1]transform-set bj
    

    步骤 19:在 R3 的公网接口上下发 IPsec 策略

    步骤 20:在 R4 上配置 GRE over IPsec VPN,配置方法与 R3 一致,步骤略

  5. 总部和分支之间配置 RIPv2 传递内网路由

    步骤 1:在 R1,R3,R4 上分别配置 RIPv2,宣告 Tunnel 口网段和各自业务网段,命令略

    步骤 2:在 R1,R3,R4 上分别配置到达其他两个站点环回口的静态路由,下一跳指向公网

      分析:由于 RIP 只能宣告主类网络,所以 GRE Tunnel 口中的源和目的地址会被迫宣告进 RIP,所以 R1,R3,R4 会分别学习到达对端 Loopback0 口的路由,下一跳指向 Tunnel 口,基于路由最长掩码匹配规则,数据包发往 Tunnel 口进行 GRE 封装后,不会匹配默认路由扔向公网接口进行 IPsec 封装,而是会再次发往 Tunnel 口进行重复 GRE 封装,这样将造成 Tunnel 口频繁 UP/DOWN,所以需要配置静态路由,来使经过 GRE 封装之后的数据包能够正确扔向公网口进行 IPsec 封装

    [R1]ip route-static 10.10.10.3 32 100.1.1.2
    [R1]ip route-static 10.10.10.4 32 100.1.1.2
    
    [R3]ip route-static 10.10.10.1 32 100.2.2.2
    
    [R4]ip route-static 10.10.10.1 32 100.3.3.2
    

    效果测试:在 R1,R3,R4 上使用 Loopback0 口为源地址 Ping 其他分支的业务网段,可以 Ping 通