Linux

IPv6 和 NAT,路由到多個 ISP

  • July 11, 2016

目前我有一個很好的設置,使用私有 IPv4 地址空間和從兩個 ISP 到 Internet 的上行鏈路。多虧了 NAT,我只需關閉其中一個介面,仍然可以訪問 Internet。

我一直在考慮如何在 IPv6 中複製此配置。從我讀到的“NAT 已死”,我真的很高興,我不喜歡它(有時完全討厭它),但它有它的用途。

換個角度來看:這是一家小公司,網路中有 3 打電腦,我們沒有預算用於支持 SLA 和 BGP 的精美連結。所以我認為我們自己的 RIPE-NCC 的 IPv6 子網將無法工作。

另一方面,擁有兩個獨立的連結非常有用。有沒有辦法在 IPv6 中進行 1 對 1 NAT(我使用 Linux 機器作為路由器)?我該怎麼做?是否允許我繼續使用兩個 ISP(前提是它們都支持 IPv6)。

當我從 ISP 獲得子網時,我需要一個面向 Internet 的 IP 地址(以便能夠將數據包路由到我的 ISP)和一個面向我的 LAN 的 IP 地址。在 IPv6 中,兩者都應該是可路由的。這是否意味著我必須從我的 ISP 獲得至少 2 個子網?還是要求 ISP 提供一個 /48 子網而不僅僅是兩個 /64 子網?(並將第一個 /64 子網專用於路由器內部通信。)如果我從 ISP 只獲得一個 /64 子網該怎麼辦?

總結一下:

問題

  • 我可以在 Linux 中的 IPv6 中進行 1 對 1 NAT 嗎?我該怎麼做?
  • 我是否需要接收至少兩個 /64 子網才能在防火牆後面的 LAN 中輕鬆設置路由?
  • 如果我從 ISP 獲得單個 /64 子網,是否有辦法在我的 LAN 中擁有公共地址?

如果沒有 BGP 和“企業級”ISP,多宿主將無法為您工作。可以使用 IPv6進行1 對 1 NAT。我不知道如何在 Linux 上配置它。不過還有另一種方法:

您將從兩個 ISP 獲得前綴。可能是 /56 或 /48。在這種情況下,到 ISP 的連結是否獲得它自己的地址並不重要。IPv6 可以與未編號的上行鏈路完美配合。然後你要做的是將每個 ISP 的路由器連接到你的 LAN,並且兩者都應該在你的 LAN 上從他們自己的 ISP 發布 /64。因此,您的所有系統都(至少)獲得兩個公共 IPv6 地址:一個來自每個 ISP。您可以為主要 ISP 的廣告提供更高的優先級。當與 ISP 的連結斷開時,相應的路由器應撤回其通告,您的系統將開始使用另一條連結。

唯一的缺點是當一個 ISP 不接受來自另一個 ISP 的源地址的數據包時。如果是這種情況,那麼路由器應該檢查源地址並將具有錯誤源地址的流量轉發到另一個路由器。

如果您只從 ISP 獲得一個 /64,那麼您可以在 LAN 上使用它。他們應該給你更多。/48 多年來一直是標準,現在 /56 變得越來越正常,但你絕對應該得到比 /64 更多的東西。

引用自:https://serverfault.com/questions/300447