なんとも不可解なIPv6 (2)

現在できていること

  • ホストマシンが,SLAACでIPv6アドレス・ルーティング情報を上流(プロバイダーのお仕着せルーター)から自動的に得ること
  • ホストマシンから外界へIPv6でつなぐこと
  • 外界からホストマシンのhttpd,sendmailなど公開しているサービスに,IPv4とIPv6で接続すること
  • ホストマシンからゲストマシンにdhcpdでIPv4のプライベートアドレスとIPv6のグローバルアドレスを与えること
  • ゲストマシンからIPv4のnatで外界につなぐこと
  • ホストマシンとゲストマシンの間のIPv6による双方向接続

できていないこと

  • ゲストマシンから外界にIPv6でつなぐこと

症状としては,例えばゲストマシンからSo-netのお仕着せルーターのIPv6アドレスをtraceroute6すると,ホストのvirbr0まで届くのですが,その先に行きません.ホストがブリッジ機能を果たしてくれません.

たぶん,引っかかっているのは,解ってしまえばなんでもないようなことだと思うのですが,この二日間悩んでいます.

KDDIのお仕着せルーターで,サーバー公開設定している.

なんとも不可解なIPv6

なんとも不可解

IPv6のルーティングについては,なんとも不可解である.以下の話は,参考リンクに挙げた,Andyさんの,On Going Struggleの記事による(一部自分で確認して情報を追加).

Stateless Address Auto-Configuration (SLAAC)

Linux Kernelが,ルーターモードでないと判断したら,SLAACが効いて,IPアドレス(IPv6のアドレス.以後も断りなければIPv6限定の話)の取得とルーティングを行うが,ルーターモードになると,SLAACは無効になって,各インターフェースのIPアドレスとルートを手動で設定しなおす必要が出てくる.

では,どのようにルーターモードであるか判断するかというと,/proc/sys/net/ipv6/conf/all/forwardingが1の時,つまり,

echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

が実行されるとルーターモードになる.このコマンドを実行したら,各インターフェースのIPアドレスとルートを手動で設定しなければならない.

ルーターでもSLAAC

ただし,Linux Kernel 2.6.37以降では,ルーターモードでもSLAACを活かすことができるということである.そのためには,

echo 2 > /proc/sys/net/ipv6/conf/<IF name>/accept_ra

とするということである.本来はバイナリーなのに”2″を書き込む.

<IF name>は”all”では効果がなく,それぞれのインターフェースごとに行う必要があるようだ.

参考ページ

Andyさんの,”The Ongoing Struggle”から,

Ubuntu 〜compizが重い (2)〜

どうも,KVMのみで重いようです.

なぜ,KVMでUbuntuを動かす必要があるかといえば,さすがにSCIM + Anthyによる日本語の入力に疲れたからです^^; Mozcならば,まとまった日本語を打つのに十分耐えます.かといって,SlackwareにMozcをインストールするのはなかなかハードルが高いです

せっかくKVMが動いているんだから,その中で日本語のWS環境を整えれば良いわけで,Ubuntuをインストールしてみました.インストールも簡単だし.

しかし,どうもUbuntuとKVMの相性(たぶんグラフィック)が良くなくて,重くて実用になりません.VMWareではさくさく動きます.

いっぽう,Gentooは,Kernelを自分でbuildできる関係で,グラフィックはVirtioを選択することができて,KVMでもさくさく動きます.そもとも,compiz使ってないし.

その後の調査で^^; どうも私にはUbuntuのUIが使いにくくてしょうがないことがわかりました.長年KDEを使ってきたことによる,単なる慣れの問題なのかもしれませんが,compizが重いという問題もあるので敢えてUbuntuを使う理由もないかなぁと思います

ということで,日本語環境は,Gentooに決定ということにしました.Slackwareがホストで,日本語WSであるguest OSがGentooとは,なかなかオタッキーな組み合わせではないかと思います.

以上すべて当社調べです

SlackwareにKVMをインストールするよりは楽な気もしないでもないですが,やる気が出ません^^;
Ubuntuは,Virtioをグラフィックに選ぶとインストールDVDが機能してくれません
Ubuntuには,インストールが簡単で,その後のパッケージ管理も楽という大きなメリットはありますが.
いちいち「当社調べ」って書かなくても,当サイトの情報はいつも当社調べですので,苦情などを他のサイトに書かないように.

Virt-manager 1.3.2 is not compatible to GTK+-3.18.x

悩みました.適当にあちこちupdate, upgradeしていたら,いつの間にかvirt-managerでコンソールが表示されなくなりました.–debugオプションを付けて立ち上げて,コンソールを開くと,

TypeError: argument allocation: Expected Gdk.Rectangle, but got gi.repository.cairo.RectangleInt

というエラーが連続して出ます.上記をネット検索して,次から次へと見て,それらしいのを試してみたら,ようやく解りました.

GTK+3の3.18.xではだめで,3.16.xにすればオーケーです.GTKのdowngradeのあとで,spice-gtkのrebuildが必要です.

以上,あくまで当社調べです.