web-dev-qa-db-ja.com

DHCPv6-PDサーバーによる委任されたプレフィックスに基づいて、radvd、dhcpd6、ルーティング、および/ 64サブネットを構成する方法

私のISPはIPv4/IPv6デュアルスタックサービスを開始しました。 IPv4/IPv6インターネットに接続するために、ほとんどすべてのユーザーは通常、ISPからリースされたCPEを使用します。しかし、私のルーターは非常に多くの役割を持っているので、このようなCPEの代わりにLinuxルーターを使用したいと思います(多くのiptablesルールと3つのイーサネットインターフェイス、httpリバースプロキシ、httpキャッシュ、memcached、smtp/popサーバー、DNSプロキシ)。 IPv4/IPv6デュアルスタックルーターにしたい。

マイルーター

  • CentOS6.0 i686
  • wANのeth0
  • lANのeth1,2
  • CentOS-updatesリポジトリから「#yum install dhcp」によってインストールされたISC dhcp(バージョン4.1.1)
  • centOSベースのリポジトリから「#yum install radvd」によってインストールされたradvd(バージョン1.6)
  • [編集] ISC dhclientを使用する理由は、ISP固有の情報を含むベンダー固有の情報オプションを取得するために、ルーターが要請メッセージと要求メッセージでDHCPv6オプション16(ベンダークラス)を送信する必要があるためです( SIP電話番号、ファームウェアサーバーアドレス)。 ISC dhclientでオプション16を設定する方法は知っていますが、WIDE-dhcpv6ではそれがわかりません。また、ISC dhclientで「id-assoc」などの設定が見つかりません。

私の目標

  • / 48プレフィックスは、eth0のDHCPv6-PD(DHCPv6プレフィックス委任)クライアント(dhclient)に委任されます。
  • IPv6デフォルトルートはISPに向けて設定されています。 ISPのDHCPv6サーバーのリンクローカルアドレスをデフォルトルートと見なす必要があります。
  • 1つの/ 64サブネットと1つのグローバルアドレス(委任されたプレフィックスにあります)が各LAN I/F(eth1/eth2)に割り当てられます。
  • eth1およびeth2のradvdは、割り当てられた/ 64サブネットに基づいてRAをアナウンスします。
  • eth1およびeth2のdhcpd6は、ISPのDHCPv6サーバーから受信した追加のネットワーク情報(ネームサーバー、ドメイン検索リスト、およびsipサーバーアドレス)をアナウンスします。

現在の構成

/ etc/sysconfig/network

NETWORKING=yes
HOSTNAME=xxx.yyy.zzz

# Enable IPv6 routing and stop accept_ra/autoconf.
IPV6FORWARDING=yes

/ etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none

# Enable DHCPv6-PD client.
DHCPV6C=yes
DHCPV6C_OPTIONS="-P -cf /etc/dhcp/dhclient6.conf"

# Disable make_resolv_conf function in /sbin/dhclient-script.
PEERDNS=no

/etc/dhcp/dhclient6.conf

script "/sbin/dhclient-script";
interface "eth0" {
        send dhcp6.reconf-accept;
        also request dhcp6.vendor-opts, dhcp6.sip-servers-names, dhcp6.sip-servers-addresses, dhcp6.sntp-servers;
}

結果

「#service network restart」の後、DHCPv6-PDクライアントは正常に終了するようです。

lease6 {
  interface "eth0";
  ia-pd xx:xx:xx:xx {
    starts 1312464004;
    renew 7200;
    rebind 10800;
    iaprefix 24xx:xxxx:xxxx::/48 {
      starts 1312464004;
      preferred-life 12600;
      max-life 14400;
    }
  }
  option dhcp6.client-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
  option dhcp6.server-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
  option dhcp6.reconf-accept ;
  option dhcp6.sip-servers-addresses 24xx:xxxx:xxxx:xxxx::1;
  option dhcp6.name-servers 24xx:xxxx:xxxx:xxxx::3,24xx:xxxx:xxxx:b::3;
  option dhcp6.domain-search "xxx.jp.", "yyy.jp.";
  option dhcp6.sntp-servers 24xx:xxxx:xxxx:xxxx::a,24xx:xxxx:xxxx:b::b;
}

質問

DHCPv6-PDクライアントに/ 48プレフィックスが正常に委任されました。しかしその後、

  • ルーターのルーティングテーブルにIPv6デフォルトルートを設定する方法
  • 委任されたプレフィックスに基づいて、グローバルIPv6アドレスおよび/ 64サブネットを各LAN I/F(eth1およびeth2)に割り当てる方法
  • Radvdをトリガーして、各LAN I/F(eth1およびeth2)でRAを通知する方法は?
  • 各LAN I/F上のDHCPv6サーバー(dhcpd6)をトリガーして、ISPのDHCPv6サーバーから受信した追加のネットワーク情報(name-servers、domain-searchlistおよびsip-servers-addresses)をアナウンスする方法

