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 解決は AdGuard Home です。

Important

この記事は Debian 11.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 のこの行を 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

上記の内容を追加します。subnet6 から始まる部分で、fc00🅰️b:100 は上記の対応に基づいて変更してください。

  • ip6tables の設定
vim /etc/ufw/before6.rules
*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のどちらでも構いません。

テスト#

ローカルネットワークのデバイスで 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です。


読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。