Kenichi Maehashi's Blog

脳内コアダンプ

RSS
Category: Linux
IIJmio: IPv6仮想アクセスについて
VAIO type P の WWAN で契約したプロバイダの IIJmio ですが、VPN 経由で v6 ネットワークを利用できる「IPv6 仮想アクセス」が便利です。
回線契約者のみが使用できるサービスですが、中の人に「自分達で使いたかったから、IIJ 以外の回線からでも利用できるようにした」と教えて貰いました :-)

公式サポートは Windows のみですが、実際は PPTP で IPCP 無しの PPP 接続して RA を受けているだけなので、その他の OS でも PPTP クライアント (Linux では PPTP Client など) を入れれば使えちゃいます。v6 アドレスは /64 で降ってくるので、radvd などで広告すれば家中の PC を(まさに)zero-configuration で v6 対応クライアントにできちゃいます。複数セッション張ることもできるみたいですが NAPT の後ろだとルータの対応が必要なので 1 台で受けちゃった方が面倒が少ないでしょう。
Linux (CentOS 5.5) で IPv6 仮想アクセスを利用するには、
  1. ip6tables を設定しておく
  2. (接続開始時)
  3. net.ipv6.conf.all.accept_ra = 1 (たぶんデフォルト)
  4. pptp + pppd で接続
  5. (接続確立後)
  6. net.ipv6.conf.all.accept_ra = 0 (サーバなので固定 IPv6 アドレスにしたいため)
  7. net.ipv6.conf.all.forwarding = 1 (ルーティングのため。というか、これを設定しないと radvd 自体が起動しない)
  8. 降ってきた v6 アドレスで radvd.conf を作成し、radvd 起動
  9. ルーティングテーブル(inet6)を書く
  10. 自分は、ついでにここで nsupdate して名前を引けるようにしておく
  11. (接続解除時)
  12. radvd 終了、ルーティング削除、カーネルパラメータを元に戻す
という感じで、これをシェルスクリプトにしたものを起動スクリプトから起動して、さらに monit で監視しています。ときどき RPM でも作って公開してみようかなと思うのですが、自分向けにチューニングされすぎてるし、エラー処理がちょっと甘いし、なによりニッチすぎるかも。

IPv6 では原則的に「すべてのコンピュータがグローバル IP アドレスを持つ」状態になるので、ファイアウォール(ip6tables)の設定を行う前に radvd を起動するとかなり危険です。私のサーバでは、ルーティング(FORWARD チェイン)のポリシーを「出力はすべて許可、入力は TCP の SYN flag が立っていないもののみ許可」にして運用しています。

 *
Mac OS X で IPv6 仮想アクセスを利用するには、最初に sudo sysctl -w net.inet6.ip6.accept_rtadv=1 を実行しておき、システム環境設定の「ネットワーク」で PPTP 接続を作成するだけで OK です。sysctl の設定値は再起動すると失われてしまうので、再起動後も値を保持したい場合は /etc/sysctl.conf に net.inet6.ip6.accept_rtadv=1 と書いておきます。

 *

Mac OS X クライアントを v6 接続する場合は、sudo sysctl -w net.inet6.ip6.use_tempaddr=1 しておいた方が良いですね。Privacy Extension (RFC3041) が有効になり、接続先に MAC アドレスが知られてしまうことがなくなります。

あと一つ謎なのは、Mac OS X 上の en0 インターフェースは、「IPv6 の構成」を「自動」に設定してあれば net.inet6.ip6.accept_rtadv=0 でも RA を受信できるということ。何か小細工してあるのかな…。


追記(2013/09/08): GitHub にLinux 用の接続スクリプトを一式置いてあります (契約解除してしまったので、現時点で動くかどうかは未確認)。
Category: Linux
Solaris 10 9/10 (x86) を CentOS 5.5 (x86_64) の KVM で動作させるメモ。

普通な方法で仮想マシンを作ろうとすると、ブート時に
SunOS Release 5.10 Version Generic_141445-09 64-bit
Copyright 1983-2009 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
W
と表示された後に再起動されてしまいます。QEMU のエミュレーションしている CPU との相性が悪いようです(GRUB で -v を付けてみた)。

解決策として、CPU を別のものに切り替えます。CentOS 5.5 の RPM に入っている KVM が対応している CPU の一覧を表示させると、
# /usr/libexec/qemu-kvm -cpu "?"
x86 qemu64
x86 qemu32
x86 pentium3
ということなので、pentium3 を指定してみることにします。

しかし libvirt で仮想マシンを管理している場合、ドメイン定義ファイル (XML) に CPU を指定することができません(virt-install でも指定はできません)。仕方が無いので、一度仮想マシンを作成した後 emulator をすげ替えることにします。

virt-install で仮想マシンを作成したら一度 virsh destroy <domain_name> し、続いて virsh edit <domain_name> します。emulator 行を
    <emulator>/usr/libexec/qemu-kvm</emulator>
から
    <emulator>/root/bin/qemu-kvm/qemu-kvm-pentium3</emulator>
に変更して終了します。さらに、/root/bin/qemu-kvm/qemu-kvm-pentium3 というファイルを以下の内容で作成し、実行権限を与えます。
#!/bin/sh

exec /usr/libexec/qemu-kvm -cpu pentium3 "$@"
これで virsh start <domain_name> すれば、クラッシュせずにインストールまで進むことができます。

 *

なお、Panic してしまう場合はメモリ不足が原因かも知れません。512 MB でも動作するはずですが 1 GB 程度あったほうが良いでしょう。
また CentOS では上記手順で OK ですが、RHEL ではどうなのか分かりません(この方法を使用するとサポートは受けられないと思います)。
Category: Apple
iPod nano の新モデル、いいですね。アートワークをバッヂ的に使うアイディア、Apple っぽい。
でも iOS ではないそうなので独自アプリは載せられなそう。残念。
(iPod w/Click Wheel 向けにゲーム作ってた企業にはちょっと災難だった?)

iTunes 10 は賛否両論なアイコンと共に色々変わりましたね。LM 最新ベータの検索画面のチェックボックスは iTunes (9) 風味にしていたのですが iTunes 10 で変わってしまいました。まぁいいか。動作は軽くテストした限り問題なさそうです(Windows 版は手元に 64-bit 環境しか無くて、32-bit ではチェックできていませんが…)。
あ、iKara さんは最新ベータで対応されているようです。
Category: Web
FrontPage - FreeStyleWiki

FSWiki の新バージョン 3.6.4 が出ていました。差分がけっこうあるようですね。今まで自分の書いたプラグイン or パッチが動くのかどうか微妙ですが大方大丈夫でしょう...。
もし動かなくなっていたら: 自分に必要なものも多いので、時間の許す範囲で時間を使い、直せる範囲で直し、公開できる範囲で公開するつもりです。

(追記)
自分用の wiki をアップデートして一通り確認してみたところ、とりあえず大丈夫なようです。