私の推測

「$ man dhclient」と「$ man dhclient-script」によると、このような設定にはdhclient-scriptが使用されているようで、フックがいくつかあります。しかし、今はDHCPv6-PDクライアントに対しては何もしません。

はい、IPv6ネットワーク構成に精通していませんが、DHCPv6-PD環境に適したスクリプトをいくつか作成する必要がある場合があります。どなたか、dhclient-scriptの上記の設定を教えてください。 [編集]実用的なdhclient-scriptを知りたい。

そして私は心配します、いくつかの特別な考慮が払われるべきです。たとえば、各IPv6アドレスには優先/有効な有効期間があるため、委任されたプレフィックスに基づいてグローバルIPv6アドレスをLANインターフェイスに割り当てる場合、IPv6アドレスだけでなく、委任から派生する必要があるその有効期間も割り当てる必要があります接頭辞の推奨/有効期間?

また、DHCPv6の再構成が発生したときに、LANインターフェイス上のradvdおよびDHCPv6サーバーを再構成する必要がある場合があります。どのフックを使用する必要がありますか?

[編集] DHCPv6の再構成が発生した場合、新しい情報と古い情報の両方をどのように発表するのですか? radvdは、前のプレフィックスが廃止されたことを自動的に通知しますか? DHCPv6サーバーは、以前のネームサーバーが廃止されたことを自動的に通知しますか?

10
takaomag

あなたの質問への答えはわかりませんが、デフォルトのルーターとしてDHCPサーバーアドレスを使用することについて警告します。それが機能する場合、それは偶然です... IPv6では、デフォルトルートはDHCPではなくRAによって通信されます。

転送を有効にし、RAを受け入れ、RSを送信する必要があります。ここでの問題は、Centos6に含まれているカーネルではそれができないことです。転送を有効にすると、RAの受け入れとRSの送信が無効になります。ただし、関連するパッチが適用されたCentosPlusカーネルがあるはずです。 http://lists.centos.org/pipermail/centos/2011-April/thread.html#109756 のメーリングリストのスレッド/メッセージを参照してください

関連するsysctl.conf設定は次のとおりです。

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.eth0.accept_ra=2
net.ipv6.conf.eth0.accept_ra_defrtr=1
net.ipv6.conf.eth0.router_solicitations=1
4
Sander Steffann
  • DHCPv6 PDを使用して追加のサブネットを取得する前に、デフォルト(アップストリーム)インターネット接続を取得したものによってIPv6デフォルトルートをセットアップする必要があります。実際にアップストリームに接続する方法については言及していません。 、だから私はあなたを助けることはできません。
  • ISCではなくWIDE DHCPv6クライアントを使用しているため、具体的な方法がわかりませんが、ISCにはこのWIDE構成オプションと同等のものがあると思います。

    id-assoc pd {
        prefix-interface eth0 {
            sla-id 1;
            sla-len 4;
        };
    };
    

    基本的に、内部インターフェイスにサブネットを割り当てる方法をDHCPクライアントに指示します。上記の設定は、「私に委任された4ビットのプレフィックス(sla-len 4)を取得し、最初に利用可能なサブネット(sla-id 1)を取得し、それをeth0prefix-interface eth0)に割り当てます。

  • 適切なinterfaceスタンザを使用してradvdをセットアップし(radvd.confのマニュアルページに適切な例があります)、それで問題なく動作します。
  • そこであなたを助けることはできません。テスト以外は、DHCPv6サービスを使用していません(DHCPサーバーからすべてのDHCP情報を取得しています)。
2
womble

Wombieは、radvとルーティングのセットアップに使用するのと同じ答えを出しました。 Inet6は、DHCPサーバーを必要とせずに自己構成を行うように設計されています。

DHCPv6はradvdおよびzeroconfで処理できるため、私はDHCPv6を使用しません。 radvdは、ネームサーバーを提供するように構成でき、/ etc/resolv.confからサーバーをアドバタイズできます。 radvdの新しいバージョンでは、検索リストの配布も実装されています。

ネームサービスとサーバーをクライアントに配布するようにavahi-daemonを構成しました。クライアントがサービスディスカバリを実行できる必要があります。全面的にデュアルスタックネットワークを実行しているため、サービスディスカバリのテストはあまり行っていません。

0
BillThor