GRE over IPSec(基於思科設備)

GRE over IPSec(基於思科設備)

GRE是一種最傳統的隧道協議,其根本功能就是要實現隧道功能,通過隧道連接的兩個遠程網絡就如同直連,GRE在兩個遠程網絡之間模擬出直連鏈路,從而使網絡間達到直連的效果,爲此,GRE需要完成多次封裝,總共有3次,換句話說,就是在GRE隧道中傳輸的數據包都有3個包頭,因爲我們只談IP協議,所以GRE中的IP數據包是一層套一層,總共有3個IP地址。GRE在實現隧道時,需要創建虛擬直連鏈路,GRE實現的虛擬直連鏈路可以認爲是隧道,隧道是模擬鏈路,所以隧道兩端也有IP地址,但隧道需要在公網中找到起點和終點,所以隧道的源和終點分別都以公網IP地址結尾,該鏈路是通過GRE協議來完成的,隧道傳遞數據包的過程分爲3步:
1.接收原始IP數據包當作乘客協議,原始IP數據包包頭的IP地址爲私有IP地址。
2.將原始IP數據包封裝進GRE協議,GRE協議稱爲封裝協議(Encapsulation Protocol),封裝的包頭IP地址爲虛擬直連鏈路兩端的IP地址。
3.將整個GRE數據包當作數據,在外層封裝公網IP包頭,也就是隧道的起源和終點,從而路由到隧道終點。

通過GRE通用路由封裝協議來建立一個非安全的隧道去傳遞私網路由,而且GRE支持組播協議,所以也就支持動態路由協議。但GRE的安全性就需要IPSEC去保證了,而IPSEC可悲的是又不支持組播,除非用到其它諸如VTI的一些技術了。所以自然而然,人們就想到GRE overIPSEC的×××去安全的傳遞內網數據。

實驗步驟

GRE over IPSec(基於思科設備)

1:R1的IP和默認路由器的設置
R1#conf t
R1(config)#int f0/1
R1(config-if)#ip add 192.168.1.254 255.255.255.0
R1(config-if)#no shut
R1(config-if)#int f0/0
R1(config-if)#ip address 200.0.0.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 200.0.0.2

2:ISP路由器的IP設置(運營商設備不設置前往私有網絡的路由)
R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 200.0.0.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#int f0/1
R2(config-if)#ip add 100.0.0.2 255.255.255.0
R2(config-if)#no shut

3:R3的IP和默認路由的設置
R3#conf t
R3(config)#int f0/1
R3(config-if)#ip add 192.168.2.254 255.255.255.0
R3(config-if)#no shut
R3(config-if)#int f0/0
R3(config-if)#ip add 100.0.0.1 255.255.255.0
R3(config-if)#no shut
R3(config-if)#exit
R3(config)#ip route 0.0.0.0 0.0.0.0 100.0.0.2

4:R4路由器的IP設置(模擬總部內網的路由器)
R4#conf t
R4(config)#int f0/0
R4(config-if)#ip add 192.168.1.1 255.255.255.0
R4(config-if)#no shut
R4(config-if)#int loop0
R4(config-if)#ip add 172.16.0.1 255.255.0.0
R4(config-if)#exit

5:R1隧道接口的設置
R1(config)#int tunnel 0
R1(config-if)#ip add 10.0.0.1 255.0.0.0
R1(config-if)#tunnel source 200.0.0.1
R1(config-if)#tunnel destination 100.0.0.1
R1(config-if)#exit

6:R3隧道接口的設置
R3(config)#int tunnel 0
R3(config-if)#ip add 10.0.0.2 255.0.0.0
R3(config-if)#tunnel source 100.0.0.1
R3(config-if)#tunnel destination 200.0.0.1
R3(config-if)#exit
R3(config)#

7:R1路由器的ospf設置
R1(config)#router ospf 1
R1(config-router)#network 10.0.0.0 0.255.255.255 area 0
R1(config-router)#network 192.168.1.0 0.0.0.255 area 0
R1(config-router)#exit

8:R3路由器的ospf設置
R3(config)#router ospf 1
R3(config-router)#network 10.0.0.0 0.255.255.255 area 0
R3(config-router)#network 192.168.2.0 0.0.0.255 area 0
R3(config-router)#exit
R3(config)#

9:R4路由器的ospf的設置
R4(config)#router ospf 1
R4(config-router)#network 192.168.1.0 0.0.0.255 area 0
R4(config-router)#network 172.16.0.0 0.0.255.255 area 0
R4(config-router)#end

10:R1的路由表
R1#show ip route

