web-dev-qa-db-ja.com

radvdが同じホストで実行されている場合、LinuxルーターはIPv6を自動構成できますか?

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を自動構成させる方法はありますか?

2
loganb

簡単な答え: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構成を(おそらくそれぞれのテンプレートから)書き出すスクリプトを記述し、ネットワーク構成よりも前にそのスクリプトを実行するだけです。使用しているディストリビューションがわからないため、ここではそのコードを含めません。これは、それによって異なります。

お役に立てれば。

1
Michael Trausch

よく分かりません。しかし、使用するMACアドレスとプレフィックスが変更されない場合は、自動割り当てから取得されるアドレスでインターフェイスを静的に構成してみませんか?

MACアドレスまたはプレフィックスが定期的に変更される場合は、何をしているのか知りたいです。

0
user22656

あなたのルーターは何を実行していますか? 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))かそのようなものが欲しいと思います。

0
ephemient