2002年12月28日 土曜日
IPv6 over IPv4 Tunnel (2)
昨日はローカルからしかping6が帰ってこないと言うところで挫折という感じであったが、今日は状況の切り分けを行うために、FreeBSDを別マシンにインストールし、検証してみることとした。(IPv6に関してはBSD系OSの方がこなれているし、リモート側で設定につきあっていただいているゆうじさんが分かりやすいと言う話もあるので…) 今日やった作業は以下の通り。
別のPCにFreeBSDをインストール。
いかんせんPentiumなマシンにネットワークインストールなので、これが一番かかった。
ネットワーク関連の設定を行う
僕がFreeBSDを使っていた頃は、Stand Aloneで使っていたのでネットワーク設定など分からなかったが、意外に簡単。Linuxの方がようわからんと言う話もある。
/etc/ppp/ppp.confの設定
User Mode PPPでいいのかな。設定の書き足しである。/etc/ppp/ppp.confに
vpn:allow user rootset timeout 0
set log phase chat connect lcp ipcp command
set device !/etc/ppp/vpnssh
set dial
set login
set ifaddr 10.100.1.2 10.100.1.1 #←IPアドレスは適当set server /var/tmp/loop.2 "" 0177
の設定を書き足す。
ssh関連の設定
一昨日と同様にssh関連の設定を行う。
pppを起動
こんな感じ。
# ppp vpnppp> dial
プロンプトがpppからPPPに変われば接続完了。
トンネルを掘る
FreeBSDではifconfigを使って、こんな感じにする。
# ifconfig gif1 create tunnel 10.100.1.1 10.100.1.2
ping6を打ってみる
とここまでで、昨日の状況を再現した。(pingはリモートからは帰ってこない。) ローカルのifconfigは以下に示すとおりで、見た目昨日の状態と区別は付かない。
# ifconfig -a
faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384inet6 ::1 prefixlen 128inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2inet 127.0.0.1 netmask 0xff000000
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
ed1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500inet6 fe80::290:feff:fe0e:2cf9%ed1 prefixlen 64 scopeid 0x5inet 192.168.0.30 netmask 0xffffff00 broadcast 192.168.0.255ether 00:90:fe:0e:2c:f9media: Ethernet autoselect (10baseT/UTP)status: active
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500inet 10.100.1.2 –> 10.100.1.1 netmask 0xffffffffOpened by PID 128
gif1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280tunnel inet 10.100.1.2 –> 10.100.1.1inet6 fe80::290:feff:fe0e:2cf9%gif1 prefixlen 64 scopeid 0x7
結局解決!
で、何が問題なんだろう?と言うところで行き詰まっていたが、ゆうじさんがリモートからのトンネルを作成し直したら、さくっとping6がトンネルの向こう側に通るようになった。やったぁ!と言うことで、Linuxな環境に戻して同様の操作をすると、同様にpingが通るようになった。
結論は推定の領域だが、GlobalなIPv4アドレスが割りあたっているところからのIPv6 Over IPv4 Tunnelの場合は tunnel を張りっぱなしにしておいて問題が無かったみたいだが、VPNのようにあとから発生するコネクションの場合だとうまくないみたいです。
と言うことで、PPPの待ち受け側でppp.linkupを用意して、VPN接続時に自動的にtunnelを作り直す事が可能ならそうしておいたほうが良いと言うことになった。ゆうじさんの話だと、 iij-ppp の確か ppp.linkup を使えばそんなことができた気はするとのこと。ただiij-pppもモデムの頃以来使ってないので、いろいろ忘れている(そりゃそうだ)ということで、manを見て調べてみますと言う話でした。僕も調べてみようっと
と言うことで、明日はIPv6の静的経路設定に続くと言う訳だ。
2002年12月27日 金曜日
IPv6 over IPv4 Tunnel
昨日の作業に引き続いて、VPN over SSHを張った状態で、IPv6 over IPv4トンネルの作成に取りかかる。手順はこんな感じ。
こないだの資料より、
トンネルの作成
# iptunnel add sit1 mode sit remote 10.100.1.1 local 10.100.1.2
# ifconfig sit1 up
とした。2行目は要るのかな? ただこれを実行しないとifconfigでsit1が表示されません。
確認
pingをとばしてみよう。
# ping6 -I sit1 ff02::1
PING ff02::1(ff02::1) from fe80::c0a8:26%sit1 sit1: 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.915 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=1.26 ms
64 bytes from ::1: icmp_seq=3 ttl=64 time=2.56 ms
64 bytes from ::1: icmp_seq=4 ttl=64 time=1.26 ms
64 bytes from ::1: icmp_seq=5 ttl=64 time=1.25 ms
— ff02::1 ping statistics —
5 packets transmitted, 5 received, 0% loss, time 4035ms
rtt min/avg/max/mdev = 0.915/1.452/2.560/0.570 ms
がーん、::1(localhost)からしか帰ってこない。踊る亀さんまで道は遠い…
2002年12月26日 木曜日
VPN over SSH
僕の家でのネット接続はNATなLANに対してなので、普通のクライアントだけという使い方では問題ないが、僕はコンテンツを見るだけの人ではないので、グローバルIPアドレス引けないところにいるのは、なんだかいただけないのである。そこでグローバルIPアドレスが引けるところ(ymzk.org)までVPNを張って、そこからIPv6な世界に飛び込もうと言う算段なのである。今回はお手軽にVPNを引けると言う話の、VPN over SSHの方法を家属MLでゆうじさんに習ったので、Linux(Debian)という環境に特化して、書いてみることにする。おそらくどの環境でも似た話だと思うが…
今回は、pppdでつないでみることにする。(というか、それで十分だと思う。)
なお「待ち受け側」まで込みのメモは、http://www.gentei.org/~yuuji/rec/pc/memo/2002/02/01/を参照のこと。
上記のメモだと SSH-1 で設定を行っているが、いまやどのOSのOpenSSHも SSH-2がデフォルトなんで、いまはSSH-2を使うこととする。鍵を作って公開鍵をVPNの接続先のサーバ管理者に送付する。公開鍵はこんな感じにして作る。(pppdはrootで実行なので、鍵は/root/.ssh 以下に作成することとする。) パスフレーズは ssh-agentを使えばちゃんと設定しても行ける気がするけども。今回はパスフレーズは空でためした。どうせ公開鍵を送って、秘密鍵を持っていないと接続できないんだし。
# ssh-keygen -t dsa
鍵の名前はわかりやすい名前にするといいかも。ホスト hogehogeにつなぐなら 秘密鍵:/root/.ssh/id_dsa-hogehoge, 公開鍵:/root/.ssh/id_dsa-hogehoge.pub 等とすればいいんじゃなかろうか。対話的に鍵のファイル名を聞いてくるので、まぁ適当に答える。
うまくsshで接続できるか確認。(/root/.ssh/known_hostsに接続先を登録するという意味合いもある。)
# ssh -2 -i /root/.ssh/id_dsa-hogehoge -l vpn hogehoge.foo.bar w
これで、すんなり w コマンドの出力が得られたら、sshの設定は完了。
次にpppdで処理するスクリプトを作成。/etc/ppp/vpnssh-hogehoge と言うシェルスクリプトを作って、実行属性を付けておく。
#!/bin/sh
exec ssh -2 -i 鍵ファイル -l vpn hogehoge.foo.bar /usr/sbin/ppp -direct loop-in
# pppd pty /etc/ppp/vpnssh-hogehoge noauth Local_IP_Address:Local_IP_Address
ここでのIPアドレスは適当で良いので、それぞれにルールを決めて割り当てる。ここで_noauth_を忘れないこと! 認証できないなんて言うエラーに悩まされることとなる。気に入らなかったら、/etc/ppp/option でauthと設定しているところをコメントアウトしてnoauthとすればいいはず。(これにえらいはまった。)
給料日
今日は給料日。年末調整で所得税が負の値になっているのに、この手取りはいったい…
つじあやの / 「恋する眼鏡」
昨日帰りにFMを聞いていて、声と何とも知れない脱力感が気に入ったので、早速購入。はじめて買ったCCCD。買うことはないと思っていたが、あっさり買ってしまいましたねぇCCCD。で、どっかで聞いたことがある声だと思っていたら、収録曲の「風になる」は映画「猫の恩返し」の主題歌だったのですか…
一応気になって、CD2WAV32 for Windowsなんかでリッピングしてみたんですが、問題なくリッピングできちゃうのは気のせいですか。
2002年12月25日 水曜日
PM-900ヘッドクリーニング Tips
どんなにクリーニングをしてもプリント結果に筋が残る状況で、何度かクリーニングを行って目詰まり確認の印刷を行ってもOKな状態にならない。さすがにこういう状況に我慢できなくなったので、EPSONインフォメーション・センタに電話して、ヘッド交換の見積もりをとることとした。症状から見て10000円程度との話を聞く。
ただその前にクリーニングをちゃんと行ってみてくださいと言うことで、技を教えていただいた。以下に忘れぬようにメモ。同じ症状の人は_自己責任_でやってくださいな。
- まずインクを外す。(PM-900Cは途中で外してもOKだそうだ。)
- もう一回付ける。
- このとき電源投入時・ヘッドクリーニング時とはシーケンスが異なる、強めのクリーニングが入る。
- 何度かヘッドクリーニングを行う。
- 目詰まり確認印刷を行う。
- テスト印刷を行う。
上記の対応で、筋状のあとは目立たなくなった。まぁそのうちにヘッド交換に出そうと思う。印刷して気が付いたのだが、「オートファイン!4」を使用するとちょっと赤みが強いような気がする。普段sRGBで画像編集しているし、画面の色空間をsRGBにしているので、プリンタの色空間もsRGBにしてみた。結果としては直感的に好ましい色合いになっている気がする。もっともカラーチャートで色を合わせ込んでいく必要があると思う。これはCRTを買い直したあとでも良いかと思ったりする。
ちなみにインクは_生もの_なので、賞味期限に注意。(その前に使いきろと言うことか…)
2002年12月24日 火曜日
のどが痛い…
やっぱり風邪かねぇ。と思って思い出すと、去年の今頃は、風邪で飲まず食わずだったなぁ。今年はのどが痛くて若干頭痛。うーむ、インフエンザなのかぁ。
カーネルの再構築
昨日の話の続き。昨日構築したカーネルはCONFIG_INET_ECNを削除し忘れてました。やっぱり同じ問題が発生。目の前がまっくらになりましたよ。と言うことで、再構築。インストールしたあとに新しいUSAGIのスナップショットがでていて、ちょっと寂しい。
須藤 功平 / Ruby de XML
Ruby関連の本は、タイトルのセンスが安っぽくて疑問を感じるところなのだが、中身に興味があって購入した。REXMLに興味があったのだが、ここまでDOMとかSAXを使わないのって良いのだろうかと思わなくもない。まぁおもしろいから良いんだけども。
SORPまで説明しているから読む価値はあるんだろうなぁ。