一、實驗拓撲以及地址分配
由於本人學號后三位為099 有
二、配置過程
1.每個路由器 (config)#ipv6 unicast-routing
2.每個端口 (config-if)#ipv6 enable
(config-if)#no shutdown
(config-if)#ipv6 address xxx:xxx:xxx:xxx:xxx:xxx
R1(config)#int f0/0
R1(config-if)#ipv6 address 2001:db8:99:a::2/64
R1(config)#int f1/0
R1(config-if)#ipv6 address 2001:db8:99:1::1/64
R2(config)#int f0/0
R2(config-if)#ipv6 address 2001:db8:99:2::2/64
R2(config)#int f0/1
R2(config-if)#ipv6 address 2001:db8:99:b::1/64
R3(config)#int f0/0
R3(config-if)#ipv6 address 2001:db8:99:1::2/64
R3(config)#int f0/1
R3(config-if)#ipv6 address 2001:db8:99:2::1/64
R4(config)#int f0/0
R4(config-if)#ipv6 address 2001:db8:99:a::1/64
R5(config)#int f0/1
R5(config-if)#ipv6 address 2001:db8:99:b::2/64
當IP地址輸入錯誤時可(config-if)#no ipv6 address 輸錯的IP (可在一開始 show ipv6 interface查看)
3.每個路由器配靜態路由
(config)#ipv6 route (目的網關段較遠地址+出接口+下一跳)
R4(config-if)#ipv6 route 2001:db8:99:1::2/64 f0/0 2001:db8:99:a::2/64
R4(config-if)#ipv6 route 2001:db8:99:2::2/64 f0/0 2001:db8:99:a::2/64
R4(config-if)#ipv6 route 2001:db8:99:b::2/64 f0/0 2001:db8:99:a::2/64
R1(config-if)#ipv6 route 2001:db8:99:2::2/64 f0/1 2001:db8:99:1::2/64
R1(config-if)#ipv6 route 2001:db8:99:b::2/64 f0/1 2001:db8:99:1::2/64
R3(config-if)#ipv6 route 2001:db8:99:a::1/64 f0/0 2001:db8:99:1::1/64
R3(config-if)#ipv6 route 2001:db8:99:b::1/64 f0/1 2001:db8:99:2::2/64
R2(config-if)#ipv6 route 2001:db8:99:1::1/64 f0/0 2001:db8:99:2::1/64
R2(config-if)#ipv6 route 2001:db8:99:a::1/64 f0/0 2001:db8:99:2::1/64
R5(config-if)#ipv6 route 2001:db8:99:2::1/64 f0/0 2001:db8:99:b::1/64
R5(config-if)#ipv6 route 2001:db8:99:1::1/64 f0/0 2001:db8:99:b::1/64
R5(config-if)#ipv6 route 2001:db8:99:a::1/64 f0/0 2001:db8:99:b::1/64
從左往右依次配置 按順序可以減少錯誤
三、各路由可相互Ping通
四、數據包分析
128 回音請求
129 回音應答
133 路由器請求,當節點不願意等到下一次周期性的路由器宣告時,可發起一次路由器請求的多播包。正在初始化的節點可使用路由器請求,這樣即可得到路由相關參數
134 路由器宣告,路由器可周期性的發送路由器宣告包,這樣鏈路內的節點就可獲得相關的路由配置信息,路由器宣告包的跳數限制為255,這樣防止非本鏈路的路由發送路由器宣告包來干擾本鏈路的通信
135 鄰居請求,用於確定鄰居的鏈路層地址,判斷緩存中的鏈路層地址是否可達,判斷鏈路中是否存在重復的IP地址。這里的跳數限制仍然為25,防止鄰居請求包通過路由器
136 鄰居宣告,一種情況是應答鄰居請求,另一種情況是當節點發生改變時發送多播包給本鏈路中的節點通知鏈路層地址改變信息。
ARP解析MAC地址的過程:
第一步:上層應用產生數據,這里用FTP協議為例,在FTP協議中定位了目的IP。
第二步:那么,封裝的過程如下:
應用層:需要FTP的控制信息,包括用戶名、密碼等;
傳輸層:目的端口號為21,源為隨機端口號;
網絡層:目的IP為172.16.1.200,源IP為172.16.1.1;
數據鏈路層:因為不知道目的IP 172.16.1.200對應的MAC,所以目的IP到目的MAC的封裝映射失敗;
三層到二層的封裝失敗,由於二層是以太網,ARP的工作機制便會產生ARP Request去解析目的MAC,此時,源MAC為數據發起者的MAC,目的MAC地址為FFFF:FFFF:FFFF(代表所有MAC)
第三步:ARP Request到達本網段中的所有設備上,因為目的為FFFF:FFFF:FFFF,所以所有設備都可以拆掉二層的封裝,然后解讀ARP數據包中需要解析的目的IP。
第四步:目的IP不正確的設備直接忽略這個ARP請求包,目的IP正確的設備,會產生一個ARP Reply去回應這個ARP Request。此時,二層的源MAC為被解析設備的MAC,目的為ARP解析發起者的MAC。
第五步:數據的發起者接到ARP Reply后,將目的IP與目的MAC的對應關系添加到自己的ARP表中。
第六步:之前未完成二層封裝的FTP數據,這時重新開始封裝二層頭部,此時,正確的目的MAC就被封裝到了整個數據幀中。只有完成了整個TCP/IP協議棧封裝的數據幀,才能正常的從主機上發出去