實驗拓撲
R1-R3-R2之間的網(wǎng)絡(luò)為IPv4環(huán)境
PC1及PC2處于IPv6孤島
實驗需求
R1及R2為IPv6/IPv4雙棧設(shè)備
在R1及R2上部署GRE隧道使得PC1及PC2能夠互相訪問(先采用IPv6靜態(tài)路由實現(xiàn)互通)
R1及R2基于建立好的GRE隧道運行OSPFv3交互IPv6路由前綴
實驗步驟及配置
R3的配置如下
?
[R3]?interface?GigabitEthernet0/0/0 [R3-GigabitEthernet0/0/0]?ip?address?10.1.1.2?24 [R3]?interface?GigabitEthernet0/0/1 [R3-GigabitEthernet0/0/1]?ip?address?10.2.2.1?24
?
R1的配置如下:
?
#完成IPv4接口部分的配置: [R1]?interface?GigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0]?ip?address?10.1.1.1?24 [R1]?ip?route-static?0.0.0.0?0?10.1.1.2
#完成IPv6接口部分的配置: [R1]?ipv6 [R1]?interface?GigabitEthernet0/0/1 [R1-GigabitEthernet0/0/1]?ipv6?enable? [R1-GigabitEthernet0/0/1]?ipv6?address?2001:FFFF?64?
#開始配置GRE?Tunnel: [R1]?Interface?tunnel?0/0/0 [R1-Tunnel0/0/0]?tunnel-protocol?gre??#隧道類型為GRE [R1-Tunnel0/0/0]?ipv6?enable [R1-Tunnel0/0/0]?source?10.1.1.1 [R1-Tunnel0/0/0]?destination?10.2.2.2 [R1-Tunnel0/0/0]?ipv6?address?auto?link-local?#注意如果不為tunnel口配置全局單播地址則必須為接口配置linklocal地址,否則接口的ipv6協(xié)議狀態(tài)為down,如果配置了全局單播地址則系統(tǒng)將自動配置linklocal地址,因此無需再配置這條命令。 [R1]?Ipv6?route-static?2001:?64?tunnel?0/0/0
?
R2的配置如下:
?
#完成IPv4接口部分的配置: [R2]?interface?GigabitEthernet0/0/0 [R2-GigabitEthernet0/0/0]?ip?address?10.2.2.2?24 [R2]?ip?route-static?0.0.0.0?0?10.2.2.1
#完成IPv6接口部分的配置 [R2]?ipv6 [R2]?interface?GigabitEthernet0/0/1 [R2-GigabitEthernet0/0/1]?ipv6?enable [R2-GigabitEthernet0/0/1]?ipv6?address?2001:FFFF?64
#開始配置Tunnel: [R2?Interface?tunnel?0/0/0 [R2-Tunnel0/0/0]?tunnel-protocol?gre [R2-Tunnel0/0/0]?ipv6?enable [R2-Tunnel0/0/0]?source?10.2.2.2 [R2-Tunnel0/0/0]?destination?10.1.1.1 [R2-Tunnel0/0/0]?ipv6?address?auto?link-local [R2]?Ipv6?route-static?2001:?64?tunnel?0/0/0
?
完成配置后,首先查看一下R1的接口IPv6信息:
?
[R1]?display?ipv6?interface?brief *down:?administratively?down (l):?loopback (s):?spoofing Interface?Physical?Protocol GigabitEthernet0/0/1?up?up [IPv6?Address]?2001:FFFF Tunnel0/0/0?up?up [IPv6?Address]?FE80:101
?
從上面的輸出可以看到,隧道接口的物理和協(xié)議都要是UP的。從報文的層面看,PC1發(fā)出的IPv6報文到達R1后,R1在原有報文的基礎(chǔ)上先增加了一個GRE的頭部,再增加一個IPv4的隧道頭部,以便數(shù)據(jù)包能夠穿越IPv4網(wǎng)絡(luò)到達隧道對端。
報文的實際交互過程如下:
在R1、R2的GRE隧道建立好后,為了使PC1與PC2能夠通信,我們在R1及R2上配置了IPv6靜態(tài)路由,例如在R1上配置了靜態(tài)路由“Ipv6 route-static 2001: 64 tunnel 0/0/0”,如此一來當R1收到去往2001:/64網(wǎng)絡(luò)的數(shù)據(jù)包時,就會將數(shù)據(jù)包送到隧道進行轉(zhuǎn)發(fā)。
然而靜態(tài)路由是需要手工配置的,而且可擴展性較差。采用動態(tài)路由協(xié)議可以解決這些問題,但是R1-R3并非直連路由器,如何能夠運行IPv6動態(tài)路由協(xié)議?
得益于R1-R2之間已經(jīng)建立起來的GRE隧道,R1、R2相當于打通了一條承載在IPv4網(wǎng)絡(luò)上的IPv6點到點“直連鏈路”,雖然這條鏈路是虛擬的?;谶@條直連鏈路,R1、R2即可運行IPv6動態(tài)路由協(xié)議從而動態(tài)的交互路由信息。
現(xiàn)在,去掉R1、R2上配置的IPv6靜態(tài)路由。然后在R1及R2上增補配置:
R1的增補的配置如下:
?
#創(chuàng)建OSPFv3進程,并分配OSPFv3?RouterID: [R1]?ospfv3?1 [R1-ospfv3-1]?router-id?1.1.1.1
#在tunnel0/0/0口上激活OSPFv3,加入?yún)^(qū)域0: [R1]?interface?Tunnel?0/0/0 [R1-Tunnel0/0/0]?ospfv3?1?area?0
#在GE0/0/1口上激活OSPFv3,加入?yún)^(qū)域0: [R1]?interface?GigabitEthernet?0/0/1 [R1-GigabitEthernet0/0/1]?ospfv3?1?area?0
?
R2的增補的配置如下:
?
[R2]?ospfv3?1 [R2-ospfv3-1]?router-id?2.2.2.2 [R2]?interface?Tunnel?0/0/0 [R2-Tunnel0/0/0]?ospfv3?1?area?0 [R2]?interface?GigabitEthernet?0/0/1 [R2-GigabitEthernet0/0/1]?ospfv3?1?area?0
?
完成上述配置后,R1、R2即會通過GRE Tunnel發(fā)送OSPFv3 Hello試圖發(fā)現(xiàn)鄰居,隨后建立OSPFv3鄰居關(guān)系。
?
[R1]?display?ospfv3?peer OSPFv3?Process?(1) OSPFv3?Area?(0.0.0.0) Neighbor?ID?Pri?State?Dead?Time?Interface?Instance?ID 2.2.2.2?1?Full/-?0040?Tun0/0/0?0
?
鄰居的狀態(tài)已經(jīng)Full了。
?
[R1]?display?ipv6?routing-table?protocol?ospf Public?Routing?Table?:?OSPFv3 Summary?Count?:?2 OSPFv3?Routing?Table's?Status?:? Summary?Count?:?1 Destination?:?2001:?PrefixLength?:?64 NextHop?:?FE80:202?Preference?:?10 Cost?:?1563?Protocol?:?OSPFv3 RelayNextHop?:?::?TunnelID?:?0x0 Interface?:?Tunnel0/0/0?Flags?:?D
?
R1已經(jīng)學習到2001:/64的路由,R2也學到了2001:/64的路由,因此PC1及PC2能夠互相ping通,通過抓包可以觀察到OSPFv3在GRE隧道上的工作過程。實際上我們并未給Tunnel接口配置全局單播IPv6地址,這里R1及R2使用的是Tunnel接口的鏈路本地地址建立OSPFv3鄰居關(guān)系。
審核編輯:湯梓紅
評論
查看更多