* Linux で IPv6を使う [#m214ae79]
 
 ** IPv6でマルチホーム [#zac78845]
 
 tunnelを使った方法ではありません。あしからず。
 
 光プレミアムで使うTIPSです。vlan構成になっていますが、物理NICで別れている場合も同じ方法が使えます。~
 ご自宅にどうぞ。幸せになれるに違い有りません:P
 
 別途、IPv6ルータが有り、インターネットへの到達性があるネットワークと、フレッツ光プレミアム等に接続され、インターネットとはルーティングされていないネットワークを同時に接続した場合、IPv6のマルチホーム環境となる。同時に接続した場合、ルーティングテーブルを書き、両方のネットワークと上手に共存する方法を紹介する。
 
 
 
 
 *** 環境・構成 [#z3e382dc]
 
   The Internet   Flets
         |           |
         |v6 default |  CTU(hikariP) 2001:a000::/21
         |           |               2001:0d70::/30
    +----+-----------+-----+
    |(eth0.20)   (eth0.11) |
    | Linux 2.6.x (debian) |
    +----------------------+
 
 
 |dev|addr|備考|h
 |eth0.20|2001:200:564::80:ffff|native -> インターネット|
 |eth0.11|2001:a092:c0c0::80:ffff|native -> 地域IP網。closed|
 
 ※NTTのアドレスブロック
 
  西: 2001:A000::/21
       2001:0D70::/30
  東: 2001:0C90::/32
 
 
 
 
 
 
 *** ルータのアドレスを調べる [#hdb202f4]
 
 デフォルトではRAを受け取る設定になっている為、
 
  # netstat -rn -net6
 
 でルーティング情報を調べることができる。
 最後の方に存在している
 
  ::/0                     fe80::200:87ff:fe8d:e678         UGDA  1024   106       0 eth0.11
  ::/0                     fe80::21c:c4ff:fe5f:3802         UGDA  1024    1        0 eth0.20
 
 値を見ればよい
 
 
 
 
 *** ルータにpingが届くか確認 [#y2fdc491]
 
  # ping6 -I eth0.11 fe80::200:87ff:fe8d:e678
  # ping6 -I eth0.20 fe80::21c:c4ff:fe5f:3802
 
 
 
 *** 環境設定 [#l7105966]
 
 
 raを受け取らない
 
  # echo 0 > /proc/sys/net/ipv6/conf/default/accept_ra
 
 redirectを許可
 redirectを無効
 
  # echo 1 > /proc/sys/net/ipv6/conf/default/accept_redirects
  # echo 0 > /proc/sys/net/ipv6/conf/default/accept_redirects
 
 ipv6 forwardingを無効(必要な場合のみ有効にしてください。今回の用途では不要)
 
  # echo 0 > /proc/sys/net/ipv6/conf/default/forwarding
 
 ※ 勿論、sysctlコマンドでも設定可能です
 
 
 動作に問題がないことを確認した後、sysctl.confへ設定を書きます。
 そのまま、sysctl.confへ追記した場合は、
 
  Setting kernel variables...error: "net.ipv6.conf.default.forwarding" is an unknown key
 
 と怒られてしまいますので、'''''/etc/modules''''' に、'''ipv6'''を書きます。
 これは、kernelが起動したあと、/etc/network/interfaces の時にmoduleがロードされますが、今回sysctlで変更する場合には、ipv6 moduleがロードされていないためにこの問題が発生します。その為、最初にmoduleを読み込ませる必要があります。
 
  echo "ipv6" >> /etc/modules
 
  /etc/sysctl.conf
  -----
  # Uncomment the next line to enable packet forwarding for IPv6
  net.ipv6.conf.default.forwarding=0
  net.ipv6.conf.default.accept_ra=0
  net.ipv6.conf.default.accept_redirects=1
  net.ipv6.conf.default.accept_redirects=0
 
 
 吉藤さん、情報をありがとうございます。
 
 
 *** アドレスを付ける [#if0fa5e0]
 
  # ip -6 addr add 2001:a092:c0c0::80:ffff/64 dev eth0.11
  # ip -6 addr add 2001:200:564::80:ffff/64 dev eth0.20
 
  # ifconfig eth0.20 add 2001:200:564::80:ffff/64 でも、同様のことができる
 
 
 
 *** ルーティングテーブルを書く [#qab51fe3]
 
  # route -A inet6 add 2001:a000::/21 gw fe80::200:87ff:fe8d:e678 dev eth0.11
  # route -A inet6 add 2001:0d70::/30 gw fe80::200:87ff:fe8d:e678 dev eth0.11
  # route -A inet6 add 2001:0C90::/32 gw fe80::200:87ff:fe8d:e678 dev eth0.11
  # route -A inet6 add default gw fe80::21c:c4ff:fe5f:3802 dev eth0.20
 
 
 
 
 
 *** 動作確認 [#qb48099b]
 
 インターネットへの到達性があるか確認
 
  # traceroute6 www.nic.ad.jp
 
 地域IP網へ到達性があるか確認
 
  # traceroute6 ctu.fletsnet.com
 
 
 *** 起動スクリプトに書く [#u5048188]
 
 もっときれいな方法が有るかもしれませんが、今回は次のように設定。~
 
  vi /etc/network/interface
 
  auto eth0.11 eth0.20 
  iface eth0.11 inet6 static
 	address 2001:a092:c0c0::80:ffff
 	netmask 64
 	up route -A inet6 add 2001:a000::/21 gw fe80::200:87ff:fe8d:e678 dev eth0.11
 	up route -A inet6 add 2001:0d70::/30 gw fe80::200:87ff:fe8d:e678 dev eth0.11
  	up route -A inet6 add 2001:0C90::/32 gw fe80::200:87ff:fe8d:e678 dev eth0.11
 
  iface eth0.20 inet6 static
 	address 2001:200:564::80:fff
 	netmask 64
 	up route -A inet6 add default gw fe80::21c:c4ff:fe5f:3802 dev eth0.20
 
 ※ RedhatLinuxやCentOS、Fedoraは、書き方わかりません。強引に、コマンド類をrc.localに書けば、起動時は動くでしょう(知っている人追記募集)
 
  <ぼそ>~
 '' &color(darkblue){っていうか、IPv6はnetmaskではなく、prefixrenなんだけどな…}; ''~
  </ぼそ>
 
 
 
 
 
 ** 関連記事 [#b9d3696f]
 
 - FreeBSD - [[フレッツv6サイトとIPv6接続を共存する@カール・ミッチーのなんでも日記:http://karl0204.at.webry.info/200804/article_44.html]]
 - Windows XP - [[光プレミアムにおけるIPv6問題への手軽な対策:http://www25.big.jp/~jam/blog/2006/02/11/120/]]
 - [[Default Address Selection Standardization:http://www.nttv6.net/dass/]]
 
 
TOPページへ戻る   新しいページの作成新しい下位ページの作成そのページを引用して新規作成ページ名の変更ページへのリンク元を表示   サイトのページ一覧サイト内単語検索編集したページの履歴削除したページの履歴   別ウィンドウでマニュアルページへ