11-IPv6基礎配置
本章節下載: 11-IPv6基礎配置 (422.62 KB)
目 錄
1.3.5 引用前綴生成接口上的IPv6地址,並將此前綴分配給終端設備
1.7.1 配置發送ICMPv6差錯報文對應的令牌桶容量和令牌刷新周期
1.7.2 配置允許回複組播形式的Echo request報文
IPv6(Internet Protocol Version 6,互聯網協議版本6)是網絡層協議的第二代標準協議,也被稱為IPng(IP Next Generation,下一代互聯網協議),它是IETF(Internet Engineering Task Force,互聯網工程任務組)設計的一套規範,是IPv4的升級版本。IPv6和IPv4之間最顯著的區別為:IP地址的長度從32比特增加到128比特。
通過將IPv4報文頭中的某些字段裁減或移入到擴展報文頭,減小了IPv6基本報文頭的長度。IPv6使用固定長度的基本報文頭,從而簡化了轉發設備對IPv6報文的處理,提高了轉發效率。盡管IPv6地址長度是IPv4地址長度的四倍,但IPv6基本報文頭的長度隻有40字節,為IPv4報文頭長度(不包括選項字段)的兩倍。
圖1-1 IPv4報文頭和IPv6基本報文頭格式比較
IPv6的源地址與目的地址長度都是128比特(16字節)。它可以提供超過3.4×1038種可能的地址空間,完全可以滿足多層次的地址劃分需要,以及公有網絡和機構內部私有網絡的地址分配。
IPv6的地址空間采用了層次化的地址結構,有利於路由快速查找,同時可以借助路由聚合,有效減少IPv6路由表占用的係統資源。
為了簡化主機配置,IPv6支持有狀態地址配置和無狀態地址配置:
· 有狀態地址配置是指從服務器(如DHCPv6服務器)獲取IPv6地址及相關信息,詳細介紹請參見“三層技術-IP業務配置指導”中的“DHCPv6”;
· 無狀態地址配置是指主機根據自己的鏈路層地址及路由器發布的前綴信息自動配置IPv6地址及相關信息。
同時,主機也可根據自己的鏈路層地址及默認前綴(FE80::/10)形成鏈路本地地址,實現與本鏈路上其他主機的通信。
IPv6將IPsec作為它的標準擴展頭,可以提供端到端的安全特性。這一特性也為解決網絡安全問題提供了標準,並提高了不同IPv6應用之間的互操作性。
IPv6報文頭的流標簽(Flow Label)字段實現流量的標識,允許設備對某一流中的報文進行識別並提供特殊處理。
IPv6的鄰居發現協議是通過一組ICMPv6(Internet Control Message Protocol for IPv6,IPv6互聯網控製消息協議)消息實現的,管理著鄰居節點間(即同一鏈路上的節點)信息的交互。它代替了ARP(Address Resolution Protocol,地址解析協議)、ICMPv4路由器發現和ICMPv4重定向消息,並提供了一係列其他功能。
IPv6取消了IPv4報文頭中的選項字段,並引入了多種擴展報文頭,在提高處理效率的同時還大大增強了IPv6的靈活性,為IP協議提供了良好的擴展能力。IPv4報文頭中的選項字段最多隻有40字節,而IPv6擴展報文頭的大小隻受到IPv6報文大小的限製。
IPv6地址被表示為以冒號(:)分隔的一連串16比特的十六進製數。每個IPv6地址被分為8組,每組的16比特用4個十六進製數來表示,組和組之間用冒號隔開,比如:2001:0000:130F:0000:0000:09C0:876A:130B。
為了簡化IPv6地址的表示,對於IPv6地址中的“0”可以有下麵的處理方式:
· 每組中的前導“0”可以省略,即上述地址可寫為2001:0:130F:0:0:9C0:876A:130B。
· 如果地址中包含一組或連續多組均為0的組,則可以用雙冒號“::”來代替,即上述地址可寫為2001:0:130F::9C0:876A:130B。
在一個IPv6地址中隻能使用一次雙冒號“::”,否則當設備將“::”轉變為0以恢複128位地址時,將無法確定“::”所代表的0的個數。
IPv6地址由兩部分組成:地址前綴與接口標識。其中,地址前綴相當於IPv4地址中的網絡號碼字段部分,接口標識相當於IPv4地址中的主機號碼部分。
地址前綴的表示方式為:IPv6地址/前綴長度。其中,前綴長度是一個十進製數,表示IPv6地址最左邊多少位為地址前綴。
IPv6主要有三種類型的地址:單播地址、組播地址和任播地址。
· 單播地址:用來唯一標識一個接口,類似於IPv4的單播地址。發送到單播地址的數據報文將被傳送給此地址所標識的接口。
· 組播地址:用來標識一組接口(通常這組接口屬於不同的節點),類似於IPv4的組播地址。發送到組播地址的數據報文被傳送給此地址所標識的所有接口。
· 任播地址:用來標識一組接口(通常這組接口屬於不同的節點)。發送到任播地址的數據報文被傳送給此地址所標識的一組接口中距離源節點最近(根據使用的路由協議進行度量)的一個接口。
IPv6中沒有廣播地址,廣播地址的功能通過組播地址來實現。
IPv6地址類型是由地址前麵幾位(稱為格式前綴)來指定的,主要地址類型與格式前綴的對應關係如表1-1所示。
地址類型 |
格式前綴(二進製) |
IPv6前綴標識 |
|
單播地址 |
未指定地址 |
00...0 (128 bits) |
::/128 |
環回地址 |
00...1 (128 bits) |
::1/128 |
|
鏈路本地地址 |
1111111010 |
FE80::/10 |
|
全球單播地址 |
其他形式 |
- |
|
組播地址 |
11111111 |
FF00::/8 |
|
任播地址 |
從單播地址空間中進行分配,使用單播地址的格式 |
IPv6單播地址的類型可有多種,包括全球單播地址、鏈路本地地址等。
· 全球單播地址等同於IPv4公網地址,提供給網絡服務提供商。這種類型的地址允許路由前綴的聚合,從而限製了全球路由表項的數量。
· 鏈路本地地址用於鄰居發現協議和無狀態自動配置中鏈路本地上節點之間的通信。使用鏈路本地地址作為源或目的地址的數據報文不會被轉發到其他鏈路上。
· 環回地址:單播地址0:0:0:0:0:0:0:1(簡化表示為::1)稱為環回地址,不能分配給任何物理接口。它的作用與在IPv4中的環回地址相同,即節點用來給自己發送IPv6報文。
· 未指定地址:地址“::”稱為未指定地址,不能分配給任何節點。在節點獲得有效的IPv6地址之前,可在發送的IPv6報文的源地址字段填入該地址,但不能作為IPv6報文中的目的地址。
表1-2所示的組播地址,是預留的特殊用途的組播地址。
表1-2 預留的IPv6組播地址列表
地址 |
應用 |
FF01::1 |
表示節點本地範圍所有節點的組播地址 |
FF02::1 |
表示鏈路本地範圍所有節點的組播地址 |
FF01::2 |
表示節點本地範圍所有路由器的組播地址 |
FF02::2 |
表示鏈路本地範圍所有路由器的組播地址 |
另外,還有一類組播地址:被請求節點(Solicited-Node)地址。該地址主要用於獲取同一鏈路上鄰居節點的鏈路層地址及實現重複地址檢測。每一個單播或任播IPv6地址都有一個對應的被請求節點地址。其格式為:
FF02:0:0:0:0:1:FFXX:XXXX
其中,FF02:0:0:0:0:1:FF為104位固定格式;XX:XXXX為單播或任播IPv6地址的後24位。
IPv6單播地址中的接口標識符用來唯一標識鏈路上的一個接口。目前IPv6單播地址基本上都要求接口標識符為64位。
對於所有IEEE 802接口類型(例如,VLAN接口)的接口,IEEE EUI-64格式的接口標識符是從接口的鏈路層地址(MAC地址)變化而來的。IPv6地址中的接口標識符是64位,而MAC地址是48位,因此需要在MAC地址的中間位置(從高位開始的第24位後)插入十六進製數FFFE(1111111111111110)。為了使接口標識符的作用範圍與原MAC地址一致,還要將Universal/Local (U/L)位(從高位開始的第7位)進行取反操作。最後得到的這組數就作為EUI-64格式的接口標識符。
圖1-2 MAC地址到EUI-64格式接口標識符的轉換過程
對於Tunnel類型的接口,IEEE EUI-64格式的接口標識符的低32位為Tunnel接口的源IPv4地址,ISATAP隧道的接口標識符的高32位為0000:5EFE,其他隧道的接口標識符的高32位為全0。關於各種隧道的介紹,請參見“IP隧道及安全VPN配置指導”中的“IPv4 over IPv4隧道”和“IPv6 over IPv6隧道”。
對於其他接口類型(例如,Serial接口)的接口,IEEE EUI-64格式的接口標識符由設備隨機生成。
報文從源端到目的端的傳輸路徑中所經過的鏈路可能具有不同的MTU。在IPv6中,當報文的長度大於鏈路的MTU時,報文的分片將在源端進行,從而減輕中間轉發設備的處理壓力,合理利用網絡資源。
PMTU(Path MTU,路徑MTU)發現機製的目的就是要找到從源端到目的端的路徑上最小的MTU。如圖1-3所示,PMTU的工作過程為:
(1) 源端主機按照自己的MTU對報文進行分片,之後向目的主機發送報文。
(2) 中間轉發設備接收到該報文進行轉發時,如果發現轉發報文的接口支持的MTU值小於報文長度,則會丟棄報文,並給源端返回一個ICMPv6差錯報文,其中包含了轉發失敗的接口的MTU。
(3) 源主機收到該差錯報文後,將按照報文中所攜帶的MTU重新對報文進行分片並發送。
如此反複,直到目的端主機收到這個報文,從而確定報文從源端到目的端路徑中的最小MTU。
圖1-3 PMTU發現工作過程
相關的協議規範有:
· RFC 1881:IPv6 Address Allocation Management
· RFC 1887:An Architecture for IPv6 Unicast Address Allocation
· RFC 1981:Path MTU Discovery for IP version 6
· RFC 2375:IPv6 Multicast Address Assignments
· RFC 2460:Internet Protocol, Version 6 (IPv6) Specification
· RFC 2464:Transmission of IPv6 Packets over Ethernet Networks
· RFC 2526:Reserved IPv6 Subnet Anycast Addresses
· RFC 3307:Allocation Guidelines for IPv6 Multicast Addresses
· RFC 4191:Default Router Preferences and More-Specific Routes
· RFC 4291:IP Version 6 Addressing Architecture
· RFC 4443:Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
· RFC 4862:IPv6 Stateless Address Autoconfiguration
IPv6基礎配置任務如下:
(1) 配置IPv6地址
請選擇以下至少一項任務進行配置:
(2) (可選)配置PMTU發現
¡ 配置接口MTU
(3) (可選)配置ICMPv6報文發送功能
¡ 配置發送ICMPv6差錯報文對應的令牌桶容量和令牌刷新周期
(4) (可選)配置路由器重編號功能
(5) (可選)開啟三層報文統計功能
(6) (可選)開啟IPv6分片報文本地重組功能
(7) (可選)配置IPv6基於帶寬的負載分擔
IPv6全球單播地址可以通過下麵幾種方式配置:
· 采用EUI-64格式形成:當配置采用EUI-64格式形成IPv6地址時,接口的IPv6地址的前綴需要手工配置,而接口ID則由接口自動生成。
· 手工配置:用戶手工配置IPv6全球單播地址。
· 引用前綴生成IPv6地址:引用前綴生成IPv6地址時,接口的IPv6地址的前綴可以通過手工配置或DHCPv6動態獲取,同時該前綴還會分配給終端設備。
· 無狀態自動配置:根據接收到的RA報文中攜帶的地址前綴信息,自動生成IPv6全球單播地址。
每個接口可以有多個全球單播地址。
手工配置的全球單播地址(包括采用EUI-64格式形成的全球單播地址)的優先級高於自動生成的全球單播地址。如果在接口已經自動生成全球單播地址的情況下,手工配置前綴相同的全球單播地址,不會覆蓋之前自動生成的全球單播地址。如果刪除手工配置的全球單播地址,設備還可以使用自動生成的全球單播地址進行通信。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 采用EUI-64格式形成IPv6地址。
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } eui-64
缺省情況下,接口上未配置IPv6全球單播地址。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 手工指定IPv6地址。
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length }
缺省情況下,接口上未配置IPv6全球單播地址。
在配置了無狀態自動配置IPv6地址功能後,接口會根據接收到的RA報文中攜帶的地址前綴信息和接口ID,自動生成IPv6全球單播地址。如果接口是IEEE 802類型的接口(例如,以太網接口、VLAN接口),其接口ID是由MAC地址根據一定的規則生成,此接口ID具有全球唯一性。對於不同的前綴,接口ID部分始終不變,攻擊者通過接口ID可以很方便的識別出通信流量是由哪台設備產生的,並分析其規律,會造成一定的安全隱患。
如果在地址無狀態自動配置時,自動生成接口ID不斷變化的IPv6地址,就可以加大攻擊的難度,從而保護網絡。為此,設備提供了臨時地址功能,使得係統可以生成臨時地址。配置該功能後,通過地址無狀態自動配置,IEEE 802類型的接口可以同時生成兩類地址:
· 公共地址:地址前綴采用RA報文攜帶的前綴,接口ID由MAC地址產生。接口ID始終不變。
· 臨時地址:地址前綴采用RA報文攜帶的前綴,接口ID由係統根據MD5算法計算產生。接口ID不斷變化。
在配置了優先選擇臨時地址功能前提下發送報文,係統將優先選擇臨時地址作為報文的源地址。當臨時地址的有效生命期過期後,這個臨時地址將被刪除,同時,係統會通過MD5算法重新生成一個接口ID不同的臨時地址。所以,該接口發送報文的源地址的接口ID總是在不停變化。如果生成的臨時地址因為DAD衝突不可用,就采用公共地址作為報文的源地址。
臨時地址的首選生命期和有效生命期的確定原則如下:
· 首選生命期是如下兩個值之中的較小者:“RA前綴中的首選生命期”和“配置的臨時地址首選生命期減去DESYNC_FACTOR”。DESYNC_FACTOR是一個0~600秒的隨機值。
· 有效生命期是如下兩個值之中的較小者:“RA前綴中的有效生命期”和“配置的臨時地址有效生命期”。
如果RA報文攜帶的前綴長度不是64位,則該接口自動生成IPv6全球單播地址失敗。
設備的接口必須啟用地址無狀態自動配置功能才能生成臨時地址,而且臨時地址不會覆蓋公共地址,因此會出現一個接口下有多個前綴相同但是接口ID不同的地址。
如果公共地址生成失敗,例如前綴衝突,則不會生成臨時地址。
在接口上開啟無狀態地址自動配置功能後,接口通過無狀態自動配置方式生成全球單播地址。如果通過undo ipv6 address auto命令關閉該功能,將刪除該接口上所有自動生成的全球單播地址和鏈路本地地址。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟無狀態地址自動配置功能,使接口通過無狀態自動配置方式生成全球單播地址。
ipv6 address auto
缺省情況下,接口上無狀態地址自動配置功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 配置係統生成臨時地址。
ipv6 temporary-address [ valid-lifetime preferred-lifetime ]
缺省情況下,係統不生成臨時地址。
(3) 優先選擇臨時地址作為報文的源地址。
ipv6 prefer temporary-address
缺省情況下,不會用臨時地址作為接口發送報文的源地址。
(1) 進入係統視圖。
system-view
(2) 配置IPv6前綴。請選擇其中一項進行配置。
¡ 手工配置靜態的IPv6前綴。
ipv6 prefix prefix-number ipv6-prefix/prefix-length
缺省情況下,未配置靜態IPv6前綴。
¡ 配置設備作為DHCPv6客戶端動態獲取IPv6前綴,並生成指定編號的IPv6前綴。
配置方法請參見“三層技術-IP業務配置指導”中的“DHCPv6客戶端”。
(3) 進入接口視圖。
interface interface-type interface-number
(4) 引用前綴生成接口上的IPv6地址,並將此前綴分配給終端設備。
ipv6 address prefix-number sub-prefix/prefix-length
缺省情況下,接口上未引用前綴,也不會向終端設備分配該前綴。
IPv6的鏈路本地地址可以通過兩種方式獲得:
· 自動生成:設備根據鏈路本地地址前綴(FE80::/10)及接口的鏈路層地址,自動為接口生成鏈路本地地址;
· 手工指定:用戶手工配置IPv6鏈路本地地址。
當接口配置了IPv6全球單播地址後,同時會自動生成鏈路本地地址。且與采用ipv6 address auto link-local命令生成的鏈路本地地址相同。此時如果手工指定接口的鏈路本地地址,則手工指定的有效。如果刪除手工指定的鏈路本地地址,則接口的鏈路本地地址恢複為係統自動生成的地址。
undo ipv6 address auto link-local命令隻能刪除使用ipv6 address auto link-local命令生成的鏈路本地地址。即如果此時已經配置了IPv6全球單播地址,由於係統會自動生成鏈路本地地址,則接口仍有鏈路本地地址;如果此時沒有配置IPv6全球單播地址,則接口沒有鏈路本地地址。
每個接口隻能有一個鏈路本地地址,為了避免鏈路本地地址衝突,推薦使用鏈路本地地址的自動生成方式。
配置鏈路本地地址時,手工指定方式的優先級高於自動生成方式。即如果先采用自動生成方式,之後手工指定,則手工指定的地址會覆蓋自動生成的地址;如果先手工指定,之後采用自動生成的方式,則自動配置不生效,接口的鏈路本地地址仍是手工指定的。此時,如果刪除手工指定的地址,則自動生成的鏈路本地地址會生效。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置自動生成鏈路本地地址。
ipv6 address auto link-local
缺省情況下,接口上沒有鏈路本地地址。當接口配置了IPv6全球單播地址後,會自動生成鏈路本地地址。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 手工指定接口的鏈路本地地址。
ipv6 address ipv6-address link-local
缺省情況下,未指定接口的鏈路本地地址。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置IPv6任播地址。
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } anycast
缺省情況下,接口上未配置任播地址。
當設備作為中間設備轉發報文時,會根據接口MTU值對報文進行轉發。如果發現報文長度比轉發接口的MTU值大,則會將其丟棄,同時將轉發接口的MTU值通過ICMPv6報文的“Packet Too Big”消息發給源端。
為減少報文被丟棄帶來的額外流量開銷,請根據實際組網環境設置合適的接口MTU值。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置接口MTU。
ipv6 mtu size
缺省情況下,接口MTU取值為1280字節。
動態PMTU是設備通過“1.1.3 IPv6 PMTU發現”中的方法學習到設備作為源端到目的端的路徑上的最小接口MTU。設備學習到動態PMTU後,會使用動態PMTU指導後續報文的轉發。當動態PMTU老化時間超時後,源設備會通過PMTU發現機製重新確定發送報文的PMTU。
配置動態PMTU的老化時間隻對之後學習到的動態PMTU生效,不改變配置前生成的動態PMTU的老化時間。
(1) 進入係統視圖。
system-view
(2) 配置PMTU老化時間。
ipv6 pathmtu age age-time
缺省情況下,PMTU的老化時間是10分鍾。
在IPv6網絡中,中間轉發設備不對報文進行分片,報文分片由源設備完成。這樣能保證報文在整個傳輸過程中不分片,減輕了中間轉發設備的工作壓力。
通常情況下,源設備使用“1.1.3 IPv6 PMTU發現”中的方法確定PMTU,即動態PMTU,源設備根據動態PMTU對報文進行分片、發送。但在特殊情況下,為了保護網絡設備的安全,避免受到長度超大的報文的攻擊,需要使用ipv6 pathmtu命令對指定IPv6地址配置靜態PMTU,控製源端到目的端可轉發報文的最大長度。
當設備作為源端向目的端發送報文時,如果判斷出對目的IPv6地址配置了靜態的PMTU,則取發送接口的MTU和靜態PMTU值中的較小值和報文長度進行比較:
· 如果報文長度小於/等於較小值時,不對報文進行分片,直接發送。
· 如果報文長度大於較小值,則根據較小值對報文進行分片,然後發送第一個分片。
發送過程中,如果源設備接收到中間設備返回的“Packet Too Big”消息,則本次報文發送失敗。
靜態PMTU的優先級高於動態PMTU的優先級,靜態PMTU永遠不會老化。
(1) 進入係統視圖。
system-view
(2) 配置指定IPv6地址對應的靜態PMTU值。
ipv6 pathmtu [ vpn-instance vpn-instance-name ] ipv6-address value
缺省情況下,未配置靜態PMTU值。
如果網絡中短時間內發送的ICMPv6差錯報文過多,將可能導致網絡擁塞。為了避免這種情況,用戶可以控製在指定時間內發送ICMPv6差錯報文的最大個數,目前采用令牌桶算法來實現。
用戶可以設置令牌桶的容量,即令牌桶中可以同時容納的令牌數;同時可以設置令牌桶的刷新周期,即每隔多長時間發放一個令牌到令牌桶中,直到令牌桶中的令牌數達到配置的容量。一個令牌表示允許發送一個ICMPv6差錯報文,每當發送一個ICMPv6差錯報文,則令牌桶中減少一個令牌。如果連續發送的ICMPv6差錯報文超過了令牌桶的容量,則後續的ICMPv6差錯報文將不能被發送出去,直到按照所設置的刷新頻率將新的令牌放入令牌桶中。
(1) 進入係統視圖。
system-view
(2) 配置發送ICMPv6差錯報文對應的令牌桶容量和令牌刷新周期。
ipv6 icmpv6 error-interval interval [ bucketsize ]
缺省情況下,令牌桶容量為10,令牌刷新周期為100毫秒。
刷新周期為0時,表示不限製ICMPv6差錯報文的發送。
(1) 進入係統視圖。
system-view
(2) 配置設備允許回複組播形式的Echo request報文。
ipv6 icmpv6 multicast-echo-reply enable
缺省情況下,不允許設備回複組播形式的Echo request報文。
ICMPv6目的不可達報文發送功能是在設備收到IPv6數據報文後,如果發生目的不可達的差錯,則將報文丟棄並給源端發送ICMPv6目的不可達差錯報文。
設備在滿足下列任一條件時會發送目的不可達報文:
· 設備在轉發報文時,如果在路由表中沒有找到對應的轉發路由,且路由表中沒有缺省路由,則給源端發送“沒有到達目的地址的路由”ICMPv6差錯報文;
· 設備在轉發報文時,如果是因為管理策略(例如防火牆過濾、ACL等)導致無法發送報文時,則給源端發送“與目的地址的通信被管理策略禁止”ICMPv6差錯報文;
· 設備在轉發報文時,如果報文的目的IPv6地址超出源IPv6地址的範圍(例如,報文的源IPv6地址為鏈路本地地址,報文的目的IPv6地址為全球單播地址),會導致報文無法到達目的端,此時要給源端發送“超出源地址範圍”ICMPv6差錯報文;
· 設備在轉發報文時,如果不能解析目的IPv6地址對應的鏈路層地址,則給源端發送“地址不可達”ICMPv6差錯報文;
· 設備收到目的地址為本地、傳輸層協議為UDP的數據報文時,如果報文的目的端口號與正在使用的進程不匹配,則給源端發送“端口不可達”ICMPv6差錯報文。
由於ICMPv6目的不可達報文傳遞給用戶進程的信息為不可達信息,如果有用戶惡意攻擊,可能會影響終端用戶的正常使用。為了避免上述現象發生,可以關閉設備的ICMPv6目的不可達報文發送功能,從而減少網絡流量、防止遭到惡意攻擊。
(1) 進入係統視圖。
system-view
(2) 開啟設備的ICMPv6目的不可達報文的發送功能。
ipv6 unreachables enable
缺省情況下,ICMPv6目的不可達報文發送功能處於關閉狀態。
ICMPv6超時報文發送功能是在設備收到IPv6數據報文後,如果發生超時差錯,則將報文丟棄並給源端發送ICMPv6超時差錯報文。
設備在滿足下列任一條件時會發送ICMPv6超時報文:
· 設備收到IPv6數據報文後,如果報文的目的地不是本地且報文的Hop limit字段是1,則發送“Hop limit超時”ICMPv6差錯報文;
· 設備收到目的地址為本地的IPv6數據報文的第一個分片後,啟動定時器,如果所有分片報文到達之前定時器超時,則會發送“重組超時”ICMPv6差錯報文。
如果接收到大量需要發送ICMPv6差錯報文的惡意攻擊報文,設備會因為處理大量該類報文而導致性能降低。
為了避免上述現象發生,可以關閉設備的ICMPv6超時報文發送功能,從而減少網絡流量、防止遭到惡意攻擊。
(1) 進入係統視圖。
system-view
(2) 開啟設備的ICMPv6超時報文的發送功能。
ipv6 hoplimit-expires enable
缺省情況下,ICMPv6超時報文發送功能處於開啟狀態。
當主機啟動時,它的路由表中可能隻有一條到缺省網關的缺省路由。當滿足一定的條件時,缺省網關會向源主機發送ICMPv6重定向報文,通知主機重新選擇更好的下一跳進行後續報文的發送。
同時滿足下列條件時,設備會發送ICMPv6重定向報文:
· 接收和轉發數據報文的接口是同一接口;
· 被選擇的路由本身沒有被ICMPv6重定向報文創建或修改過;
· 被選擇的路由不是設備的缺省路由;
ICMPv6重定向報文發送功能可以簡化主機的管理,使具有很少選路信息的主機逐漸建立較完善的路由表,從而找到最佳路由。但是由於重定向功能會在主機的路由表中增加主機路由,當增加的主機路由很多時,會降低主機性能。因此缺省情況下設備的ICMPv6重定向報文發送功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 開啟設備的ICMPv6重定向報文發送功能。
ipv6 redirects enable
缺省情況下,ICMPv6重定向報文發送功能處於關閉狀態。
在網絡中IPv6地址配置較多的情況下,收到ICMPv6報文時,用戶很難根據報文的源IPv6地址判斷報文來自哪台設備。為了簡化這一判斷過程,可以配置ICMPv6報文指定源地址功能。用可配置特定地址(如環回口地址)為ICMPv6報文的源地址,可以簡化判斷。
設備發送ICMPv6差錯報文(TTL超時、報文過大、端口不可達和參數錯誤等)和ping echo request報文時,都可以通過上述命令指定報文的源地址。
用戶發送ping echo request報文時,如果ping命令中已經指定源地址,則使用該源地址,否則使用ipv6 icmpv6 source配置的源地址。
(1) 進入係統視圖。
system-view
(2) 開啟ICMPv6報文指定源地址功能。
ipv6 icmpv6 source [ vpn-instance vpn-instance-name ] ipv6-address
缺省情況下,ICMPv6報文指定源地址功能處於關閉狀態。
網絡管理員可以通過一台路由器修改整個網絡的前綴信息,路由器之間通過RR(Router Renumber,路由器重編號)報文的交互來控製實現。
如圖1-4所示,位於上行鏈路的Router A可以和下行鏈路的Router B、Router C和Router D進行RR報文的交互,指導下行鏈路的路由器對本設備上配置的前綴、地址進行修改,進而修改了下行鏈路的路由器在自動配置過程中發送RA消息中攜帶的前綴信息,最後達到修改整個網絡地址前綴的目的。
下行鏈路的路由器在接收處理RR報文前,必須在RR報文的入接口上使能路由器重編號功能。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟路由器重編號功能。
ipv6 router-renumber enable
缺省情況下,路由器重編號功能處於關閉狀態。
開啟本功能後,設備會統計接口接收或發送的IPv6報文的數量,該統計信息可通過display ipv6 statistics命令查看。
接口報文流量過大時,開啟本功能會造成設備CPU占用率高,影響轉發性能。因此,當用戶不需要統計接口接收或發送的IPv6報文數量時,建議關閉本功能。
對於同一個接口來說,如下三個功能會占用設備中的同一份硬件資源,所以同時開啟多個功能時,可能會導致後配置的功能不生效:
· 接口出方向應用含有匹配IPv6地址規則的QoS策略。
· 執行ipv6 netstream outbound命令開啟接口出方向IPv6 NetStream功能。
· 執行statistics l3-packet enable outbound命令開啟三層報文統計功能。
有關ipv6 netstream命令的詳細介紹,請參見“網絡管理和監控命令參考”中的“IPv6 NetStream”;有關qos apply policy命令的詳細介紹,請參見“ACL和QoS命令參考”中的“QoS命令”。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟三層報文統計功能。
statistics l3-packet enable { inbound | outbound }
缺省情況下,三層報文統計功能處於關閉狀態。
當分布式設備的某塊單板收到目的為本設備的IPv6分片報文時,需要把分片報文送到主用主控板進行重組,這樣會導致報文重組性能較低的問題。
當開啟IPv6分片報文本地重組功能後,分片報文會在該單板上直接進行報文重組,這樣就能提高分片報文的重組性能。
開啟IPv6分片報文本地重組功能後,如果分片報文是從設備上不同的單板進入的,會導致IPv6分片報文本地無法重組成功。
(1) 進入係統視圖。
system-view
(2) 開啟設備的IPv6分片報文本地重組功能。
ipv6 reassemble local enable
缺省情況下,IPv6分片報文本地重組功能處於關閉狀態。
在設備上配置了IPv6基於帶寬的負載分擔後,如果IPv6報文轉發時查到多個出接口/下一跳,則按照接口的帶寬值計算出各個接口應該分配的報文比例,然後按照帶寬比例對報文進行轉發。
支持負載分擔協議(如LISP)的設備,無論是否配置了負載分擔命令,負載分擔比例都以協議定義的負載分擔比例為準。
(1) 進入係統視圖。
system-view
(2) 開啟IPv6基於帶寬的負載分擔功能。
ipv6 bandwidth-based-sharing
缺省情況下,IPv6基於帶寬的負載分擔功能處於關閉狀態。
(3) 進入接口視圖。
interface interface-type interface-number
(4) 配置接口的期望帶寬值。
bandwidth bandwidth
缺省情況下,接口負載帶寬為接口的物理帶寬。
有關bandwidth命令的詳細介紹,請參見“接口管理命令參考”中的“接口公共命令”。
可在任意視圖下執行以下命令:
· 顯示接口的IPv6信息。
display ipv6 interface [ interface-type [ interface-number ] ] [ brief ]
· 顯示接口的IPv6前綴信息。
display ipv6 interface interface-type interface-number prefix
· 顯示IPv6前綴信息。
display ipv6 prefix [ prefix-number ]
可在任意視圖下執行以下命令:
· 顯示IPv6 RawIP連接摘要信息。
display ipv6 rawip [ slot slot-number ]
· 顯示IPv6 RawIP連接詳細信息。
display ipv6 rawip verbose [ slot slot-number [ pcb pcb-index ] ]
可在任意視圖下執行以下命令:
· 顯示IPv6 TCP連接摘要信息。
display ipv6 tcp [ slot slot-number ]
· 顯示IPv6 TCP連接詳細信息。
display ipv6 tcp verbose [ slot slot-number [ pcb pcb-index ] ]
可在任意視圖下執行以下命令:
· 顯示IPv6 UDP連接摘要信息。
display ipv6 udp [ slot slot-number ]
· 顯示IPv6 UDP連接詳細信息。
display ipv6 udp verbose [ slot slot-number [ pcb pcb-index ] ]
可在任意視圖下執行以下命令:
· 顯示IPv6報文及ICMPv6報文的統計信息。
display ipv6 statistics [ slot slot-number ]
· 顯示IPv6 ICMP流量統計信息。
display ipv6 icmp statistics [ slot slot-number ]
· 顯示IPv6 UDP流量統計信息。
display udp statistics [ slot slot-number ]
本命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“IP性能優化”。
請在用戶視圖下執行以下命令:
· 清除IPv6報文及ICMPv6報文的統計信息。
reset ipv6 statistics [ slot slot-number ]
· 清除IPv6 UDP流量統計信息。
reset udp statistics
本命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“IP性能優化”。
可在任意視圖下執行以下命令,顯示IPv6的PMTU信息。
display ipv6 pathmtu [ vpn-instance vpn-instance-name ] { ipv6-address | { all | dynamic | static } [ count ] }
請在用戶視圖下執行以下命令,清除IPv6的PMTU信息。
reset ipv6 pathmtu { all | dynamic | static }
可在任意視圖下執行以下命令,顯示路由器重編號統計信息。
display ipv6 router-renumber statistics
請在用戶視圖下執行以下命令,清除路由器重編號統計信息。
reset ipv6 router-renumber statistics
可在任意視圖下執行以下命令,顯示IPv6 FIB信息。
display ipv6 fib [ vpn-instance vpn-instance-name ] [ ipv6-address [ prefix-length ] ]
· 如圖1-5所示,Host、Router A和Router B之間通過以太網接口相連,在接口上配置IPv6地址,驗證它們之間的互通性。
· Router B有可以到Host的路由。
· 在Host上安裝IPv6,根據IPv6鄰居發現協議自動配置IPv6地址,有可以到Router B的路由。
(1) 配置Router A
# 手工指定接口HundredGigE1/0/1的全球單播地址。
<RouterA> system-view
[RouterA] interface hundredgige 1/0/1
[RouterA-HundredGigE1/0/1] ipv6 address 3001::1/64
[RouterA-HundredGigE1/0/1] quit
# 手工指定接口HundredGigE1/0/2的全球單播地址,並允許其發布RA消息。(缺省情況下,所有的接口不會發布RA消息)
[RouterA] interface hundredgige 1/0/2
[RouterA-HundredGigE1/0/2] ipv6 address 2001::1/64
[RouterA-HundredGigE1/0/2] undo ipv6 nd ra halt
[RouterA-HundredGigE1/0/2] quit
(2) 配置Router B
# 手工指定接口HundredGigE1/0/1的全球單播地址。
<RouterB> system-view
[RouterB] interface hundredgige 1/0/1
[RouterB-HundredGigE1/0/1] ipv6 address 3001::2/64
[RouterB-HundredGigE1/0/1] quit
# 配置IPv6靜態路由,該路由的目的地址為2001::/64,下一跳地址為3001::1。
[RouterB] ipv6 route-static 2001:: 64 3001::1
(3) 配置Host
在Host上安裝IPv6,根據IPv6鄰居發現協議自動配置IPv6地址。
# 從Router A上查看接口HundredGigE1/0/2的鄰居信息。
[RouterA] display ipv6 neighbors interface hundredgige 1/0/2
Type: S-Static D-Dynamic R-Rule IS-Invalid static
IPv6 address MAC address VLAN/VSI Interface State T Aging
FE80::215:E9FF:FEA6:7D14 0015-e9a6-7d14 N/A HGE1/0/2 STALE D 1238
2001::15B:E0EA:3524:E791 0015-e9a6-7d14 N/A HGE1/0/2 STALE D 1248
通過上麵的信息可以知道Host上獲得的IPv6全球單播地址為2001::15B:E0EA:3524:E791。
# 顯示Router A的接口信息,可以看到各接口配置的IPv6全球單播地址。
[RouterA] display ipv6 interface hundredgige 1/0/1
HundredGigE1/0/1 current state: UP
Line protocol current state: UP
IPv6 is enabled, link-local address is FE80::20F:E2FF:FE00:2
Global unicast address(es):
3001::1, subnet is 3001::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
FF02::1:FF00:2
MTU is 1500 bytes
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
IPv6 Packet statistics:
InReceives: 25829
InTooShorts: 0
InTruncatedPkts: 0
InHopLimitExceeds: 0
InBadHeaders: 0
InBadOptions: 0
ReasmReqds: 0
ReasmOKs: 0
InFragDrops: 0
InFragTimeouts: 0
OutFragFails: 0
InUnknownProtos: 0
InDelivers: 47
OutRequests: 89
OutForwDatagrams: 48
InNoRoutes: 0
InTooBigErrors: 0
OutFragOKs: 0
OutFragCreates: 0
InMcastPkts: 6
InMcastNotMembers: 25747
OutMcastPkts: 48
InAddrErrors: 0
InDiscards: 0
OutDiscards: 0
[RouterA] display ipv6 interface hundredgige 1/0/2
HundredGigE1/0/2 current state: UP
Line protocol current state: UP
IPv6 is enabled, link-local address is FE80::20F:E2FF:FE00:1C0
Global unicast address(es):
2001::1, subnet is 2001::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
FF02::1:FF00:1C0
MTU is 1500 bytes
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
ND advertised reachable time is 0 milliseconds
ND advertised retransmit interval is 0 milliseconds
ND router advertisements are sent every 600 seconds
ND router advertisements live for 1800 seconds
Hosts use stateless autoconfig for addresses
IPv6 Packet statistics:
InReceives: 272
InTooShorts: 0
InTruncatedPkts: 0
InHopLimitExceeds: 0
InBadHeaders: 0
InBadOptions: 0
ReasmReqds: 0
ReasmOKs: 0
InFragDrops: 0
InFragTimeouts: 0
OutFragFails: 0
InUnknownProtos: 0
InDelivers: 159
OutRequests: 1012
OutForwDatagrams: 35
InNoRoutes: 0
InTooBigErrors: 0
OutFragOKs: 0
OutFragCreates: 0
InMcastPkts: 79
InMcastNotMembers: 65
OutMcastPkts: 938
InAddrErrors: 0
InDiscards: 0
OutDiscards: 0
# 顯示Router B的接口信息,可以看到接口配置的IPv6全球單播地址。
[RouterB] display ipv6 interface hundredgige 1/0/1
HundredGigE1/0/1 current state: UP
Line protocol current state: UP
IPv6 is enabled, link-local address is FE80::20F:E2FF:FE00:1234
Global unicast address(es):
3001::2, subnet is 3001::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:2
FF02::1:FF00:1234
MTU is 1500 bytes
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
IPv6 Packet statistics:
InReceives: 117
InTooShorts: 0
InTruncatedPkts: 0
InHopLimitExceeds: 0
InBadHeaders: 0
InBadOptions: 0
ReasmReqds: 0
ReasmOKs: 0
InFragDrops: 0
InFragTimeouts: 0
OutFragFails: 0
InUnknownProtos: 0
InDelivers: 117
OutRequests: 83
OutForwDatagrams: 0
InNoRoutes: 0
InTooBigErrors: 0
OutFragOKs: 0
OutFragCreates: 0
InMcastPkts: 28
InMcastNotMembers: 0
OutMcastPkts: 7
InAddrErrors: 0
InDiscards: 0
OutDiscards: 0
# 在Host上使用Ping測試和Router A及Router B的互通性;在Router B上使用Ping測試和Router A及Host的互通性。在Ping鏈路本地地址時,使用-i參數,來指定鏈路本地地址的接口。
[RouterB] ping ipv6 -c 1 3001::1
Ping6(56 data bytes) 3001::2 --> 3001::1, press CTRL_C to break
56 bytes from 3001::1, icmp_seq=0 hlim=64 time=4.404 ms
--- Ping6 statistics for 3001::1 ---
1 packet(s) transmitted, 1 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 4.404/4.404/4.404/0.000 ms
[RouterB] ping ipv6 -c 1 2001::15B:E0EA:3524:E791
Ping6(56 data bytes) 3001::2 --> 2001::15B:E0EA:3524:E791, press CTRL_C to break
56 bytes from 2001::15B:E0EA:3524:E791, icmp_seq=0 hlim=64 time=5.404 ms
--- Ping6 statistics for 2001::15B:E0EA:3524:E791 ---
1 packet(s) transmitted, 1 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 5.404/5.404/5.404/0.000 ms
從Host上也可以ping通Router B和Router A,證明它們是互通的。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!