banner
Zach

Hi,Ztar

Have a good day!
github

Nat6的實現

Nat6 的實現#

部署這個的原因呢是我改造家裡的軟路由,原先使用的 openwrt,使用 dnsmasq 我不喜歡,所以寒假空忙時間去實現自己從零開始配置,選擇自己喜歡的軟件和工具,DIY 化

可能有人看到這個標題就要問了,ipv6 明明可以直接公網分配給每一個設備,為什麼還要設置 nat6 呢

其實不是我不想配置,實在是我所動用的工具有點難以實現(主要還是技術不夠)

大部分所實現分配公網 v6 所使用的是使用 dnsmasq 和 wide-dhcpv6-client 之類的工具,我使用的工具是 isc-dhcp-server 和 radvd,dns 解析為 AdGurad Home

Important

本文基於 Debian11.8,X86_64 架構,如使用環境不同,請自行搜索相應對照

1. 編輯 isc-dhcp-server#

  • 編輯 isc-dhcp-server
vim /etc/default/isc-dhcp-server
  • INTERFACESv6="" 填上你的內網網卡名稱(lan 口)

1

  • 編輯 sysctl.conf

    vim /etc/sysctl.conf
    

    2

    貌似在電信寬帶下需要修改

    /etc/sysctl.conf, 這條需要 2 改為 1

    net.ipv6.conf.ppp0.accept_ra=1
    

    而聯通寬帶還需要增加一條

    在 /etc/ppp/peers/dsl-provider 文件,加入

    +ipv6
    

    否則 wan 口沒法獲取 ipv6 公網地址

    • 配置 ipv6 靜態地址

      vim /etc/network/interfaces
      

添加以下內容,加在 lan 口配置處,我是 eno1

iface eno1 inet6 static
				address fc00:a:b:100::1
				netmask 64
CleanShot 2024-02-21 at 14.49.10

這個地址你可以根據 v6 規範自己修改,內網地址

  • 配置 dhcp6

    vim /etc/dhcp/dhcpd6.conf
    

    CleanShot 2024-02-21 at 14.52.22

添加上面內容,subnet6 那裡開始,那個 fc00🅰️b:100 要根據上面的對照

  • 配置 ip6tables

    vim /etc/ufw/before6.rules
    

    CleanShot 2024-02-21 at 14.55.44

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s fc00:a:b:100::/64 -o ppp0 -j MASQUERADE
COMMIT

我使用的是 ufw 防火牆,如果你要使用如 iptables 或者 nftables 之類的防火牆,請自行搜索一下如何配置

注意 ppp0 是你的 wan 口名稱,請自行修改

2. 安裝 radvd#

apt-get install radvd
vim /etc/radvd.conf

這個主要是發 ra 使用,eno1 是 lan 口網卡

CleanShot 2024-02-21 at 15.00.47

interface eno1{

        AdvSendAdvert on;
        prefix fc00:a:b:100::/64{

                AdvOnLink on;
                AdvAutonomous on;
        };

};

接下來就剩 ipv6 的 dns 了,由於我配置的有AdGuradHome擔任 DNS 解析工作,所以我只需要在 dhcpd6.conf 中指定 lan 口的 v6 地址即可

CleanShot 2024-02-21 at 15.05.37

CleanShot 2024-02-21 at 15.05.08

應該是 fc00🅰️b💯:1 和 fe80::62be:b4ff:fe08都可以

TEST#

你可以用你局域網設備測試一下是否有 v6 了

curl 6.ipw.cn

如果有,那就恭喜你成功了

參考#

  1. wide-dhcpv6 https://blog.otakusaikou.com/2020/11/11/x86-soft-router-and-ipv6/
  2. ubuntu 路由配置 ipv4 和 ipv6 https://www.youtube.com/watch?v=GnKcM7RZbyc&t=128s
  3. ipv6 端口轉發https://www.emonq.com/ip6tables%E5%AE%9E%E7%8E%B0%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91/
  4. radvd https://blog.csdn.net/l0605020112/article/details/18225143
  5. radvd https://www.tomicki.net/ipv6.router.php
  6. 部署教程 https://arc.net/l/quote/spnbtpmi

此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://www.ssstttar.com/posts/Z-turn/Nat6


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。