web-dev-qa-db-ja.com

Debianベースのルーターとプレフィックス委任を使用してLAN内にIPv6を展開するにはどうすればよいですか?

私のISPはDHCPv6の使用を開始しました。つまり、これは/ etc/network/interfaces ...

auto lo eth0 eth1

iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
    address 192.168.0.1
    netmask 255.255.255.0

allow-hotplug eth1
iface eth1 inet dhcp
iface eth1 inet6 dhcp

...私のDebianWheezyルーターは最終的にIPv6アドレスを割り当てられます(イェーイ!)。

しかし、ルーターがLAN内のすべてのワークステーションにIPv6アドレスを割り当てるようにするには、次に何をする必要がありますか?

IPv4の場合、私がしなければならなかったのは、WANインターフェイスでDHCPクライアントを有効にし、ルーターとワークステーションに静的IPv4アドレスを割り当て、最後にNAT =(そのためにiptables -t nat -a POSTROUTING -s 192.168.0.0/32 ! -d 192.168.0.0/32 -j MASQUERADEを使用しました)。

IPv6ではNATはありません。 radvdisc-dhcp-serverを調べましたが、どちらも構成ファイルにプレフィックスを設定する必要があるようです(つまり、変更されないプレフィックス)。 。ただし、ISPは、再接続するたびに新しいプレフィックスを提供しているようです。

私は本当に迷っています。

7
Oliver M.

あなたはあなたのISPが誰であるかを言いませんでしたが、以下は彼らがIPv6を展開した地域のComcastで機能します。

他のDHCPv6クライアントはいずれも、ISPに面したインターフェイスのアドレス、プレフィックス委任、およびComcastの最大/ 60ネットワークマスクの取得をすべて同時に処理できなかったため、wide-dhcpv6-clientを使用する必要がありました。

Wide-dhcpv6-clientをインストールした後、/ etc/network/interfacesを編集して、eth1IPv6設定が次のようになるようにします。

iface eth1 inet6 auto
        post-up sysctl -w net.ipv6.conf.ext0.accept_ra=2

/etc/wide-dhcpv6/dhcp6c.confを編集して、次のようにします。

profile default
{
  information-only;

  request domain-name-servers;
  request domain-name;

  script "/etc/wide-dhcpv6/dhcp6c-script";
};

interface eth1 {
    send rapid-commit;

    send ia-na 0;
    send ia-pd 0;
};

id-assoc na 0 {

};

id-assoc pd 0 {
    prefix ::/60 infinity;

    # Internal interface (LAN)
    prefix-interface eth0 {
        sla-len 4;
        sla-id 0;
        ifid 1;
    };
};

「na」セクションは、eth1(ISPに面している)のIPv6アドレスを取得します。 「pd」セクションは、内部ネットワークのプレフィックス委任を取得し、IPv6アドレス「[prefix] :: 1」をeth0(内部インターフェイス)に割り当てます。内部ネットワークが追加されている場合は、それらのインターフェイスに「prefix-interface」セクションを追加して、それぞれの「sla-id」をインクリメントできます。

次に、内部ネットワーク用のシステム上にルーターアドバタイズメントデーモンが必要です。 radvdまたはdnsmasqのいずれかを使用できます。

Dnsmasqを使用している場合、IPv6の/etc/dnsmasq.confに必要な追加は次のとおりです。

# Enable IPv6 Router Advertisement (RA) features.
enable-ra

# Advertise delegated prefix based on the IPv6 address of eth0.
dhcp-range = ::1,constructor:eth0,   ra-stateless, ra-names, 4h

Debian wheezyに同梱されているバージョンではルーターのアドバタイズが適切に行われないため、Debianテストからdnsmasqをインストールする必要があります。

次に、外部インターフェイスのifdownとifupで、dhcp6cが実行されていることを確認し、外部インターフェイスと内部インターフェイスの両方にリンクローカルアドレス以外のIPv6アドレス(「fe80 :: ...」アドレス)があるかどうかを確認します。それがすべて機能した場合は、dnsmasqを再起動すると、LAN上のシステムがIPv6アドレスの自動構成を開始するはずです。

12
Michael Berg

Debianを OpenWRT に置き換えても構わないと思っている場合は、すべてが自動的にセットアップされます—最近のバージョンのOpenWRTは、WANインターフェイスでDHCPv6プレフィックス委任を要求し、/ 64ビットに分割します。 RAとDHCPv6を使用するLANインターフェースにそれらを使用します。構成は必要ありません。これらはすべて、箱から出してセットアップされます。

ネットワークに複数のルーターがある場合は、 Homenet プロトコルスイートを使用してルーターを自動的にセットアップしてみてください。 Homenetは、OpenWRTではhnetdを使用して実装され、Linuxではshncpdを使用して実装されます。 (shncpdをDebianに統合することは進行中の作業です、私たちはあなたの助けを使うことができます。)

1
jch