C 200.0.0.0/24 is directly connected, FastEthernet0/0
172.16.0.0/32 is subnetted, 1 subnets
O 172.16.0.1 [110/2] via 192.168.1.1, 00:08:52, FastEthernet0/1
C 10.0.0.0/8 is directly connected, Tunnel0
C 192.168.1.0/24 is directly connected, FastEthernet0/1
O 192.168.2.0/24 [110/11112] via 10.0.0.2, 00:08:52, Tunnel0
S* 0.0.0.0/0 [1/0] via 200.0.0.2

11:R3的路由表
R3#show ip route

 100.0.0.0/24 is subnetted, 1 subnets

C 100.0.0.0 is directly connected, FastEthernet0/0
172.16.0.0/32 is subnetted, 1 subnets
O 172.16.0.1 [110/11113] via 10.0.0.1, 00:10:00, Tunnel0
C 10.0.0.0/8 is directly connected, Tunnel0
O 192.168.1.0/24 [110/11112] via 10.0.0.1, 00:10:00, Tunnel0
C 192.168.2.0/24 is directly connected, FastEthernet0/1
S* 0.0.0.0/0 [1/0] via 100.0.0.2

12:R4的路由表
R4#show ip route

C 172.16.0.0/16 is directly connected, Loopback0
O 10.0.0.0/8 [110/11112] via 192.168.1.254, 00:00:14, FastEthernet0/0
C 192.168.1.0/24 is directly connected, FastEthernet0/0
O 192.168.2.0/24 [110/11113] via 192.168.1.254, 00:00:14, FastEthernet0/0

此處要注意雖然兩個路由器都有前往對方私有網絡的路由,但是兩個局域網現在是不通的,因爲GRE隧道只保護ospf的流量,不保護用戶業務流量,在沒有配置×××時,是不對業務流量進行保護的,所以兩個局域網此時雖然有路由,但是不能通信

13:R1的×××的設置
R1(config)#crypto isakmp policy 10
R1(config-isakmp)#encryption aes 128
R1(config-isakmp)#hash sha
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#group 2
R1(config-isakmp)#exit
R1(config)#

R1(config)#crypto isakmp key 0 cisco123 address 100.0.0.1 no-xauth
R1(config)#access-list 101 permit gre host 200.0.0.1 host 100.0.0.1
R1(config)#crypto ipsec transform-set myset esp-aes esp-sha-hmac
R1(cfg-crypto-trans)#mode transport
R1(cfg-crypto-trans)#exit
R1(config)#crypto map cisco-map 10 ipsec-isakmp
R1(config-crypto-map)#set peer 100.0.0.1
R1(config-crypto-map)#set transform-set myset
R1(config-crypto-map)#match address 101
R1(config-crypto-map)#exit
R1(config)#int f0/0
R1(config-if)#crypto map cisco-map
R1(config-if)#

14:R3的×××設置
R3(config)#crypto isakmp policy 10
R3(config-isakmp)#encryption aes 128
R3(config-isakmp)#hash sha
R3(config-isakmp)#authentication pre-share
R3(config-isakmp)#group 2
R3(config-isakmp)#exit
R3(config)#crypto isakmp key 0 cisco123 address 200.0.0.1 no-xauth
R3(config)#access-list 101 permit gre host 100.0.0.1 host 200.0.0.1
R3(config)#crypto ipsec transform-set myset esp-aes esp-sha-hmac
R3(cfg-crypto-trans)#mode transport
R3(cfg-crypto-trans)#exit
R3(config)#crypto map cisco-map 10 ipsec-isakmp
R3(config-crypto-map)#set peer 200.0.0.1
R3(config-crypto-map)#set transform-set myset
R3(config-crypto-map)#match address 101
R3(config-crypto-map)#int f0/0
R3(config-if)#crypto map cisco-map
R3(config-if)#

15:測試
兩個局域網之間的網絡可以互通,但是,局域網不能ping通ISP的網絡,要想和運營商互通,需要對上網的流量做nat轉換,本案例不討論此過程
可以將R1上的GRE隧道刪除掉
R1(config)#no int tunnel 0
R1(config)#end
R1#show ip route

C 200.0.0.0/24 is directly connected, FastEthernet0/0
172.16.0.0/32 is subnetted, 1 subnets
O 172.16.0.1 [110/2] via 192.168.1.1, 00:00:01, FastEthernet0/1
C 192.168.1.0/24 is directly connected, FastEthernet0/1
S* 0.0.0.0/0 [1/0] via 200.0.0.2
再用pc2 ping172.16.0.1發現不通了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章