2011/12/21

IPv6...

由於IPv4的網路位址已經耗盡了
所以下一代的網路定址IPv6顯得更為重要
 IPv6與IPv4最主要的差別是
網路位址的大小由32bits升級到128bits

網路的位址就變成下面的格式
2001:0db8:1a2b:0015:0000:0000:1a2f:0000
因為真的太難記了
所以有了下面兩種縮寫的規則
● 開頭0可以被忽略,多個0可縮寫成為一個
2001:db8:1a2b:15:0:0:1a2f:0
● 多個0的blocks可以被組成 :: (只能出現一次)
2001:db8:1a2b:15::1a2f:0

IPv6一樣有網路遮罩(Netmask)的概念
被稱作Prefix,在這個prefix所包含的位址皆為網路位址
2001:db8:1a2b:15::1a2f:0/64
上面的例子就是說前面的64個bits為網路位址

以前在IPv4有unicat, multicast以及broadcast
現在IPv6把最耗網路頻寬的broadcast改為anycast
這個anycast只有router能發出
是用來發給最近的router
這樣就可以知道最近的router是哪個
之後再傳遞封包的時候就可以用這台router傳送資料

unicast的網路位址分為兩種型態
● Global Address
全世界唯一
開頭位址為2或3,最後64bits是網卡位址
● Local Link Address
不能出router
fe80開頭,最後64bits是網卡位址 (只要有enable IPv6就會自動生成)
那要如何將網卡的位址(48bits)轉為IPv6的網卡位址(64bits)呢?
EUI-64就是要負責這樣的轉換規則
  - 第7個bit為補數
  - 加入FFFE到第3與第4個位址中
00:ab:cd:12:34:56 → 02ab:cdff:fe12:3456

由於IPv6的位址真的太複雜了
所以不希望大家用手動的方式設定網址 (也可以自己手動設定)
除了上面轉換MAC為IPv6 interface address的方法之外
IPv6還定義了兩個auto-configuration的方法 (自動設定IP)
● Stateless
網路的位址是由 router所給的 + EUI-64所產生出的網卡位址
這樣就是一個完整的IPv6 address
● Stateful
透過DHCP server所給的網路位址 + EUI-64所產生出的網卡位址
看DHCP server的設定,有時也會給定全部的位址而不用網卡位址