6to4トンネルを実行し、radvdを使用してローカルサブネットでIPv6プレフィックスをブロードキャストするLinuxゲートウェイルーターがあります。 Radvdは、6to4インターフェイスからネットワークプレフィックスを自動的に取得するように構成できますが、ローカルネットワークインターフェイス(eth0)に有効なアドレスを自動的に割り当てる方法が見つかりません。
たとえば、6to4インターフェイスが2002:4185:9dd4::1/16
に自動構成されている場合、eth0には2002:4185:9dd4:dead:<whatever>/64
のアドレスが必要です(「dead」はradvd.confで構成したローカルサブネットです)。ローカルマシンでradvdを実行している状態で、Linuxにeth0を自動構成させる方法はありますか?
簡単な答え:radvd
を実行しているシステムで、radvd
の構成に使用するのと同じ方法を使用してインターフェースを構成する必要があります。 radvd.conf
が静的に生成される場合、ローカルイーサネットインターフェイスのIPv6アドレスも静的に生成される必要があります。しかし、すべてが失われるわけではありません。詳細については、以下をお読みください。
できることは、小さなシェルスクリプトを使用して両方を構成することです。動的に割り当てられたグローバルIPv4アドレスおよびがあるとしましょう。これは、インターフェイス上の唯一のIPv4アドレスです。次のシェルスクリプトスニペットを使用して、IPv6/48プレフィックスを取得できます(注: [〜#〜] arin [〜#〜] から適合したコード:
IPV4=$(ip addr ls eth0 | grep 'inet ' | awk '{ print $2 }' | cut -f1 -d/)
PARTS=`echo $IPV4 | tr . ' '`
PREFIX48=`printf "2002:%02x%02x:%02x%02x" $PARTS`
これで、/ 48プレフィックスができました。/64プレフィックスを取得するのは、$PREFIX48
変数に追加するだけなので、非常に簡単です。
これで、あとはネットワークインターフェイス構成とradvd構成を(おそらくそれぞれのテンプレートから)書き出すスクリプトを記述し、ネットワーク構成よりも前にそのスクリプトを実行するだけです。使用しているディストリビューションがわからないため、ここではそのコードを含めません。これは、それによって異なります。
お役に立てれば。
よく分かりません。しかし、使用するMACアドレスとプレフィックスが変更されない場合は、自動割り当てから取得されるアドレスでインターフェイスを静的に構成してみませんか?
MACアドレスまたはプレフィックスが定期的に変更される場合は、何をしているのか知りたいです。
あなたのルーターは何を実行していますか? Gentooのような本格的なディストリビューションの場合、OpenRCには_/etc/conf.d/net:6to4_suffix
_設定があり、 #357929 が提案された方法で修正された場合、Debianにも_/etc/network/interfaces:6to4subnet
_設定があります。 。
それ以外の場合は、アドレスを手動で設定するだけです。私のルーターのスクリプトには、次のようなものが含まれています。
IDEV = br0 ODEV = vlan2 WANIP =ʻip -4 addr show dev "$ ODEV" | awk '/ inet/{print $ 2}' | cut -d/-f1` [。 .99.1 ip tunnel add 6to4 mode sit remote any local "$ IP" ttl 255 dev "$ ODEV" ip link set 6to4 up ip addr add "$ V6PREFIX :: 1/$ V6NET" dev 6to4 ip addr add "$ V6PREFIX:1 :: 1/$((V6NET + 48))" dev "$ IDEV" ip route ":: $ GW"開発6to4メトリック1 を介して2000 ::/3を追加します。
$V6PREFIX:dead::1/$((V6NET+48))
かそのようなものが欲しいと思います。