なんとも不可解な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”から,

Zope / Ploneは今さらやめとくか

そういう訳で,古〜いZope/Ploneベースのブログが動き出し,眺めてみると,逆に新鮮な感じもあり^^; ソフトを刷新したサーバーに最新版をインストールして見ようかなぁなんて気になりました.

しかし,情報収集してやめとくことにしました.特に参考になったのが,にがうりくんのページです.

この記事は,2013年7月に書かれてますから,2010〜2013年くらいにかけてPloneを使われていたと言うことになります.私の場合Ploneを使ったと言えるのは,2005〜2013年頃ですが,COREBlog(2)の関係でupgradeはしませんでしたから,実質的には,にがうりくんが,使い始めた頃には,すっかり放置状態になっていたと思います.

始めた時期が5年違うのですが,Ploneに感じたデメリットは,共感するところが多いです.

ということで,Zope/Plone再導入計画は,白紙,というか,永遠になしということにしました^^;

Zope移植はあきらめ

ZopeはPythonで動きますが,それぞれのZopeのバージョンが,Pythonのバージョンを細かく指定していて,パッチレベルが合わなくても警告が出ます.マイナーバージョンが違ったら動いてくれません.

旧サーバーで動いていたZopeは,Python 2.3.6で動いていたようです.そこで,Python 2.3.6のbuildを試みましたが,GCC 5.3 x86_64版では全く話しにならないようです.

私としてもZopeの中身は,時々参照する程度でいいので,残してある旧サーバーのディスクイメージをKVMで動かして必要な時に見る,ということにします.

MariaDBメモ

LAN内のクライアントからつながらない場合,まず,mysqldのポートを調べてみる.ホストマシンからmysqlにログインして,

show variables like 'port';

をするか,phpMyAdminで,Variablesタブを押して,portが”3306″ならば,ネット越しに接続できるはず.”0″ならば,起動オプションに–skip-networkingが着いている可能性が高いので,起動スクリプトを確認する.

ネット検索すると,my.cnf (my.ini)にポートの設定を記述せよという,少なくともSlackware(64) 14.2には的外れな情報が多いのでメモっときます.