ipv6以及ip6tables的nat轉發


一、IPV6
  IPv6是英文“Internet Protocol Version 6”(互聯網協議第6版)的縮寫,是互聯網工程任務組(IETF)設計的用於替代 IPv4的下一代IP協議,其地址數量號稱可以為全世界的每一粒沙子編上一個地址。
由於 IPv4最大的問題在於網絡地址資源有限,嚴重制約了互聯網的應用和發展。IPv6的使用,不僅能解決網絡地址資源數量的問題,而且也解決了多種接入設備連入互聯網的障礙

1.表示方法

IPv6的長分布式結構圖 IPv6的長分布式結構圖
IPv6的地址長度為128位,是IPv4地址長度的4倍。於是IPv4點分十進制格式不再適用,采用十六進制表示。IPv6有3種表示方法。
(1)  冒分十六進制表示法
  格式為X:X:X:X:X:X:X:X,其中每個X表示地址中的16b,以十六進制表示,例如:
  ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
  這種表示法中,每個X的前導0是可以省略的,例如:
  2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A
(2)  0位壓縮表示法
  在某些情況下,一個IPv6地址中間可能包含很長的一段0,可以把連續的一段0壓縮為“::”。但為保證地址解析的唯一性,地址中”::”只能出現一次,例如:
  FF01:0:0:0:0:0:0:1101 → FF01::1101
  0:0:0:0:0:0:0:1 → ::1
  0:0:0:0:0:0:0:0 → ::
(3)  內嵌IPv4地址表示法
  為了實現IPv4-IPv6互通,IPv4地址會嵌入IPv6地址中,此時地址常表示為:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六進制表示,而最后32b地址則使用IPv4的點分十進制表示,例如::192.168.0.1與::FFFF:192.168.0.1就是兩個典型的例子,注意在前96b中,壓縮0位的方法依舊適用 [9]
2.特殊地址(本地單播地址):
  鏈路本地地址和唯一本地地址都屬於本地單播地址,在IPv6中,本地單播地址就是指本地網絡使用的單播地址,也就是IPV4地址中 局域網專用地址。每個接口上至少要有一個鏈路本地單播地址,另外還可分配任何類型(單播、任播和組播)或范圍的IPv6地址。
(1)  鏈路本地地址(FE80::/10):僅用於單個鏈路(鏈路層不能跨VLAN),不能在不同子網中路由。結點使用鏈路本地地址與同一個鏈路上的相鄰結點進行通信。例如,在沒有路由器的單鏈路IPv6網絡上,主機使用鏈路本地地址與該鏈路上的其他主機進行通信。
(2)  唯一本地地址(FC00::/7):唯一本地地址是本地全局的,它應用於本地通信,但不通過Internet路由,將其范圍限制為組織的邊界。
(3)  站點本地地址(FEC0::/10,新標准中已被唯一本地地址代替)
3.linux 常規使用:ping6、"curl -6 -g http://[X::X]"(-g 參數是為了支持[])、“telnet -6”、“ip addr add(del) dev ETH0 X::X ”。
 
二、ip6tables的nat轉發
1.常用命令
 顯示nat表規則:
  ip6tables -t nat -nL
 顯示編號:
  ip6tables -t nat -nL --line-number
 刪除對應編號:
  ip6tables -t nat  -D PREROUTING 1
  ip6tables -t nat  -D POSTROUTING 1
  添加轉發規則:
  ip6tables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to [本地IPv6地址]:8999  
  ip6tables -t nat -I POSTROUTING -p tcp --dport 8999 -j MASQUERADE

  注:SNAT,DNAT,MASQUERADE都是NAT,MASQUERADE是SNAT的一個特例。
  SNAT是指在數據包從網卡發送出去的時候,把數據包中的源地址部分替換為指定的IP,這樣,接收方就認為數據包的來源是被替換的那個IP的主機。
  MASQUERADE是用發送數據的網卡上的IP來替換源IP,因此,對於那些IP不固定的場合,比如撥號網絡或者通過dhcp分配IP的情況下,就得用MASQUERADE。
2.可能遭遇的問題:
  數據包進入PREROUTE鏈后,修改完DNAT,但未轉發到POSTROUTE臉。
  解決方案:開啟內核forward轉發
   查看:sysctl -a |grep ipv6 |grep forward
  

   修改:sysctl -w net.ipv6.conf.all.forwarding=1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM