18.2.1. Linux 2.4.x 版的核心支援
目前 2.4 版未支援。在加密程式碼部分還有些法律上的問題。同樣的問題也發生在其他專案上
18.2.2. Linux 2.6.x 版的核心支援
目前的版本 (2.6.9 以上) 已支援 IPv4 與 IPv6 的 IPsec .
這部份的程式由 USAGI 專案協助實作.
18.2.1. Linux 2.4.x 版的核心支援
目前 2.4 版未支援。在加密程式碼部分還有些法律上的問題。同樣的問題也發生在其他專案上
18.2.2. Linux 2.6.x 版的核心支援
目前的版本 (2.6.9 以上) 已支援 IPv4 與 IPv6 的 IPsec .
這部份的程式由 USAGI 專案協助實作.
有兩種加密與認證的模式可行:
18.1.1. 傳輸模式 (Transport Mode)
傳輸模式是種真實的點對點連線模式。它的 IP 標頭並未被加密 (但通常已包含於認證中), 而只有負載 (通常為 ICMP, TCP 或 UDP) 被他們的特定標頭所加密
使用 AES-128 來加密,並使用 SHA1 來做認證,此模式讓 MTU 減少 42 位元
18.1.1. 隧道模式 (Tunnel Mode)
隧道模式可於點對點和閘道對閘道連線模式中使用。完整的 IP 封包將被加密並取得新的 IP 標頭 (The complete IP packet is being encrypted and gets a new IP header prepended .)
This mode usually decreases the MTU by 40 octets from the MTU of transport mode.
在此模式下通常會讓使用了傳輸模式的 MTU 再減少 40 位元
IPsec 需要透過一個安全的金鑰交換過程。在 Linux 中是透過 IKE daemons 程式來達成。它們也使用公用安全機制 (common known secret, 即一般所言的 "預先分享安全機制"(pre-shared secret)), 或使用 RSA 金鑰 (此金鑰也可用在 X.509 認證上) 處理對方的認證。目前 Linux 上提供有兩種不同的 IKE daemons, 兩者在使用與配置過程上完全不同。相較於 * S/WAN , 筆者比較偏好 "pluto" 實作,因為 "pluto" 比較容易而且只需一步設定安裝.
此 HOWTO 文件應列於 "網路 / 協定" 分類
This HOWTO should be listed in category "Networking/Protocols".
2.4.1. 為什麼稱作 IPv6, 而非繼 IPv4 之後稱為 IPv5 ? 在任何 IP 標頭中,前 4 位元是為協定版本號所保留的。所以理論上一個協定的版本號在 0 和 15 之間都是可以的:
* 4 己經為IPv4所使用.
* 5 為串流( Stream )協定所保留 (STP, RFC 1819 / 網際網路串流協定第二版)(不曾真正公開使用過)
因此下一個可以用的號碼是 6, 因此 IPv6 就這樣誕生了!
2.4.2. IPv6 位址:為什麼 IPv6 位址位元數要這麼長? 在設計 IPv4 的時候,人們認為 32 位元的長度足夠全世界使用。回頭看看這些年來,32 位元就現在和未來幾年來仍足以使用. 然而,32 位元過不久將不能滿足各種網路設備對全球 IP 位址的需求。想一想將來要連結網路的移動電話,汽車 (包括電子總控系統), 烤麵包機,冰箱,照明開關...
所以設計者選擇了 128 位元,是今天 IPv4 大小 (2^96) 與長度的 4 倍.
雖然實際可使用的大小可能比它看起來的還要小。這是因為現在的定義位址設計,64 位元被用於界面識別. 另外 64 位元則用於路由。假設於目前嚴格的集合階層 (/48, /35, ...), IPv6 所能提供的位址空間仍可能有耗盡的一天,但在可見的將來中應仍不會發生.
您可由 RFC 1715 / The H Ratio for Address Assignment Efficiency and RFC 3194 / The Host-Density Ratio for Address Assignment Efficiency. 中得到更進一步的資訊
2.4.3. IPv6 位址:為什麼在新的設計裡位元數這麼少? 雖然,可能有些人在考慮 IPv8 和 IPv16, 然而這些設計無論從接受和執行都是那麼的遙遠. 目前 128bit 對於標頭和數據傳輸延遲來說是最佳的選擇. 考慮到在 IPv4 和 IPv6 的最小最大傳輸單位 (MTU), 它們分別是 576 位元組和 1280 位元組, IPv4 的標頭長度為 20 位元組和 (最小值,加上 IPv4 位址選項可以增大到 60 位元組), 在 IPv6 的標頭中則是 48 位元組 (固定不變的), 標頭分別占它們 MTU 的 3.4% 和 3.8%, 這意味著兩個協定標頭所造成的負載幾乎相同. 更多位元的位址需要更大的標頭,因而佔據更大的負載.
同樣,考慮到正常連結的 MTU 最大值 (像現在的以太網): 1500 位元組 (特別的例子:Jumbo frames 使用了 9k 位元組). 最終,如果在要傳輸的第三層封包中 10% 或 20% 都用來傳送位址而非封包內容,這可能不是個很好的設計方式.