GRE over IPsec & IPsec over GRE
IPSec -Over-GRE是先ipsec后gre,這種我沒用過。
GRE -Over-IPSec 是先gre后ipsec,也就是說ipsec是最后的承載方式。一般常用的就是這種,解決了ipsec不支持多播的問題。
另外在mtu上也有一些相關,gre是先分段后封裝,而ipsec則是先封裝再分段。
個人理解。
IPsec over GRE 和GRE over IPsec在配置上的區別:
GRE over IPsec IPsec over GRE
ACL定義: GRE數據流 內網數據流
IKE Peer中指定的remote-address 對方公網地址 對方GRE Tunnel地址
應用端口: 公網出口 GRE Tunnel上
GRE over IPSEC(傳輸模式)
IPSEC封裝GRE
好處:可以利用GRE封裝組播或廣播了以及非IP流量,因為如果不使用GRE的話,IPSEC是傳不了組播或廣播IP流量的
IPSEC over GRE(里外)(tunel模式)
IPSEC over GRE:GRE在IPSEC外面,由GRE來封裝IPSEC注意!!!IPSEC over GRE的時候,路由協議流量是明文的
注意!!!當指的peer是對等體物理接口地址的時候不是IPSEC over GRE,只有當peer是對等體的lookback是才是真正的IPSEC over GRE
ipsec over gre配置:
crypto isakmp policy 10
authentication pre-share
crypto isakmp key cisco address 10.1.1.2
!
crypto ipsec transform-set myset esp-des esp-sha-hmac
!
crypto map mymap 10 ipsec-isakmp
set peer 10.1.1.2
set transform-set myset
match address 102
!
interface Serial0
ip address 10.1.1.1 255.255.255.0
clockrate 64000
crypto map mymap
!
ip route 0.0.0.0 0.0.0.0 20.1.1.2
ip route 40.1.1.0 255.255.255.0 Tunnel0
!
access-list 102 permit ip 1.1.1.0 0.0.0.255 1.1.2.0 0.0.0.255
!
interface Tunnel0
ip address 100.1.1.1 255.255.255.0
tunnel source Serial0
tunnel destination 30.1.1.2
crypto map mymap
GRE OVER IPSEC的配置
拓朴結構:
R1 F0/0(172.16.1.1/24)->R2 F0/0(172.16.1.2/24) 模擬外網連接
R1 F1/0(192.168.1.1/24)模擬內網1
R2 F1/0(192.168.2.1/24)模擬內網2
R1:
//定義IKE策略,用於階段1的SA建立,系統會按對端協商的參數去查找我們定義的policy,直到找到一個各項參數都匹配的policy並使用之,如果沒找到會在階段1失敗
crypto isakmp policy 10
hash md5
authentication pre-share
lifetime 3600
crypto isakmp key qhtest address 172.16.1.2
!
//這里定義階段2所使用的SA,其所使用的加密密鑰為隨機,並使用階段1所建立的SA來交換
crypto ipsec transform-set myset esp-3des
!
//定義密碼映射
crypto map qh 10 ipsec-isakmp
set peer 172.16.1.2
set transform-set myset
match address 102//這里注意引用了訪問列表102,這里對gre包進行加密,而不是如上一篇所做的那樣是對內網地址段,實際上是去往內網2的數據包先被封裝到GRE包里,再從外網接口出去,並被IPSET加密
!
//下面在接口上應用密碼映射
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
duplex full
crypto map qh
!
//這里定義GRE隧道接口
interface Tunnel0
ip address 192.168.100.1 255.255.255.0
tunnel source 172.16.1.1
tunnel destination 172.16.1.2
//由於GRE可以傳路由協議,所有我們在隧道接口上啟用了路由協議
router ospf 100
log-adjacency-changes
redistribute connected subnets
network 192.168.100.0 0.0.0.255 area 0
//這里的訪問列表我們定義了針對GRE的包施行IPSEC加密
access-list 102 permit gre host 172.16.1.1 host 172.16.1.2
R2:
crypto isakmp policy 10
hash md5
authentication pre-share
lifetime 3600
crypto isakmp key qhtest address 172.16.1.1
!
!
crypto ipsec transform-set myset esp-3des
!
crypto map qh 10 ipsec-isakmp
set peer 172.16.1.1
set transform-set myset
match address 102
!
interface Tunnel0
ip address 192.168.100.2 255.255.255.0
tunnel source 172.16.1.2
tunnel destination 172.16.1.1
!
interface FastEthernet0/0
ip address 172.16.1.2 255.255.255.0
duplex full
crypto map qh
!
router ospf 100
log-adjacency-changes
redistribute connected subnets
network 192.168.100.0 0.0.0.255 area 0
!
access-list 102 permit gre host 172.16.1.2 host 172.16.1.1