web-dev-qa-db-ja.com

固定アドレス委任を使用してハリケーンエレクトリックからipv6ネットワークをセットアップする方法は?

Linuxゲートでのipv6ネットワークの設定を手伝ってください。 HEルーティング2001:471:70c8 ::/48プールからの静的ipv6アドレスをクライアントに提供したいと思います。そこから最初の/ 64サブネット(2001:471:70c8:1 ::/64)を取得し、そこからクライアントにアドレスを配布したいと思います。

ipv6転送がオンになっている場合、ip6tablesはFORWARDを受け入れます。ゲートからはクライアントとインターネットにpingを実行でき、クライアントからはゲートにpingを実行できますが、インターネットにpingを実行することはできません。教えてください、私は何が間違っているのですか?

radvd:

gate ~ # cat /etc/dhcp/radvd.conf          

interface internal_0
{
    AdvSendAdvert on;
    AdvManagedFlag on;
    AdvOtherConfigFlag on;

    prefix 2001:471:70c8:1::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr off;
    };

    RDNSS 2001:471:70c8:1::1
    {
    };

    DNSSL domain-home.local
    {
    };
};

dhcpv6

ddns-update-style none;
authoritative;
option dhcp6.name-servers 2001:471:70c8:1::1;
option dhcp6.domain-search "domain-home.local";
default-lease-time 3600;
max-lease-time 14400;
option client-class-information code  97 = string;
deny duplicates;
ping-check true;
update-optimization false;

shared-network "domain-home"
{
  interface internal_0;
  subnet6 2001:471:70c8:1::/64
  {
    pool6
    {
      # Range for clients
      range6 2001:471:70c8:1::1 2001:471:70c8:1::fe;

      # Range for clients requesting a temporary address
      range6 2001:471:70c8:1::/64 temporary;

      # Prefix range for delegation to sub-routers
      prefix6 2001:471:70c8:1:: 2001:471:70c8:1:: /64;
    }
  }
}

Host spc_94_de_80_7c_8b_ee
  {
    hardware ethernet 94:de:80:7c:8b:ee;
    Host-identifier option dhcp6.client-id 00:02:00:00:ab:11:7a:1c:61:eb:ac:c3:f0:f3;
    fixed-address6 2001:471:70c8:1::a;
  } # Interface name: internal_0 (Internal)

ゲート:

gate ~ # ip -6 a l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope Host 
       valid_lft forever preferred_lft forever
2: external_kis_0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::523e:aaff:fe04:8fb0/64 scope link 
       valid_lft forever preferred_lft forever
3: internal_0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:471:70c8:1:96de:80ff:fe6c:66b0/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 86225sec preferred_lft 14225sec
    inet6 2001:471:70c8:1::1/0 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::96de:80ff:fe6c:66b0/64 scope link 
       valid_lft forever preferred_lft forever
7: external_he_0@external_kis_0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 state UNKNOWN qlen 1000
    inet6 2001:471:1f0a:1880::2/0 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::5bd2:623e/64 scope link 
       valid_lft forever preferred_lft forever
gate ~ # ip -6 r l
anycast 2001:471:70c8:1:: dev internal_0 proto kernel metric 0 pref medium
2001:471:70c8:1::/64 dev internal_0 proto ra metric 1024 pref medium
2001:471:70c8::/48 dev internal_0 proto ra metric 1024 pref medium
anycast fe80:: dev external_he_0 proto kernel metric 0 pref medium
anycast fe80:: dev external_kis_0 proto kernel metric 0 pref medium
anycast fe80:: dev internal_0 proto kernel metric 0 pref medium
fe80::/64 dev external_he_0 proto kernel metric 256 pref medium
fe80::/64 dev external_kis_0 proto kernel metric 256 pref medium
fe80::/64 dev internal_0 proto kernel metric 256 pref medium
ff00::/8 dev external_he_0 metric 256 pref medium
ff00::/8 dev internal_0 metric 256 pref medium
default dev external_he_0 proto kernel metric 256 pref medium
default dev internal_0 proto kernel metric 256 pref medium
default via 2001:471:1f0a:1880::1 dev external_he_0 proto static metric 1024 pref medium

クライアント:

spc ~ # ip -6 a l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope Host 
       valid_lft forever preferred_lft forever
2: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 state UNKNOWN qlen 1000
    inet6 fe80::24df:7f80:e175:c322/64 scope link 
       valid_lft forever preferred_lft forever
