08-IPv6基礎配置
本章節下載: 08-IPv6基礎配置 (439.8 KB)
· 本文中所指的“接口”包括Vlan接口、三層以太網端口等。三層以太網端口是指被配置為三層模式的以太網端口,有關以太網端口模式切換的操作,請參見“二層技術-以太網交換配置指導”中的“以太網端口配置”。
· 僅S5500-EI係列交換機支持配置三層以太網端口。
· 僅S5500-EI係列交換機支持vpn-instance vpn-instance-name參數。
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支持有狀態地址配置和無狀態地址配置:
· 有狀態地址配置是指從服務器(如DHCP服務器)獲取IPv6地址及相關信息;
· 無狀態地址配置是指主機根據自己的鏈路層地址及路由器發布的前綴信息自動配置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地址最左邊多少位為地址前綴。
IPv6主要有三種類型的地址:單播地址、組播地址和任播地址。
· 單播地址:用來唯一標識一個接口,類似於IPv4的單播地址。發送到單播地址的數據報文將被傳送給此地址所標識的接口。
· 組播地址:用來標識一組接口(通常這組接口屬於不同的節點),類似於IPv4的組播地址。發送到組播地址的數據報文被傳送給此地址所標識的所有接口。
· 任播地址:用來標識一組接口(通常這組接口屬於不同的節點)。發送到任播地址的數據報文被傳送給此地址所標識的一組接口中距離源節點最近(根據使用的路由協議進行度量)的一個接口。
IPv6中沒有廣播地址,廣播地址的功能通過組播地址來實現。
IPv6地址類型是由地址前麵幾位(稱為格式前綴)來指定的,主要地址類型與格式前綴的對應關係如表1-1所示。
地址類型 |
格式前綴(二進製) |
IPv6前綴標識 |
|
單播地址 |
未指定地址 |
00...0 (128 bits) |
::/128 |
環回地址 |
00...1 (128 bits) |
::1/128 |
|
鏈路本地地址 |
1111111010 |
FE80::/10 |
|
站點本地地址 |
1111111011 |
FEC0::/10 |
|
全球單播地址 |
其他形式 |
- |
|
組播地址 |
11111111 |
FF00::/8 |
|
任播地址 |
從單播地址空間中進行分配,使用單播地址的格式 |
IPv6單播地址的類型可有多種,包括全球單播地址、鏈路本地地址和站點本地地址等。
· 全球單播地址等同於IPv4公網地址,提供給網絡服務提供商。這種類型的地址允許路由前綴的聚合,從而限製了全球路由表項的數量。
· 鏈路本地地址用於鄰居發現協議和無狀態自動配置中鏈路本地上節點之間的通信。使用鏈路本地地址作為源或目的地址的數據報文不會被轉發到其他鏈路上。
· 站點本地地址與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 EUI-64(64-bit Extended Unique Identifier,64位擴展唯一標識符)格式的接口標識符的生成方法不同,分別介紹如下:
· 所有IEEE 802接口類型(例如,VLAN接口):IEEE EUI-64格式的接口標識符是從接口的鏈路層地址(MAC地址)變化而來的。IPv6地址中的接口標識符是64位,而MAC地址是48位,因此需要在MAC地址的中間位置(從高位開始的第24位後)插入十六進製數FFFE(1111111111111110)。為了表示這個從MAC地址得到的接口標識符是全球唯一的,還要將Universal/Local (U/L)位(從高位開始的第7位)設置為“1”。最後得到的這組數就作為EUI-64格式的接口標識符。
圖1-2 MAC地址到EUI-64格式接口標識符的轉換過程
· Tunnel接口:IEEE EUI-64格式的接口標識符的低32位為Tunnel接口的源IPv4地址,ISATAP隧道的接口標識符的高32位為0000:5EFE,其他隧道的接口標識符的高32位為全0。關於各種隧道的介紹,請參見“三層技術-IP業務配置指導”中的“隧道”。
· 其他接口類型:IEEE EUI-64格式的接口標識符由設備隨機生成。
IPv6鄰居發現(Neighbor Discovery,ND)協議使用五種類型的ICMPv6消息,實現下麵一些功能:地址解析、驗證鄰居是否可達、重複地址檢測、路由器發現/前綴發現、地址自動配置和重定向等功能。
鄰居發現協議使用的ICMPv6消息的類型及作用如表1-3所示。
表1-3 鄰居發現協議使用的ICMPv6消息類型及作用
ICMPv6消息 |
類型號 |
作用 |
鄰居請求消息NS(Neighbor Solicitation) |
135 |
獲取鄰居的鏈路層地址 |
驗證鄰居是否可達 |
||
進行重複地址檢測 |
||
鄰居通告消息NA(Neighbor Advertisement) |
136 |
對NS消息進行響應 |
節點在鏈路層變化時主動發送NA消息,向鄰居節點通告本節點的變化信息 |
||
路由器請求消息RS(Router Solicitation) |
133 |
節點啟動後,通過RS消息向路由器發出請求,請求前綴和其他配置信息,用於節點的自動配置 |
路由器通告消息RA(Router Advertisement) |
134 |
對RS消息進行響應 |
在沒有抑製RA消息發布的條件下,路由器會周期性地發布RA消息,其中包括前綴信息選項和一些標誌位的信息 |
||
重定向消息(Redirect) |
137 |
當滿足一定的條件時,缺省網關通過向源主機發送重定向消息,使主機重新選擇正確的下一跳地址進行後續報文的發送 |
鄰居發現協議提供的主要功能如下:
獲取同一鏈路上鄰居節點的鏈路層地址(與IPv4的ARP功能相同),通過鄰居請求消息NS和鄰居通告消息NA實現。如圖1-3所示,節點A要獲取節點B的鏈路層地址。
(1) 節點A以組播方式發送NS消息。NS消息的源地址是節點A的接口IPv6地址,目的地址是節點B的被請求節點組播地址,消息內容中包含了節點A的鏈路層地址。
(2) 節點B收到NS消息後,判斷報文的目的地址是否為自己的IPv6地址對應的被請求節點組播地址。如果是,則節點B可以學習到節點A的鏈路層地址,並以單播方式返回NA消息,其中包含了自己的鏈路層地址。
(3) 節點A從收到的NA消息中就可獲取到節點B的鏈路層地址。
在獲取到鄰居節點的鏈路層地址後,通過鄰居請求消息NS和鄰居通告消息NA可以驗證鄰居節點是否可達。
(1) 節點發送NS消息,其中目的地址是鄰居節點的IPv6地址。
(2) 如果收到鄰居節點的確認報文,則認為鄰居可達;否則,認為鄰居不可達。
當節點獲取到一個IPv6地址後,需要使用重複地址檢測功能確定該地址是否已被其他節點使用(與IPv4的免費ARP功能相似)。通過NS和NA可以實現重複地址檢測,如圖1-4所示。
(1) 節點A發送NS消息,NS消息的源地址是未指定地址::,目的地址是待檢測的IPv6地址對應的被請求節點組播地址,消息內容中包含了待檢測的IPv6地址。
(2) 如果節點B已經使用這個IPv6地址,則會返回NA消息。其中包含了自己的IPv6地址。
(3) 節點A收到節點B發來的NA消息,就知道該IPv6地址已被使用。反之,則說明該地址未被使用,節點A就可使用此IPv6地址。
路由器發現/前綴發現是指節點從收到的RA消息中獲取鄰居路由器及所在網絡的前綴,以及其他配置參數。
地址無狀態自動配置是指節點根據路由器發現/前綴發現所獲取的信息,自動配置IPv6地址。
路由器發現/前綴發現通過路由器請求消息RS和路由器通告消息RA來實現,具體過程如下:
(1) 節點啟動時,通過RS消息向路由器發出請求,請求前綴和其他配置信息,以便用於節點的配置。
(2) 路由器返回RA消息,其中包括前綴信息選項(路由器也會周期性地發布RA消息)。
(3) 節點利用路由器返回的RA消息中的地址前綴及其他配置參數,自動配置接口的IPv6地址及其他信息。
· 前綴信息選項中不僅包括地址前綴的信息,還包括該地址前綴的首選生命期(preferred lifetime)和有效生命期(valid lifetime)。節點收到周期性發送的RA消息後,會根據該消息更新前綴的首選生命期和有效生命期。
· 在有效生命期內,自動生成的地址可以正常使用;有效生命期過期後,自動生成的地址將被刪除。
當主機啟動時,它的路由表中可能隻有一條到缺省網關的缺省路由。當滿足一定的條件時,缺省網關會向源主機發送ICMPv6重定向消息,通知主機選擇更好的下一跳進行後續報文的發送(與IPv4的ICMP重定向消息的功能相同)。
設備在滿足下列條件時會發送對主機重定向的ICMPv6重定向報文:
· 接收和轉發數據報文的接口是同一接口;
· 被選擇的路由本身沒有被ICMPv6重定向報文創建或修改過;
· 被選擇的路由不是缺省路由。
報文從源端到目的端的傳輸路徑中所經過的鏈路可能具有不同的MTU。在IPv6中,當報文的長度大於鏈路的MTU時,報文的分片將在源端進行,從而減輕中間轉發設備的處理壓力,合理利用網絡資源。
PMTU(Path MTU,路徑MTU)發現機製的目的就是要找到從源端到目的端的路徑上最小的MTU。PMTU的工作過程如圖1-5所示。
圖1-5 PMTU發現工作過程
(1) 源端主機按照自己的MTU對報文進行分片,之後向目的主機發送報文。
(2) 中間轉發設備接收到該報文進行轉發時,如果發現轉發報文的接口支持的MTU值小於報文長度,則會丟棄報文,並給源端返回一個ICMPv6差錯報文,其中包含了轉發失敗的接口的MTU。
(3) 源主機收到該差錯報文後,將按照報文中所攜帶的MTU重新對報文進行分片並發送。
(4) 如此反複,直到目的端主機收到這個報文,從而確定報文從源端到目的端路徑中的最小MTU。
在IPv6成為主流協議之前,首先使用IPv6協議棧的網絡希望能與當前仍被IPv4支撐著的Internet進行正常通信,因此必須開發出IPv4和IPv6互通技術以保證IPv4能夠平穩過渡到IPv6。互通技術應該對信息傳遞做到高效無縫。目前已經出現了多種過渡技術,這些技術各有特點,用於解決不同過渡時期、不同環境的通信問題。
目前解決過渡問題的基本技術主要有2種:雙協議棧(RFC 2893)和隧道技術(RFC 2893)。
雙協議棧是一種最簡單直接的過渡機製。同時支持IPv4協議和IPv6協議的網絡節點稱為雙協議棧節點。當雙協議棧節點配置IPv4地址和IPv6地址後,就可以在相應接口上轉發IPv4和IPv6報文。當一個上層應用同時支持IPv4和IPv6協議時,根據協議要求可以選用TCP或UDP作為傳輸層的協議,但在選擇網絡層協議時,它會優先選擇IPv6協議棧。雙協議棧技術適合IPv4網絡節點之間或者IPv6網絡節點之間通信,是所有過渡技術的基礎。但是,這種技術要求運行雙協議棧的節點有一個全球唯一的地址,實際上沒有解決IPv4地址資源匱乏的問題。
隧道是一種封裝技術,它利用一種網絡協議來傳輸另一種網絡協議,即利用一種網絡傳輸協議,將其他協議產生的數據報文封裝在它自己的報文中,然後在網絡中傳輸。關於隧道技術的詳細介紹,請參見“三層技術-IP業務配置指導”中的“隧道”。
與IPv6基礎相關的協議規範有:
· 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 2894:Router Renumbering for IPv6
· RFC 3307:Allocation Guidelines for IPv6 Multicast Addresses
· RFC 3513:Internet Protocol Version 6 (IPv6) Addressing Architecture
· RFC 4191:Default Router Preferences and More-Specific Routes
· RFC 4443:Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification.
· RFC 4861:Neighbor Discovery for IP Version 6 (IPv6)
· RFC 4862:IPv6 Stateless Address Autoconfiguration
表1-4 IPv6基礎配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
配置IPv6基本功能 |
使能IPv6報文轉發功能 |
必選 |
|
配置IPv6全球單播地址 |
三者必選其一 |
||
配置IPv6鏈路本地地址 |
|||
配置IPv6任播地址 |
|||
配置IPv6鄰居發現協議 |
配置靜態鄰居表項 |
可選 |
|
配置接口上允許動態學習的鄰居的最大個數 |
可選 |
||
配置STALE狀態ND表項的老化時間 |
可選 |
||
配置RA消息的相關參數 |
可選 |
||
配置重複地址檢測時發送鄰居請求消息的次數 |
可選 |
||
配置ND Snooping功能 |
可選 |
||
配置ND Proxy功能 |
可選 |
||
配置PMTU發現 |
配置指定地址的靜態PMTU |
可選 |
|
配置PMTU老化時間 |
可選 |
||
配置TCP6 |
可選 |
||
配置ICMPv6報文發送 |
配置指定時間內發送ICMPv6差錯報文的最大個數 |
可選 |
|
配置允許回複組播形式的Echo request報文 |
可選 |
||
配置ICMPv6超時差錯報文發送功能 |
可選 |
||
配置ICMPv6目的不可達差錯報文發送功能 |
可選 |
在進行IPv6的相關配置以前,必須先使能IPv6報文轉發功能。否則即使在接口上配置了IPv6地址,仍無法轉發IPv6的報文,造成IPv6網絡無法互通。
表1-5 使能IPv6報文轉發功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能IPv6報文轉發功能 |
ipv6 |
必選 缺省情況下,IPv6報文轉發功能處於關閉狀態 |
IPv6全球單播地址可以通過下麵三種方式配置:
· 采用EUI-64格式形成:當配置采用EUI-64格式形成IPv6地址時,接口的IPv6地址的前綴需要手工配置,而接口標識符則由接口自動生成。
· 手工配置:用戶手工配置IPv6全球單播地址。
· 無狀態自動配置:根據接收到的RA報文中攜帶的地址前綴信息,自動生成IPv6全球單播地址。
· 每個接口可以有多個前綴不同的全球單播地址。
· 手工配置的全球單播地址的優先級高於自動生成的全球單播地址。如果在接口已經自動生成全球單播地址的情況下,手工配置前綴相同的全球單播地址,自動生成的地址將被覆蓋。此後,即使刪除手工配置的全球單播地址,已被覆蓋的自動生成的全球單播地址也不會恢複。再次接收到RA報文後,設備根據報文攜帶的地址前綴信息,重新生成全球單播地址。
表1-6 采用EUI-64格式形成IPv6地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
采用EUI-64格式形成IPv6地址 |
ipv6 address ipv6-address/prefix-length eui-64 |
必選 缺省情況下,接口上沒有配置全球單播地址 |
表1-7 手工指定IPv6地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
手工指定IPv6地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
必選 缺省情況下,接口上沒有配置全球單播地址 |
表1-8 無狀態自動配置IPv6地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
無狀態自動配置IPv6地址 |
ipv6 address auto |
必選 缺省情況下,接口上沒有配置全球單播地址 |
在接口上執行undo ipv6 address auto命令,將刪除該接口上所有自動生成的全球單播地址。
在配置了無狀態自動配置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前綴中的有效生命期和配置的臨時地址有效生命期。
表1-9 配置係統生成臨時地址,並優先選擇臨時地址作為報文的源地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置係統生成臨時地址,並優先選擇臨時地址作為報文的源地址 |
ipv6 prefer temporary-address [ valid-lifetime preferred-lifetime ] |
必選 缺省情況下,係統不生成臨時地址,也就不會用臨時地址作為接口發送報文的源地址 |
· 設備的接口必須啟用地址無狀態自動配置功能才能生成臨時地址,而且臨時地址不會覆蓋公共地址,因此會出現一個接口下有多個前綴相同但是接口ID不同的地址。
· 如果公共地址生成失敗,例如前綴衝突,則不會生成臨時地址。
IPv6的鏈路本地地址可以通過兩種方式獲得:
· 自動生成:設備根據鏈路本地地址前綴(FE80::/10)及接口的鏈路層地址,自動為接口生成鏈路本地地址;
· 手工指定:用戶手工配置IPv6鏈路本地地址。
· 每個接口隻能有一個鏈路本地地址,為了避免鏈路本地地址衝突,推薦使用鏈路本地地址的自動生成方式。
· 配置鏈路本地地址時,手工指定方式的優先級高於自動生成方式。即如果先采用自動生成方式,之後手工指定,則手工指定的地址會覆蓋自動生成的地址;如果先手工指定,之後采用自動生成的方式,則自動配置不生效,接口的鏈路本地地址仍是手工指定的。此時,如果刪除手工指定的地址,則自動生成的鏈路本地地址會生效。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置自動生成鏈路本地地址 |
ipv6 address auto link-local |
可選 缺省情況下,接口上沒有鏈路本地地址。當接口配置了IPv6全球單播地址後,會自動生成鏈路本地地址 |
表1-11 手工指定接口的鏈路本地地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
手工指定接口的鏈路本地地址 |
ipv6 address ipv6-address link-local |
可選 缺省情況下,接口上沒有鏈路本地地址。當接口配置了IPv6全球單播地址後,會自動生成鏈路本地地址 |
· 當接口配置了IPv6全球單播地址後,同時會自動生成鏈路本地地址。且與采用ipv6 address auto link-local命令生成的鏈路本地地址相同。此時如果手工指定接口的鏈路本地地址,則手工指定的有效。如果刪除手工指定的鏈路本地地址,則接口的鏈路本地地址恢複為係統自動生成的地址。
· undo ipv6 address auto link-local命令隻能刪除使用ipv6 address auto link-local命令生成的鏈路本地地址。即如果此時已經配置了IPv6全球單播地址,由於係統會自動生成鏈路本地地址,則接口仍有鏈路本地地址;如果此時沒有配置IPv6全球單播地址,則接口沒有鏈路本地地址。
用戶需要手工配置接口的IPv6任播地址。
表1-12 配置IPv6任播地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置IPv6任播地址 |
ipv6 address ipv6-address/prefix-length anycast |
必選 缺省情況下,接口上沒有配置任播地址 |
將鄰居節點的IPv6地址解析為鏈路層地址,可以通過鄰居請求消息NS及鄰居通告消息NA來動態實現,也可以通過手工配置靜態鄰居表項來實現。
設備根據鄰居節點的IPv6地址和與此鄰居節點相連的三層接口號來唯一標識一個靜態鄰居表項。目前,靜態鄰居表項有兩種配置方式:
· 配置本節點的三層接口對應的鄰居節點的IPv6地址、鏈路層地址;
· 配置本節點VLAN中的端口對應的鄰居節點的IPv6地址、鏈路層地址。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置靜態鄰居表項 |
ipv6 neighbor ipv6-address mac-address { vlan-id port-type port-number | interface interface-type interface-number } [ vpn-instance vpn-instance-name ] |
必選 |
對於VLAN接口,可以采用上述兩種方式來配置靜態鄰居表項:
· 采用第一種方式配置靜態鄰居表項後,設備還需要解析VLAN對應的二層端口信息。
· 采用第二種方式配置靜態鄰居表項,需要保證VLAN所對應的VLAN接口已經存在,且port-type port-number指定的二層端口屬於vlan-id指定的VLAN。在配置後,設備會將VLAN所對應的VLAN接口與IPv6地址相對應來唯一標識一個靜態鄰居表項。
設備可以通過NS消息和NA消息來動態獲取鄰居節點的鏈路層地址,並將其加入到鄰居表中。如果動態獲取的鄰居表過大,將可能導致設備的轉發性能下降。為此,可以通過設置接口上允許動態學習的鄰居的最大個數來進行限製。當接口上動態學習的鄰居個數達到所設置的最大值時,該接口將不再學習鄰居信息。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口上允許動態學習的鄰居的最大個數 |
ipv6 neighbors max-learning-num number |
可選 缺省情況下,二層接口不對允許動態學習的鄰居的最大個數進行限製,對於S5500-EI係列以太網交換機的三層接口允許動態學習的鄰居的最大個數為4096;對於S5500-SI係列以太網交換機的三層接口允許動態學習的鄰居的最大個數為1024 |
為適應網絡的變化,ND表需要不斷更新。ND表中的STALE狀態ND表項並非永遠有效,每一條記錄都有一個老化時間。到達老化時間的STALE狀態ND表項將遷移到DELAY狀態。5秒鍾後DELAY狀態超時,ND表項將遷移到PROBE狀態,並發送3次NS報文進行可達性探測。若鄰居已經下線,則收不到回應的NA報文,此時會將該ND表項刪除。
缺省情況下,STALE狀態ND表項的老化時間為4小時。用戶可以根據網絡實際情況調整老化時間。
表1-15 配置STALE狀態ND表項的老化時間
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置STALE狀態ND表項的老化時間 |
ipv6 neighbor stale-aging aging-time |
可選 缺省情況下,STALE狀態ND表項的老化時間為4小時 |
用戶可以根據實際情況,配置接口是否發送RA消息及發送RA消息的時間間隔,同時可以配置RA消息中的相關參數以通告給主機。當主機接收到RA消息後,就可以采用這些參數進行相應操作。可以配置的RA消息中的參數及含義如表1-16所示。
表1-16 RA消息中的參數及描述
參數 |
描述 |
跳數限製(Cur Hop Limit) |
主機在發送IPv6報文時,將使用該參數值填充IPv6報文頭中的Hop Limit字段。同時該參數值也作為設備應答報文中的Hop Limit字段值。 |
前綴信息(Prefix Information) |
在同一鏈路上的主機收到設備發布的前綴信息後,可以進行無狀態自動配置等操作。 |
MTU |
發布鏈路的MTU,可以用於確保同一鏈路上的所有節點采用相同的MTU值。 |
被管理地址配置標誌位(M flag) |
用於確定主機是否采用有狀態自動配置獲取IPv6地址。 如果設置該標誌位為1,主機將通過有狀態自動配置(例如DHCP服務器)來獲取IPv6地址;否則,將通過無狀態自動配置獲取IPv6地址,即根據自己的鏈路層地址及路由器發布的前綴信息生成IPv6地址。 |
其他信息配置標誌位(O flag) |
用於確定主機是否采用有狀態自動配置獲取除IPv6地址外的其他信息。 如果設置其他信息配置標誌位為1,主機將通過有狀態自動配置(例如DHCP服務器)來獲取除IPv6地址外的其他信息;否則,將通過無狀態自動配置獲取其他信息。 |
路由器生存時間(Router Lifetime) |
用於設置發布RA消息的路由器作為主機的默認路由器的時間。主機根據接收到的RA消息中的路由器生存時間參數值,就可以確定是否將發布該RA消息的路由器作為默認路由器。 |
鄰居請求消息重傳時間間隔(Retrans Timer) |
設備發送NS消息後,如果未在指定的時間間隔內收到響應,則會重新發送NS消息。 |
保持鄰居可達狀態的時間(Reachable Time) |
當通過鄰居可達性檢測確認鄰居可達後,在所設置的可達時間內,設備認為鄰居可達;超過設置的時間後,如果需要向鄰居發送報文,會重新確認鄰居是否可達。 |
表1-17 配置允許發布RA消息
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
取消對RA消息發布的抑製 |
undo ipv6 nd ra halt |
必選 缺省情況下,抑製發布RA消息 |
配置RA消息發布的最大時間間隔和最小時間間隔 |
ipv6 nd ra interval max-interval-value min-interval-value |
可選 缺省情況下,RA消息發布的最大間隔時間為600秒,最小時間間隔為200秒 RA消息周期性發布時,相鄰兩次的時間間隔是在最大時間間隔與最小時間間隔之間隨機選取一個值作為周期性發布RA消息的時間間隔 配置的最小時間間隔應該小於等於最大時間間隔的0.75倍 |
表1-18 配置RA消息中的相關參數
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置跳數限製 |
ipv6 nd hop-limit value |
可選 缺省情況下,路由器發布的跳數限製為64跳 |
進入接口視圖 |
interface interface-type interface-number |
- |
配置RA消息中的前綴信息 |
ipv6 nd ra prefix { ipv6-prefix prefix-length | ipv6-prefix/prefix-length } valid-lifetime preferred-lifetime [ no-autoconfig | off-link ] * |
可選 缺省情況下,沒有配置RA消息中的前綴信息,此時將使用發送RA消息的接口IPv6地址作為RA消息中的前綴信息,其有效生命期是2592000秒(30天),首選生命期是604800(7天) |
配置RA消息中不攜帶MTU選項 |
ipv6 nd ra no-advlinkmtu |
可選 缺省情況下,RA消息中攜帶MTU選項 |
設置被管理地址配置標誌位為1 |
ipv6 nd autoconfig managed-address-flag |
可選 缺省情況下,被管理地址標誌位為0,即主機通過無狀態自動配置獲取IPv6地址 |
設置其他配置標誌位為1 |
ipv6 nd autoconfig other-flag |
可選 缺省情況下,其他配置標誌位為0,即主機通過無狀態自動配置獲取其他信息 |
配置RA消息中路由器的生存時間 |
ipv6 nd ra router-lifetime value |
可選 缺省情況下,RA消息中路由器的生存時間為1800秒 |
配置鄰居請求消息重傳時間間隔 |
ipv6 nd ns retrans-timer value |
可選 缺省情況下,接口發送NS消息的時間間隔為1000毫秒;接口發布的RA消息中Retrans Timer字段的值為0,即不對主機進行指定 |
配置保持鄰居可達狀態的時間 |
ipv6 nd nud reachable-time value |
可選 缺省情況下,接口保持鄰居可達狀態的時間為30000毫秒;接口發布的RA消息中Reachable Timer字段的值為0,即不對主機進行指定 |
· RA消息發布的最大間隔時間應該小於或等於RA消息中路由器的生存時間,以保證在路由器失效之前得到更新的RA消息。
· 在接口上配置的鄰居請求消息重傳時間間隔及保持鄰居可達狀態的時間,既可作為RA消息中的信息發布給主機,也可作為本接口發送鄰居請求消息的時間間隔及保持鄰居可達狀態的時間。
接口獲得IPv6地址後,將發送鄰居請求消息進行重複地址檢測,如果在指定的時間內(通過ipv6 nd ns retrans-timer命令配置)沒有收到響應,則繼續發送鄰居請求消息,當發送的次數達到所設置的次數後,仍未收到響應,則認為該地址可用。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置重複地址檢測時發送鄰居請求消息的次數 |
ipv6 nd dad attempts value |
可選 缺省情況下,重複地址檢測時發送鄰居請求報文的次數為1,當value值為0時,表示禁止重複地址檢測 |
ND Snooping功能用於二層交換網絡環境,通過偵聽DAD(Duplicate Address Detection,重複地址檢測) NS消息來建立ND Snooping表項,表項內容包括報文的源IPv6地址、源MAC地址、所屬VLAN、入端口等信息。
目前,ND Snooping表項有以下用途:
· 與ND Detection功能配合使用。關於ND Detection的詳細介紹,請參見“安全配置指導”中的“ND攻擊防禦”。
· 與IP Source Guard功能配合使用。關於IP Source Guard的詳細介紹,請參見“安全配置指導”中的“IP Source Guard”。
· 在SAVI各場景中使用。關於SAVI的詳細介紹,請參見“安全配置指導”中的“SAVI”。
當一個VLAN使能ND Snooping後,該VLAN內所有端口接收的ND報文均會被重定向到CPU。全局使能ND Snooping後,CPU會對這些ND報文進行分析,獲取報文的源IPv6地址、源MAC地址、源VLAN和入端口信息,並根據這些信息來新建或更新ND Snooping表項。
下麵將具體介紹ND Snooping表項的新建、更新和老化機製。
(1) 新建表項機製
設備隻會根據收到的DAD NS消息來新建ND Snooping表項。
(2) 更新表項機製
設備收到一個ND報文後,首先找到與該報文源IPv6地址對應的表項。如果表項的刷新時間沒有超過1秒,則設備不會對表項進行更新。如果表項的刷新時間已經超過1秒,設備要判斷收到的ND報文的MAC地址、入端口信息與現有該表項的MAC地址、入端口信息是否一致。
· 如果一致,則更新該表項的老化時間;
· 如果不一致,但收到的是DAD NS消息,則忽略該消息;
· 如果不一致,並且收到的是除DAD NS以外的ND報文,則進行主動確認。
主動確認過程如下:
· 首先,設備將探測現有該表項的正確性。設備對外發送DAD NS消息(該消息僅發送一次),消息中的待檢測IPv6地址就是ND Snooping表項中的IPv6地址。如果在發送過程中收到對應的NA消息(消息的源IPv6地址、源MAC地址、入端口、源VLAN信息均和現有表項信息一致),則更新該表項的老化時間;如果在發送DAD NS消息後的1秒內都沒有收到對應的NA消息,則開始探測新收到報文的真實性。
· 探測新收到報文(報文A)真實性的過程如下:設備對外發送DAD NS消息(該消息僅發送一次),消息中的待檢測IPv6地址就是報文A的源IPv6地址。如果在發送過程中收到對應的NA消息(消息的源IPv6地址、源MAC地址、入端口、源VLAN信息均和報文A一致),則更新該表項的老化時間;如果在發送DAD NS消息後的1秒內都沒有收到對應的NA消息,則該表項不會被更新。
(3) 老化表項機製
ND Snooping表項的老化時間為25分鍾。如果一個ND Snooping表項自最後一次更新後15分鍾內沒有收到ND更新報文,則開始進行主動確認:設備對外發送DAD NS消息(該消息僅發送一次),消息中的待檢測IPv6地址就是ND Snooping表項中的IPv6地址。
· 如果在發送過程中收到對應的NA消息(消息的源IPv6地址、源MAC地址、入端口、源VLAN信息均和現有表項信息一致),則更新表項的老化時間;
· 如果1秒內沒有收到對應的NA消息,則等到表項的老化時間過後刪除該表項。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能全球單播類型地址的ND Snooping功能,根據IPv6地址為全球單播地址的DAD NS報文建立ND Snooping表項 |
ipv6 nd snooping enable global |
二者至少選其一 缺省情況下,全球單播類型地址和鏈路本地類型地址的ND Snooping功能均處於關閉狀態 |
使能鏈路本地類型地址的ND Snooping功能,根據IPv6地址為鏈路本地地址的DAD NS報文建立ND Snooping表項 |
ipv6 nd snooping enable link-local |
|
進入VLAN視圖 |
vlan vlan-id |
- |
使能ND Snooping功能 |
ipv6 nd snooping enable |
必選 缺省情況下,ND Snooping功能處於關閉狀態 |
退回係統視圖 |
quit |
- |
進入二層以太網端口視圖/二層聚合接口視圖 |
interface interface-type interface-number |
- |
配置接口允許學習ND Snooping表項的最大個數 |
ipv6 nd snooping max-learning-num number |
可選 缺省情況下,不對接口允許學習ND Snooping表項的最大個數進行限製 |
配置接口為上行口,禁止接口學習ND Snooping表項 |
ipv6 nd snooping uplink |
可選 缺省情況下,ND Snooping功能使能後,接口上允許學習ND Snooping表項 |
目前隻支持對NS及NA報文的ND Proxy功能。
如果NS請求是從一個網絡的主機發往同一網段卻不在同一物理網絡上的另一台主機,那麼連接它們的具有ND Proxy功能的設備就可以通過三層轉發將這個NS請求發往被請求的另一台主機,該主機回應的NA報文也會通過連接它們的設備經過三層轉發轉給發起請求的主機,實現兩台主機的互通,這個過程稱作ND Proxy。
ND Proxy功能根據應用場景不同分為普通ND Proxy和本地ND Proxy。
如無特殊說明,本章後續描述中的ND Proxy均指普通ND Proxy。
(1) ND Proxy
ND Proxy的典型應用環境如圖1-6所示。設備Switch通過兩個三層接口Vlan-interface1和 Vlan-interface2連接兩個網絡,兩個三層接口的IPv6地址不在同一個網段,接口地址分別為4:1::99/64、4:2::99/64。但是兩個網絡內的主機Host A和Host B的地址通過掩碼的控製,既與相連設備的接口地址在同一網段,同時二者也處於同一個網段。
圖1-6 ND Proxy的應用環境
在這種組網情況下,當Host A需要與Host B通信時,由於目的IPv6地址與本機的IPv6地址為同一網段,因此Host A會直接發出請求Host B硬件地址的NS請求。但是,此時的兩台主機處於不同的廣播域中,Host B無法收到Host A的NS請求報文,當然也就無法應答。
通過在Switch上啟用ND Proxy功能,可以解決此問題。在接口Vlan-interface1和 Vlan-interface2上啟用ND Proxy後,Switch可以根據NS請求的IPv6地址查找轉發表項獲得出接口,並將NS請求報文轉發出去,這樣Host B可以收到請求自己的NS報文,並回應NA;NA報文也會通過啟用了ND Proxy的設備將NA報文轉發給Host A;這樣,實現Host A與Host B之間的通信。
(2) 本地ND Proxy
本地ND Proxy的應用場景如圖1-7所示。Host A和Host B屬於同一個VLAN 2,但它們分別連接到被二層隔離的端口GigabitEthernet1/0/3和GigabitEthernet1/0/1上。
圖1-7 本地ND Proxy的應用環境
在這種組網情況下,當Host A需要與Host B通信時,由於目的IPv6地址與本機的IPv6地址為同一網段,因此Host A會直接發出請求Host B硬件地址的NS請求。但是,因為連接兩台主機的端口處於端口隔離狀態,Host B無法收到Host A的NS請求報文。
通過在Switch A上啟用本地ND Proxy功能,可以解決此問題。在接口Vlan-interface2上啟用本地ND Proxy後,Switch A會代替Host B回應NA,Host A發給Host B的報文就會通過Switch A進行轉發,從而實現Host A與Host B之間的通信。
本地ND Proxy可以在下列三種情況下實現主機之間的三層互通:
· 想要互通的主機分別連接到同一個VLAN中的不同二層隔離端口下;
· 使能Super VLAN功能後,想要互通的主機屬於不同的Sub VLAN;
· 使能Isolate-user-vlan功能後,想要互通的主機屬於不同的Secondary VLAN。
ND Proxy和本地ND Proxy功能均可在VLAN接口視圖/三層以太網端口視圖下進行配置。
表1-21 配置ND Proxy功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
開啟ND Proxy功能 |
proxy-nd enable |
必選 缺省情況下,ND Proxy功能處於關閉狀態 |
表1-22 配置本地ND Proxy功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
開啟本地ND Proxy功能 |
local-proxy-nd enable |
必選 缺省情況下,本地ND Proxy功能處於關閉狀態 |
用戶可以為指定的目的IPv6地址配置靜態的PMTU值。當源端主機從接口發送報文時,將比較該接口的MTU與指定目的IPv6地址的靜態PMTU,如果報文長度大於二者中的最小值,則采用此最小值對報文進行分片。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置指定IPv6地址對應的靜態PMTU值 |
ipv6 pathmtu [ vpn-instance vpn-instance-name ] ipv6-address [ value ] |
必選 缺省情況下,沒有配置靜態PMTU值 |
通過“1.1.4 IPv6 PMTU發現”中的方法動態確定源端主機到目的端主機的PMTU後,源端主機將使用這個MTU值發送後續報文到目的端主機。當PMTU老化時間超時後,動態確定的PMTU值將會被刪除,源端主機會通過PMTU機製重新確定發送報文的MTU值。
該配置對靜態PMTU不起作用。
表1-24 配置PMTU老化時間
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置PMTU老化時間 |
ipv6 pathmtu age age-time |
可選 缺省情況下,PMTU的老化時間是10分鍾 |
可以配置的TCP6屬性包括:
· synwait定時器:當發送SYN報文時,TCP6啟動synwait定時器,如果synwait定時器超時前未收到回應報文,則TCP6連接建立不成功。
· finwait定時器:當TCP6的連接狀態為FIN_WAIT_2時,啟動finwait定時器,如果在定時器超時前沒有收到報文,則TCP6連接終止;如果收到FIN報文,則TCP6連接狀態變為TIME_WAIT狀態;如果收到非FIN報文,則從收到的最後一個非FIN報文開始重新計時,在超時後中止連接。
· TCP6的接收和發送緩衝區的大小。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置TCP6的synwait定時器 |
tcp ipv6 timer syn-timeout wait-time |
可選 缺省情況下,synwait定時器的值75秒 |
配置TCP6的finwait定時器 |
tcp ipv6 timer fin-timeout wait-time |
可選 缺省情況下,finwait定時器的值為675秒 |
配置TCP6的接收和發送緩衝區大小 |
tcp ipv6 window size |
可選 缺省情況下,TCP6的接收和發送緩衝區大小均為8KB |
如果網絡中短時間內發送的ICMPv6差錯報文過多,將可能導致網絡擁塞。為了避免這種情況,用戶可以控製在指定時間內發送ICMPv6差錯報文的最大個數,目前采用令牌桶算法來實現。
用戶可以設置令牌桶的容量,即令牌桶中可以同時容納的令牌數;同時可以設置令牌桶的刷新周期,即每隔多長時間將令牌桶內的令牌個數刷新為所配置的容量。一個令牌表示允許發送一個ICMPv6差錯報文,每當發送一個ICMPv6差錯報文,則令牌桶中減少一個令牌。如果連續發送的ICMPv6差錯報文超過了令牌桶的容量,則後續的ICMPv6差錯報文將不能被發送出去,直到按照所設置的刷新頻率將新的令牌放入令牌桶中。
表1-26 配置指定時間內發送ICMPv6差錯報文的最大個數
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置控製ICMPv6差錯報文發送的令牌桶容量和刷新周期 |
ipv6 icmp-error { bucket bucket-size | ratelimit interval } * |
可選 缺省情況下,令牌桶容量為10,令牌桶的刷新周期為100毫秒,即每一個刷新周期內最多可以發送10個ICMPv6差錯報文 刷新周期為0時,表示不限製ICMPv6差錯報文的發送 |
如果允許主機回複組播形式的Echo request報文,則主機A可以構造目的地址為組播地址、源地址為主機B的Echo request報文,使該組播組中所有的主機都向主機B發送Echo reply報文,從而達到攻擊主機B的目的。因此,為了避免主機利用設備達到攻擊的目的,缺省情況下,不允許設備回複組播形式的Echo request報文。
在某些應用場景下,可能需要使用組播形式的Echo request報文來獲取信息,此時可以通過下麵的命令,配置允許設備回複組播形式的Echo request報文。
表1-27 配置允許回複組播形式的Echo request報文
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置允許回複組播形式的Echo request報文 |
ipv6 icmpv6 multicast-echo-reply enable |
必選 缺省情況下,不允許回複組播形式的Echo request報文 |
ICMPv6超時報文發送功能是在設備收到IPv6數據報文後,如果發生超時差錯,則將報文丟棄並給源端發送ICMPv6超時差錯報文。
設備在滿足下列條件時會發送ICMPv6超時報文:
· 設備收到IPv6數據報文後,如果報文的目的地不是本地且報文的Hop limit字段是1,則發送“Hop limit超時”ICMPv6差錯報文;
· 設備收到目的地址為本地的IPv6數據報文的第一個分片後,啟動定時器,如果所有分片報文到達之前定時器超時,則會發送“重組超時”ICMPv6差錯報文。
設備接收到大量需要發送ICMPv6差錯報文的惡意攻擊報文,設備會因為處理大量該類報文而導致性能降低。
為了避免上述現象發生,可以關閉設備的ICMPv6超時報文發送功能,從而減少網絡流量、防止遭到惡意攻擊。
表1-28 配置ICMPv6超時差錯報文發送功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟設備的ICMPv6超時報文的發送功能 |
ipv6 hoplimit-expires enable |
可選 缺省情況下,ICMPv6超時報文發送功能處於開啟狀態 |
ICMPv6目的不可達報文發送功能是在設備收到IPv6數據報文後,如果發生目的不可達的差錯,則將報文丟棄並給源端發送ICMPv6目的不可達差錯報文。
設備在滿足下列條件時會發送目的不可達報文:
· 設備在轉發報文時,如果在路由表中沒有找到對應的轉發路由,且路由表中沒有缺省路由,則給源端發送“沒有到達目的地址的路由”ICMPv6差錯報文;
· 設備在轉發報文時,如果是因為管理策略(例如防火牆過濾、ACL等)導致無法發送報文時,則給源端發送“與目的地址的通信被管理策略禁止”ICMPv6差錯報文;
· 設備在轉發報文時,如果報文的目的IPv6地址超出源IPv6地址的範圍(例如,報文的源IPv6地址為鏈路本地地址,報文的目的IPv6地址為全球單播地址),會導致報文無法到達目的端,此時要給源端發送“超出源地址範圍”ICMPv6差錯報文;
· 設備在轉發報文時,如果不能解析目的IPv6地址對應的鏈路層地址,則給源端發送“地址不可達”ICMPv6差錯報文;
· 設備收到目的地址為本地、傳輸層協議為UDP的數據報文時,如果報文的目的端口號與正在使用的進程不匹配,則給源端發送“端口不可達”ICMPv6差錯報文。
由於ICMPv6目的不可達報文傳遞給用戶進程的信息為不可達信息,如果有用戶惡意攻擊,可能會影響終端用戶的正常使用。為了避免上述現象發生,可以關閉設備的ICMPv6目的不可達報文發送功能,從而減少網絡流量、防止遭到惡意攻擊。
表1-29 配置ICMPv6目的不可達報文發送功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟設備的ICMPv6目的不可達報文的發送功能 |
ipv6 unreachables enable |
必選 缺省情況下,ICMPv6目的不可達報文發送功能處於關閉狀態 |
在完成上述配置後,在任意視圖下執行display命令可以顯示IPv6配置後的運行情況,用戶可以通過查看顯示信息驗證配置的效果。
在用戶視圖下,執行reset命令可以清除相應的統計信息。
表1-30 IPv6基礎顯示和維護
操作 |
命令 |
顯示IPv6 FIB轉發信息表項 |
display ipv6 fib [ vpn-instance vpn-instance-name ] [ acl6 acl6-number | ipv6-prefix ipv6-prefix-name ] [ | { begin | exclude | include } regular-expression ] |
顯示指定目的IPv6地址的IPv6 FIB轉發信息表項 |
display ipv6 fib [ vpn-instance vpn-instance-name ] ipv6-address [ prefix-length ] [ | { begin | exclude | include } regular-expression ] |
顯示接口的IPv6信息 |
display ipv6 interface [ interface-type [ interface-number ] ] [ brief ] [ | { begin | exclude | include } regular-expression ] |
顯示鄰居信息 |
display ipv6 neighbors { { ipv6-address | all | dynamic | static } [ slot slot-number ] | interface interface-type interface-number | vlan vlan-id } [ verbose ] [ | { begin | exclude | include } regular-expression ] |
顯示符合指定條件的鄰居表項的總個數 |
display ipv6 neighbors { { all | dynamic | static } [ slot slot-number ] | interface interface-type interface-number | vlan vlan-id } count [ | { begin | exclude | include } regular-expression ] |
顯示指定VPN實例的鄰居信息(僅S5500-EI支持) |
display ipv6 neighbors vpn-instance vpn-instance-name [ count ] [ | { begin | exclude | include } regular-expression ] |
顯示IPv6的PMTU信息 |
display ipv6 pathmtu [ vpn-instance vpn-instance-name ] { ipv6-address | all | dynamic | static } [ | { begin | exclude | include } regular-expression ] |
顯示指定套接字的相關信息 |
display ipv6 socket [ socktype socket-type ] [ task-id socket-id ] [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
顯示IPv6報文及ICMPv6報文的統計信息 |
display ipv6 statistics [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
顯示TCP6連接的統計信息 |
display tcp ipv6 statistics [ | { begin | exclude | include } regular-expression ] |
顯示TCP6連接的狀態信息 |
display tcp ipv6 status [ | { begin | exclude | include } regular-expression ] |
顯示UDP6的統計信息 |
display udp ipv6 statistics [ | { begin | exclude | include } regular-expression ] |
顯示ND Snooping表項 |
display ipv6 nd snooping [ ipv6-address | vlan vlan-id ] [ | { begin | exclude | include } regular-expression ] |
清除IPv6鄰居信息 |
reset ipv6 neighbors { all | dynamic | interface interface-type interface-number | slot slot-number | static } |
清除PMTU值 |
reset ipv6 pathmtu { all | static | dynamic} |
清除IPv6報文及ICMPv6報文的統計信息 |
reset ipv6 statistics [ slot slot-number ] |
清除所有TCP6連接的統計信息 |
reset tcp ipv6 statistics |
清除所有UDP6統計信息 |
reset udp ipv6 statistics |
清除ND Snooping表項 |
reset ipv6 nd snooping [ ipv6-address | vlan vlan-id ] |
僅S5500-EI係列以太網交換機支持verbose參數。
· 如圖1-8所示,Host、Switch A和Switch B之間通過以太網端口相連,將以太網端口分別加入相應的VLAN裏,在VLAN接口上配置IPv6地址,驗證它們之間的互通性。
· Switch A的VLAN接口1的全球單播地址為2001::1/64,VLAN接口2的全球單播地址為3001::1/64。
· Switch B的VLAN接口2的全球單播地址為3001::2/64,有可以到Host的路由。
· Host上安裝了IPv6,根據IPv6鄰居發現協議自動配置IPv6地址,有可以到Switch B的路由。
圖1-8 IPv6地址配置組網圖
交換機上已經創建相應的VLAN接口。
(1) 配置Switch A
# 使能交換機的IPv6轉發功能。
<SwitchA> system-view
[SwitchA] ipv6
# 手工指定VLAN接口2的全球單播地址。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ipv6 address 3001::1/64
[SwitchA-Vlan-interface2] quit
# 手工指定VLAN接口1的全球單播地址,並允許其發布RA消息。(缺省情況下,所有的接口不會發布RA消息)
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] ipv6 address 2001::1/64
[SwitchA-Vlan-interface1] undo ipv6 nd ra halt
[SwitchA-Vlan-interface1] quit
(2) 配置Switch B
# 使能交換機的IPv6轉發功能。
<SwitchB> system-view
[SwitchB] ipv6
# 配置VLAN接口2的全球單播地址。
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ipv6 address 3001::2/64
[SwitchB-Vlan-interface2] quit
# 配置IPv6靜態路由,該路由的目的地址為2001::/64,下一跳地址為3001::1。
[SwitchB] ipv6 route-static 2001:: 64 3001::1
(3) 配置Host
Host上安裝IPv6,根據IPv6鄰居發現協議自動配置IPv6地址。
# 從Switch A上使用ping ipv6命令檢查Switch B是否可達。
[SwitchA] ping ipv6 3001::1
PING 3001::1 : 56 data bytes, press CTRL_C to break
Reply from 3001::1
bytes=56 Sequence=0 hop limit=64 time = 3 ms
Reply from 3001::1
bytes=56 Sequence=1 hop limit=64 time = 2 ms
Reply from 3001::1
bytes=56 Sequence=2 hop limit=64 time = 2 ms
Reply from 3001::1
bytes=56 Sequence=3 hop limit=64 time = 3 ms
Reply from 3001::1
bytes=56 Sequence=4 hop limit=64 time = 9 ms
--- 3001::1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 2/3/9 ms
# 從Switch A上查看端口GigabitEthernet1/0/2的鄰居信息。
[SwitchA] display ipv6 neighbors interface GigabitEthernet 1/0/2
Type: S-Static D-Dynamic
IPv6 Address Link-layer VID Interface State T Age
FE80::215:E9FF:FEA6:7D14 0015-e9a6-7d14 1 GE1/0/2 STALE D 1238
2001::15B:E0EA:3524:E791 0015-e9a6-7d14 1 GE1/0/2 STALE D 1248
通過上麵的信息可以知道Host上獲得的IPv6全球單播地址為2001::15B:E0EA:3524:E791。
# 顯示Switch A的接口信息,可以看到各接口配置的IPv6全球單播地址。
[SwitchA] display ipv6 interface vlan-interface 2
Vlan-interface2 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:FF00:0
FF02::1:FF00:1
FF02::1:FF00:2
FF02::2
FF02::1
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
[SwitchA] display ipv6 interface vlan-interface 1
Vlan-interface1 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:FF00:0
FF02::1:FF00:1
FF02::1:FF00:1C0
FF02::2
FF02::1
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
# 顯示Switch B的接口信息,可以看到接口配置的IPv6全球單播地址。
[SwitchB] display ipv6 interface vlan-interface 2
Vlan-interface2 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:FF00:0
FF02::1:FF00:2
FF02::1:FF00:1234
FF02::2
FF02::1
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測試和Switch A及Switch B的互通性;在Switch B上使用Ping測試和Switch A及Host的互通性。
在Ping鏈路本地地址時,需要使用-i參數來指定鏈路本地地址的接口。
[SwitchB] ping ipv6 -c 1 3001::1
PING 3001::1 : 56 data bytes, press CTRL_C to break
Reply from 3001::1
bytes=56 Sequence=1 hop limit=64 time = 2 ms
--- 3001::1 ping statistics ---
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 2/2/2 ms
[SwitchB-Vlan-interface2] ping ipv6 -c 1 2001::15B:E0EA:3524:E791
PING 2001::15B:E0EA:3524:E791 : 56 data bytes, press CTRL_C to break
Reply from 2001::15B:E0EA:3524:E791
bytes=56 Sequence=1 hop limit=63 time = 3 ms
--- 2001::15B:E0EA:3524:E791 ping statistics ---
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 3/3/3 ms
從Host上也可以ping通Switch B和Switch A,證明它們是互通的。
無法Ping通對端的IPv6地址。
· 在任意視圖使用display current-configuration命令或在係統視圖下使用display this命令檢查是否使能了IPv6報文轉發功能。
· 在任意視圖下使用display ipv6 interface命令檢查接口配置的IPv6地址是否正確,接口狀態是否為up。
· 在用戶視圖下使用debugging ipv6 packet命令打開IPv6報文調試開關,根據調試信息進行判斷。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!