※設定が無ければ作ればいいと思うの!というディストリビューション用。
※カーネルをIPv6のサポートありでビルドしてある事が前提です。
---
デフォルトルートの設定 -> IPv6で、route add
---
NICにIPv6のアドレスを固定で割り当てるには・・・
(ifconfigで一時的に割り当てるのでなく、起動後も設定を残したい場合。)
- 設定ファイルを作ります。(内容は、NIC用のアドレス/プレフィックス長とゲートウェイのアドレス)
- 設定を読み込むスクリプトを作ります。(今回は、rc.inet1を改造)
設定ファイルを作ります
rc.inet1.confには、IP4の設定しか入っていないと思います。
(rc.inet1の先頭で読み込まれます。)
IPV6用の設定ファイルを、作りましょう。
(rc.inet1.confの中に書いてもよいですが、分けておいたほうが無難です。)
今回は、ファイル名を"rc.inet1_v6.conf"にしてみました。
IPv6用に分かりやすい名前の変数を作りましょう。
必要なのは、NICに割り当てるアドレス/プレフィックス長と、ゲートウェイのアドレスです。
---
例: rc.inet1_v6.conf
※ ファイル名、変数名は独自に決めたものです。
※ rc.inet1.confを流用して作っています。
# eth0
IPADDR_V6[0]="アドレス/プレフィックス長"
# eth1
IPADDR_V6[1]=""
# eth2
IPADDR_V6[2]=""
# Gateway
GATEWAY_V6="ゲートウェイのアドレス"
設定を読み込むスクリプトを作ります
今回は、rc.inet1を改造します。---
例: rc.inet1
※ かなり省略しています。
# 設定を取り込みます。
. /etc/rc.d/rc.inet1.conf
. /etc/rc.d/rc.inet1_v6.conf
# (略)
# ("IPADDR"で検索して、改造したい部分を見つけます) # IPv4 if [ ! "${IPADDR[$i]}" = "" ]; then (略) fi # IPv6 (IPv4用のコードをコピーして改造します) if [ ! "${IPADDR_V6[$i]}" = "" ]; then /sbin/ifconfig ${1} add ${IPADDR_V6[$i]} # ゲートウェイはデバイス毎に設定しないとrouteコマンドが動かないので、 # gateway_up()からコピーして改造します。 if [ ! "$GATEWAY_V6" = "" ]; then /sbin/route -A inet6 add default gw ${GATEWAY_V6} metric 1 dev ${1} fi fi
# ("GATEWAY"で検索して、改造したい部分を見つけます) # gateway_down() からコピーして改造します。 gateway_down_v6() { if /sbin/route -6 -n | grep "^::/0" 1> /dev/null ; then # 各デバイスに設定したデフォルトゲートウェイを消します。(個別に消さなくても大丈夫) /sbin/route -A inet6 del default fi }
試します。
最初に、ネットワークの停止を試します。(書き間違いなどでエラーが発生しないか確認したいので、起動より停止の方が安全。)※ネットワーク経由で作業している時は、接続が切れます。要注意。
./rc.inet1 down
設定値を確認します。
例:
ifconfig
ifconfig -a
route
route -6
※不要なアドレスが設定されていないか確認します。
※NICがダウンしたか確認します。
※不要なルートが設定されていないか確認します。
ネットワークを開始してみます。
./rc.inet1 up
設定値を確認します。
(略)
※IPv6アドレスが正しく設定されたか確認します。
※想定どおりにNICがUPしたか確認します。
※デフォルトルートが正しく設定されたか確認します。
もう一度、ネットワークを停止してみます。
./rc.inet1 down
設定値を確認します。
(略)
※不要なルートが残っていないか確認します。
あとは、お好みで。
---
注意:
ケーブルが接続されていない場合などは、不要なルートができたり、消せなくなったりする場合があります。
(アドレスが見つからない などのエラーメッセージがでる場合も。)
アドレスが重複した場合は、
SIOCSIFADDR: File exists
などが表示されます。
0 件のコメント:
コメントを投稿