3: internal_0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:471:70c8:1::a/128 scope global dynamic noprefixroute 
       valid_lft 3592sec preferred_lft 2242sec
    inet6 2001:471:70c8:1:96de:80ff:fe7c:8bee/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 86391sec preferred_lft 14391sec
    inet6 2001:471:70c8:1:7aed:e36d:f089:ad33/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 86391sec preferred_lft 14391sec
    inet6 fe80::b492:58c4:b12d:b2e0/64 scope link 
       valid_lft forever preferred_lft forever
spc ~ # ip -6 r l
2001:471:70c8:1::/64 dev internal_0 proto ra metric 203 pref medium
2001:471:70c8:1::/64 dev internal_0 proto ra metric 1024 pref medium
fe80::/64 dev dummy0 proto kernel metric 256 pref medium
fe80::/64 dev internal_0 proto kernel metric 256 pref medium
ff00::/8 dev dummy0 metric 256 pref medium
ff00::/8 dev internal_0 metric 256 pref medium
default via fe80::96de:80ff:fe6c:66b0 dev internal_0 proto ra metric 203 pref medium
default via fe80::96de:80ff:fe6c:66b0 dev internal_0 proto ra metric 1024 pref medium

そしてここでも面白いです。クライアントにアドレスを1つだけ与えます(2001:471:70c8:1 :: a)。次の2つ(2001:471:70c8:1:96de:80ff:fe7c:8bee、2001:471:70c8:1:7aed:e36d:f089:ad33)はどこから来たのですか?

pd:トンネルおよびゲートインターフェイスの構成

gate ~ # cat /etc/systemd/network/external_he_0.network 
[Match]
Name=external_he_0

[Network]
Address=2001:471:1f0a:1880::2
Gateway=2001:471:1f0a:1880::1

gate ~ # cat /etc/systemd/network/external_he_0.netdev 
[Match]

[NetDev]
Name=external_he_0
Kind=sit
MTUBytes=1480

[Tunnel]
Local=91.200.98.62
Remote=216.66.80.30
TTL=255

gate ~ # cat /etc/systemd/network/internal_0.network  
[Match]
Name=internal_0
MACAddress=94:de:80:6c:66:b0

[Network]
Description=Internal
DHCP=no
Address=10.100.100.1
Address=2001:471:70c8:1::1
Domains=domain-home.local

gate ~ # cat /etc/systemd/network/external_kis_0.network 
[Match]
Name=external_kis_0
MACAddress=50:3e:aa:04:8f:b0

[Network]
Description=External KIS
DHCP=no
Address=91.200.98.62
Gateway=91.200.98.61
Tunnel=external_he_0
1
Sheridan

3:internal_0:
inet6 2001:471:70c8:1 :: 1/0スコープグローバル

トンネルアドレスとサブネットアドレスは/ 64プレフィックスに属していますが、何らかの理由で/ 0として設定しました。間違ったサブネットマスクを使用すると、すでにさまざまな奇妙な問題が発生する可能性がありますが、/ 0は「全世界が私のサブネットである」と解釈されるため、2倍悪い結果になります。無意味な::/0 dev internal_0など、2つの追加のデフォルトルートができあがったことに注目してください。

同じ宛先(::/0、別名「デフォルト」)と同じメトリックに対して2つのルートがあるため、基本的に単一の負荷分散ルートになります。各パケットが「devinternal_0」ネクストホップを選択するか、「devexternal_he_0」ネクストホップを選択するかは偶然です。 (完全に偶然ですが、トンネルデバイスを指しているため、後者は実際に有効で機能します。パケットの一部は通過し、他のパケットは通過しないのはそのためだと思います。)

設定を修正して、両方のインターフェイスのアドレスに正しいプレフィックス長を指定します(/ 64)。

ネットワーク構成ツールに関するバグレポートを送信します。/prefixlenが欠落していると、中止するか、デフォルトでゼロではなく最大長さ(v6の場合は/ 128)になります。

クライアントにアドレスを1つだけ与えます(2001:471:70c8:1 :: a)。次の2つ(2001:471:70c8:1:96de:80ff:fe7c:8bee、2001:471:70c8:1:7aed:e36d:f089:ad33)はどこから来たのですか?

DHCPv6だけがアドレス自動構成メカニズムではありません(実際、一部のシステムではサポートされていません)。それに加えて、AdvAutonomousプレフィックスフラグが設定されたルーターアドバタイズメントがあります。これにより、SLAACが有効になり、これらのアドバタイズメントを受信するクライアントに、プレフィックスからアドレスを自己割り当てできることを示します。

(最初のアドレスはEUI64またはMACアドレスに基づいています。2番目のアドレスはRFC7217ハッシュベースのようです。このクライアントには実際にはtwoルーターアドバタイズメントを処理するプログラムがあります-おそらくカーネル+ dhcpcd、またはkernel + systemd-networkd。そのため、2つのデフォルトルートもあります。)

1
user1686