# GRE over IPsec VPN实验

# 一、实验拓扑

注:如无特别说明,描述中的 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 通