LAN内からの ping6 がどうもうまくいかないのでいろいろ模索しているのだけれど、たぶん、IPv6関係の default gateway が上手く設定されていないような雰囲気。
気になるのが、2001:で始まる IPv6アドレスが LAN内の機械にいつのまにか振られていること。6to4で割り当てているのは、2002:なので、いったい何処から来ているのだろう。
ネットで調べていると、FletsのNGN網から? という記事に出くわした。
ping6も 2001:c90:1429... から communication prohibited で返ってくるし、これってもしかしたらFletsに向っている?
---
default gateway の件は、 /etc/rtadvd.conf に、fxp0:raflags=h: と記述することで解決しそう。ついでに icmp6 の 128,129,135,136(echoreq,echoreply,neighbrsol,neighbradv)を通過するように設定。
ping6 のエラーメッセージも、よく見かける Request timed out になった。もう少し通過させないといけないものが残っているらしい。
---
[追記:2010/05/01] icmp6 の 133,134(routersol,routeradv)を追加すればよいらしい。
---
[追記:2010/05/10] NGNの件で少し気になったので、PR-200NEを使っているLANを調べてみたら、こちらでは、2001:c90: で始まるアドレスは広告されていなかった。RT-200KIだけの問題なのか、それともバージョンによって違うのか...
2010年4月30日金曜日
2010年4月28日水曜日
さて IPv6 ( その5 )
stfを使った 6to4 が楽ではあるのだけれど、いろいろ調べてみると、どうもセキュリティ的には問題の多い方法のようで、公開サーバーで使うのはどうも良くないらしい。
道理で GENERIC kernelのオプションに含まれていない訳だ。そうすると、やはり、DTCPで何とかするか、VPSサーバーが IPv6リーチャブルなのを利用するかということになるのだろうか。
FreeBSD同志なら、gifを使って IPv4をトンネルするのが普通のやり方なのだろうが、相手が linux のときに gifに相当するものは何なのだろう。( もしあったとしても、VPSが故に、カーネルデバイスは使えないという可能性もあるが。)
道理で GENERIC kernelのオプションに含まれていない訳だ。そうすると、やはり、DTCPで何とかするか、VPSサーバーが IPv6リーチャブルなのを利用するかということになるのだろうか。
FreeBSD同志なら、gifを使って IPv4をトンネルするのが普通のやり方なのだろうが、相手が linux のときに gifに相当するものは何なのだろう。( もしあったとしても、VPSが故に、カーネルデバイスは使えないという可能性もあるが。)
NTTのGPL違反 ( その3 )
ソースCDが届いたので、atherosのドライバ関連を調べてみる。
ath-wlan-5.3.0.13.tar.gzがファイル名からして、それっぽいのでそれから調べてみるが、こちらには、ath_pci.o のソースらしきものは見つからず。
もしやと思い、linuxのソースを調べてみると、drivers/vr/madwifi/madwifi/ath/ の下にあった。
でも、おかしい。ソースコードには、それらしき場所は、
{ 0x168c, 0x0013, PCI_ANY_ID, PCI_ANY_ID },
{ 0xa727, 0x0013, PCI_ANY_ID, PCI_ANY_ID }, /* 3com */
{ 0x10b7, 0x0013, PCI_ANY_ID, PCI_ANY_ID }, /* 3com 3CRDAG675 */
{ 0x168c, 0x1014, PCI_ANY_ID, PCI_ANY_ID }, /* IBM minipci 5212 */
{ 0x168c, 0x101a, PCI_ANY_ID, PCI_ANY_ID }, /* some Griffin-Lite */
{ 0x168c, 0x0015, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x0016, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x0017, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x0018, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x0019, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x001a, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x001b, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x001c, PCI_ANY_ID, PCI_ANY_ID }, /* PCI Express 5424 */
{ 0x168c, 0x001d, PCI_ANY_ID, PCI_ANY_ID }, /* PCI Express ??? */
{ 0 }
と、対応のカードのリストが全部並んでいるのに、ath_pci.o の方には、
{ 0x168c, 0x001b, PCI_ANY_ID, PCI_ANY_ID },
に対応する行しかみつかない。
この配列の直前部分の 50byte分くらいは 00 で埋まっている。
ソースコードは『修正後』のもののはずなのに、ソースは修正した痕跡がない。
objectに直接 binary patch を当てたのだろうか?
object の方だと、
{ 0x168c, 0x001b }
{ 0x1021, 0x1010 }
{ 0x168c, 0x001b }
{ 0x168c, 0x1062 }
{ 0 }
もし推測が当っているなら、00で埋まっている部分を元に戻せばいいだけなのだけれど。
---
OKIが納入したものを、NTTが修正したという可能性もあるなぁ。
[互換カードが使える/使えないは、OKIにとってはどうでもいいことだし]
---
[追記]気になるのは、ver 1.06.0001の atheros のドライバは、ar5drv.o で、このファイル名の5.3.0.13にも符号しているのだけれど、6.30.0018 のドライバは ath_pci.o というまったく別の系列の名前が付いていること。ドライバの大きさも、一方は1MB近くあるし、一方は100KB強しかないし、てっきり 1.x 系と 6.x 系は違う系列のソースかと思っていたのだけれど、担当者は 6.30のものだとはっきり言っているんだな。もしかしたら、いろいろなバージョンのソースが混ざっているのかもしれない。
busyboxが二つ異なるバージョンのソースがあるのも不自然だし。( wgetは、実際に wgetとwget19の両方があるのだけれど。)
ath-wlan-5.3.0.13.tar.gzがファイル名からして、それっぽいのでそれから調べてみるが、こちらには、ath_pci.o のソースらしきものは見つからず。
もしやと思い、linuxのソースを調べてみると、drivers/vr/madwifi/madwifi/ath/ の下にあった。
でも、おかしい。ソースコードには、それらしき場所は、
{ 0x168c, 0x0013, PCI_ANY_ID, PCI_ANY_ID },
{ 0xa727, 0x0013, PCI_ANY_ID, PCI_ANY_ID }, /* 3com */
{ 0x10b7, 0x0013, PCI_ANY_ID, PCI_ANY_ID }, /* 3com 3CRDAG675 */
{ 0x168c, 0x1014, PCI_ANY_ID, PCI_ANY_ID }, /* IBM minipci 5212 */
{ 0x168c, 0x101a, PCI_ANY_ID, PCI_ANY_ID }, /* some Griffin-Lite */
{ 0x168c, 0x0015, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x0016, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x0017, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x0018, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x0019, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x001a, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x001b, PCI_ANY_ID, PCI_ANY_ID },
{ 0x168c, 0x001c, PCI_ANY_ID, PCI_ANY_ID }, /* PCI Express 5424 */
{ 0x168c, 0x001d, PCI_ANY_ID, PCI_ANY_ID }, /* PCI Express ??? */
{ 0 }
と、対応のカードのリストが全部並んでいるのに、ath_pci.o の方には、
{ 0x168c, 0x001b, PCI_ANY_ID, PCI_ANY_ID },
に対応する行しかみつかない。
この配列の直前部分の 50byte分くらいは 00 で埋まっている。
ソースコードは『修正後』のもののはずなのに、ソースは修正した痕跡がない。
objectに直接 binary patch を当てたのだろうか?
object の方だと、
{ 0x168c, 0x001b }
{ 0x1021, 0x1010 }
{ 0x168c, 0x001b }
{ 0x168c, 0x1062 }
{ 0 }
もし推測が当っているなら、00で埋まっている部分を元に戻せばいいだけなのだけれど。
---
OKIが納入したものを、NTTが修正したという可能性もあるなぁ。
[互換カードが使える/使えないは、OKIにとってはどうでもいいことだし]
---
[追記]気になるのは、ver 1.06.0001の atheros のドライバは、ar5drv.o で、このファイル名の5.3.0.13にも符号しているのだけれど、6.30.0018 のドライバは ath_pci.o というまったく別の系列の名前が付いていること。ドライバの大きさも、一方は1MB近くあるし、一方は100KB強しかないし、てっきり 1.x 系と 6.x 系は違う系列のソースかと思っていたのだけれど、担当者は 6.30のものだとはっきり言っているんだな。もしかしたら、いろいろなバージョンのソースが混ざっているのかもしれない。
busyboxが二つ異なるバージョンのソースがあるのも不自然だし。( wgetは、実際に wgetとwget19の両方があるのだけれど。)
2010年4月27日火曜日
さて IPv6 ( その4 )
設定がまだ中途半端なせいだと思うけれど、LAN内の名前解決?がやたら遅くなった。
LAN内にIPv6アドレスを振っているのに、ルーターですべて通信を遮断しているせいだろうと思う。名前解決に軒並み20秒かかっているので、たぶん1回目に失敗して2回目で成功というパターンなのだと思う。
IPv4 Onlyなサイトでは特に問題はない。
---
[追記] IPv6 のアドレスでアクセスしようとして失敗して、IPv4 のアドレスで接続しなおしているのかな。
LAN内にIPv6アドレスを振っているのに、ルーターですべて通信を遮断しているせいだろうと思う。名前解決に軒並み20秒かかっているので、たぶん1回目に失敗して2回目で成功というパターンなのだと思う。
IPv4 Onlyなサイトでは特に問題はない。
---
[追記] IPv6 のアドレスでアクセスしようとして失敗して、IPv4 のアドレスで接続しなおしているのかな。
2010年4月25日日曜日
さて IPv6 ( その3 )
IPv6で接続するのに、どこかと契約する必要があるのかと思っていたら、AnyCast という適当な近くの 6to4ゲートウェイを選んで接続してくれる仕組みがあるのね。
/etc/defaults/rc.conf に
#ipv6_defaultrouter="2002:c058:6301::" # Use this for 6to4 (RFC 3068)
とコメントアウトしてあるのがそれ。
最初、dtcpを使って feel6.jp につなぐ記事が検索でひっかかったのでそれで試していたのだけれど、Windowsからだとすなおに繋がるのに、FreeBSDからだとどうも IPv6アドレスがうまく割りあてられてくれないし、エラーメッセージもなんだか文法エラーのような接続以前のエラーが表示される。たぶん、記事の書かれたころとソフトウェアのバージョンが相当に違うのだろうということで、しばらく苦戦したあげくにdtcpによる方法は却下することにした。
結局 stf を使った 6to4 が一番楽なよう。
pf.conf の方には、とりあえず、pass on stf0 all を追加して、無防備状態にしてテスト。
VPSまでのping6 は
--- 2001:2e8:xxx:x:x:x:x:5e ping6 statistics ---
6 packets transmitted, 6 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 112.768/125.282/178.599/23.928 ms
程度。
telnet は相変わらず、Escape character is '^]'のプロンプトが出たあと接続が切られる。
hosts.allow の設定が変なときの症状だと思うのだが、理由はよくわからない。
/sbin/ip6tables がまともに機能していないようなので、無防備のままあまり放置したくないのだけれど...
/etc/defaults/rc.conf に
#ipv6_defaultrouter="2002:c058:6301::" # Use this for 6to4 (RFC 3068)
とコメントアウトしてあるのがそれ。
最初、dtcpを使って feel6.jp につなぐ記事が検索でひっかかったのでそれで試していたのだけれど、Windowsからだとすなおに繋がるのに、FreeBSDからだとどうも IPv6アドレスがうまく割りあてられてくれないし、エラーメッセージもなんだか文法エラーのような接続以前のエラーが表示される。たぶん、記事の書かれたころとソフトウェアのバージョンが相当に違うのだろうということで、しばらく苦戦したあげくにdtcpによる方法は却下することにした。
結局 stf を使った 6to4 が一番楽なよう。
pf.conf の方には、とりあえず、pass on stf0 all を追加して、無防備状態にしてテスト。
VPSまでのping6 は
--- 2001:2e8:xxx:x:x:x:x:5e ping6 statistics ---
6 packets transmitted, 6 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 112.768/125.282/178.599/23.928 ms
程度。
telnet は相変わらず、Escape character is '^]'のプロンプトが出たあと接続が切られる。
hosts.allow の設定が変なときの症状だと思うのだが、理由はよくわからない。
/sbin/ip6tables がまともに機能していないようなので、無防備のままあまり放置したくないのだけれど...
2010年4月24日土曜日
さて IPv6 ( その2 )
とりあえずできる範囲で、ということで、
% telnet ::1
Trying ::1...
Connected to ::1.
Escape character is '^]'.
Connection closed by foreign host.
あれ? login できない。
Escape character is '^]'. でてるということは telnetd自体は動いていて、何かの理由で切断されているのだよね。
localhostからの接続はすべて許可してあるはずなのに、どこでミスったのかな。
やっぱり基本的なところから調べないとダメだね。
---
[追記:2010/04/26] hosts.allow に書くときは、[::1]と書かないといけないということらしい。
% telnet ::1
Trying ::1...
Connected to ::1.
Escape character is '^]'.
Connection closed by foreign host.
あれ? login できない。
Escape character is '^]'. でてるということは telnetd自体は動いていて、何かの理由で切断されているのだよね。
localhostからの接続はすべて許可してあるはずなのに、どこでミスったのかな。
やっぱり基本的なところから調べないとダメだね。
---
[追記:2010/04/26] hosts.allow に書くときは、[::1]と書かないといけないということらしい。
2010年4月23日金曜日
さて IPv6
VPSサーバーのもう一つの売りが、IPv6対応 ということなのだけれど、
とりあえず、ping を打ってみる。
% ping6 2001:503:BA3E::2:30
PING 2001:503:BA3E::2:30(2001:503:ba3e::2:30) 56 data bytes
64 bytes from 2001:503:ba3e::2:30: icmp_seq=0 ttl=57 time=381 ms
64 bytes from 2001:503:ba3e::2:30: icmp_seq=1 ttl=57 time=121 ms
64 bytes from 2001:503:ba3e::2:30: icmp_seq=2 ttl=57 time=121 ms
確かに繋がってはいるみたいだけれど、さてどうしよう。
v6の世界は殆ど未体験ゾーンなので勝手がよくわからん。
ネームサーバーはどこを指定したらいいものやら、いきなりルートサーバーを参照してもいいものなのだろうか?
[ 追記: IPv4と同じネームサーバーでいいみたいね。v4 と v6 の両方の答が返ってきた。ただ、このネームサーバーは v6のアドレスが振られていないみたい。なんか中途半端だな。]
今月号の SoftwareDesign 誌でも、v6 の話が少し書かれていたけれど、Fletsのv6 は、NTTはプロバイダ行為をしてはいけない規制があるらしくて、巨大なプライベート空間にすぎないらしい。
まず、どこにつなげたらいいのか、そこからだね。
とりあえず、ping を打ってみる。
% ping6 2001:503:BA3E::2:30
PING 2001:503:BA3E::2:30(2001:503:ba3e::2:30) 56 data bytes
64 bytes from 2001:503:ba3e::2:30: icmp_seq=0 ttl=57 time=381 ms
64 bytes from 2001:503:ba3e::2:30: icmp_seq=1 ttl=57 time=121 ms
64 bytes from 2001:503:ba3e::2:30: icmp_seq=2 ttl=57 time=121 ms
確かに繋がってはいるみたいだけれど、さてどうしよう。
v6の世界は殆ど未体験ゾーンなので勝手がよくわからん。
ネームサーバーはどこを指定したらいいものやら、いきなりルートサーバーを参照してもいいものなのだろうか?
[ 追記: IPv4と同じネームサーバーでいいみたいね。v4 と v6 の両方の答が返ってきた。ただ、このネームサーバーは v6のアドレスが振られていないみたい。なんか中途半端だな。]
今月号の SoftwareDesign 誌でも、v6 の話が少し書かれていたけれど、Fletsのv6 は、NTTはプロバイダ行為をしてはいけない規制があるらしくて、巨大なプライベート空間にすぎないらしい。
まず、どこにつなげたらいいのか、そこからだね。
登録:
投稿 (Atom)
