IPv6地址的號段划分和前綴表示法:
IPv6擁有128位巨大的地址空間,對於那么大的空間,也不是隨意的划分,而是使用按照bit位進行號段划分
地址結構圖
| 全局路由前綴 (48位) |
子網ID (16位) |
接口ID (128位) |
與IPv4一樣,IPv6也由兩部分(網絡部分和主機部分),全局前綴 64位(包含子網16位)
IPv6書寫格式:
表述和書寫時,把長度為128個二進制位(bit)的IPv6地址分成8個16位的二進制段、每一個16位的二進制段用4位的16進制數表示,段間用“:”(冒號)隔開(其書寫方法和IPv4的十進制數加“.”不同)。
例如:1000:0000:0000:0000:000A:000B:000C:000D就是每一個16位的二進制數的段用4位16進制數的段來表示、段間用“:”(冒號)隔開的一個IPv6地址;其中:各個4位16進制數的段中的高位0允許省略;因此,上面的IPv6地址也可以縮寫成:1000:0:0:0:A:B:C:D。
為了更進一步簡化,IPv6的地址規范中還規定,可以在一個IPv6地址中最多使用一次雙冒號(::)來取代IPv6地址中緊密相連的多個全0的16進制數的段(因為如果允許在一個IPv6地址中使用一次以上的雙冒號時將無法判斷IPv6地址的長度,所以IPv6的地址規范中才規定:在一個IPv6地址中最多只能使用一次雙冒號),這樣上面的IPv6地址還可以縮寫成:1000::A:B:C:D。
雙冒號使用的地點可以在IPv6地址的前面、后面或者是中間;例如:對於1000:0:0:0:A:B:0:0這樣的一個IPv6地址,可以寫成1000::A:B:0:0,也可以寫成1000:0:0:0:A:B::;但是不能寫成1000::A:B::。
地址類型:
單播地址:目標地址為單播地址的分組被傳輸到單個接口。為均衡負載,位於多台設備中的多個接口可使用相同的地址,但這種地址被稱為任意播地址。
全局單播地址(2000::/3): 這是典型的可路由的公有地址,與IPv4 中的單播地址相同。
鏈路本地地址(FE80::/10): 類似於IPv4 私有地址,也是不可路由的。可將它們視為一種便利的工具,讓你能夠為召開會議而組建臨時LAN ,或創建小型LAN,這些LAN不與因特網相連,但需要在本地共享文件和服務。
唯一的本地地址(FC00::/7):這些地址也是不可在因特網路由的,但也基本上是全局唯一的,因此不太可能重復使用它們。唯一的本地地址設計用於替代場點本地地址,因此它們的功能幾乎與IPv4私有地址相同:支持在整個場點內通信,可路由到多個本地網絡。場點本地地址已於2004年9 月廢除。
組播地址(FF00::/8):與IPv4 中一樣,目標地址為組播地址的分組被傳輸到該組播地址表示的所有接口。這種地址有時也被稱為一對多地址。IPv6組播地址很容易識別,它們總是以FF打頭。
任意播地址:與組播地址一樣,任意播地址也標識多個設備的多個接口,但有一個很大的差別:任意播分組只被傳輸到一個接口一一根據路由選擇距離確定的最近接口。這種地址的特殊之處在於,可將單個任意播地址分配給多個接口。這種地址被稱為”一對最近”地址。
IPv6特殊地址:
地址 含義
0:0:0:0:0:0:0:0 (::) 相當於IPv4 地址0.0.0.0通常在使用有狀態DHCP 配置時,用作主機的源地址。
0:0:0:0:0:0:0:1 (::1) 相當於IPv4 地址127.0.0.1。
0:0:0:0:0:0:192.168.100.1 在同時支持IPv4和IPv6 的網絡中,從IPv4 地址轉換而來的IPv6地址通常這樣書寫。
2000::/3 全局單播地址范圍。
FC00::/7 唯一的本地單播地址范圍。
FE80::/10 鏈路本地單播地址范圍。
FF00::/8 組播地址范圍。
3FFF:FFFF::/32 保留舉例和編寫文檔時使用。
2001 :0088: :/32 保留舉例和編寫文檔時使用。
2002::/16 保留供6to4 隧道技術使用。6to4 隧道技術是一種從IPv4 遷移到IPv6 的方法,讓IPv6 分組能夠通過IPv4 網絡進行傳輸,而無需配置顯式的隧道。
IPv6在服務器上的一些使用:(首先需要服務器啟用ipv6功能,和ipv4大致相同)
ipv6路由的一些操作:
查看服務器的ipv6路由信息: ip -6 route 或 route -6
查看令居緩存: ip -6 neighbor show
添加IPV6地址
ip -6 addr add <ipv6address>/<prefixlength> dev <interface>
ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0
ifconfig <interface> inet6 add <ipv6address>/<prefixlength>
ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64
添加默認路由
ip -6 route add <ipv6network>/<prefixlength> via <ipv6address>
ip -6 route add default via 2001:0db8:0:f101::1
route -A inet6 add <ipv6network>/<prefixlength> gw
route -A inet6 add default gw 2001:0db8:0:f101::1
添加策略路由
ip -6 rule add from ::1 table 111 來自::1的路由走表111
ip -6 rule add from to ::1 table 111 去::1的路由走表111
ip -6 rule add from all iif eth1 table 111 來自eth1的路由走111
查看策略路由
ip -6 rule
ipv6iptables的一些使用:
指定ip地址
ip6tables -A INPUT -i sit+ -p tcp -s 2001:250:4000:2000::1/64 --dport 27017 -j ACCEPT
保存規則
service ip6tables save
所有ip地址
ip6tables -A INPUT -p tcp --dport xxx -j ACCEPT ip6tables -A INPUT -m state --state NEW -p tcp --dport xxx -j ACCEPT
刪除規則
ip6tables -D INPUT|OUTPUT|FORWARD num
查看已添加的端口
ip6tables -L --line-numbers
查看當前端口狀態數據包狀態
ip6tables -vnL --line-numbers
