把自己的 IPv6 接回家

關於這是一個被我閒置到忘記的一件事…

從申請到 ASN 以及拿到自己的一段 /44 IPv6 後過了半年多了
被一堆垃圾事纏身到完全忘記這件事
兩星期前才突然想到然後把它搞定wwwww

前置任務

首先當然是要先把我屬於我們的 IPv6 Prefix 宣告出去啦
這邊就不多做說明了
請參考前面 ASN 初體驗 Part 2

設定隧道

當確定路由成功宣告出去後
我們需要將邊界路由預定發給家中的 IPv6 路由到家中的路由器上
這時就需要透過隧道直接將兩台接起來

這邊使用一個最方便快速的 IPv6 乘載方式 : SIT tunnel (Simple Internet Transition tunnel 或稱 6in4 tunnel)
他是一種 “透過 IPv4 將兩點接起來” 且 “只能傳送 IPv6 流量” 的隧道

情境

大致上需要三個步驟

  1. 我們對外宣告 2a0f:607:1500::/48 走到我的 Vultr 邊界路由上
  2. 將 Vultr 與家中的 ASUS 路由器用 SIT 接起來
  3. 設定路由表讓邊界路由知道流量要從 SIT 送至家中 ASUS

其實雖然說分為三步驟
但其實全部都可以用一個檔案搞定

Vultr 邊界路由那邊

我們直接來看邊界路由上設定 SIT tunnel 如何做的

  • /etc/network/interfaces.d/sit-home
    1
    2
    3
    4
    5
    6
    auto sit-home
    iface sit-home inet6 v4tunnel
    address 2a0f:607:150f:ffff::/127
    endpoint xxx.xxx.xxx.xxx
    ttl 64
    post-up ip -6 r add 2a0f:607:1500::/64 via 2a0f:607:150f:ffff::1

稍微解說一下格式

  • endpoint
    • 要填另一邊 IPv4 (也就是家裡的 IPv4)
  • post-up
    • 網卡啟動後會做的事
    • 加上一條路由告訴邊界路由 2a0f:607:1500::/64 要往這個隧道的另一端送

家中 ASUS 路由器那邊

去到 IPv6 設定那頁設定填上對應的東西

  • Server IPv4 Address
    • 就是填邊界路由的地址

最後記得把最下面的 Auto Config 打開
那就是所謂的 RA (Router Advertisement) 負責處理 SLAAC
也就是會讓裝置自動取得 IPv6
這邊要注意前綴長度一定要大於等於 64 才能使用 SLAAC

驗證

到這邊也都設定完成了
先從家中設備看一下是否有正常取得 IPv6

接著 ping 一下外網 IPv6 的機器看看有沒有通

OK 都正常
到這邊就全部完成了

最後

整個過程其實並不複雜
對於路由運作如果夠熟悉
這些操作可以說幾乎一瞬間就完成了

最後放一下精美的路線圖
我們從 Vultr 新加坡伺服器測試走到家中的路會長怎樣

順便預告一下
接下來會寫關於自己內網建設過程的一些紀錄
至於會有幾篇不知道
不過內容大概會包括一些關於隧道、IPsec 踩過的坑、OSPF、基礎建設之類的東東

敬請期待 ٩(ˊᗜˋ*)و