最近アンチv6だけど、思い出したので書いておく。
Windows XP で、ipv6 install されていること、且つ、IPv6 Helper Service が起動していること、正しく通信可能なIPv6アドレスが、割り当てられていることが条件となります。
netsh interface portproxy add v4tov6 listenport=16667 connectaddress=2001:200:0:1::800:6667
connectport=6667 listenaddress=127.0.0.1 protocol=tcp
LimeChat や CHOCOAなど、接続するときは、 127.0.0.1:16667 に接続をすればok。
コマンドの詳しい意味は、各自で調べてください。
同じ方法として、Vistaがでた今、ほとんど必要性がなくなりましたが、
逆のパターンとして、
Windows XP でリモートデスクトップをv6で使う方法という記事も作成しています。
今後、どーなるんだろねぇ。
整理始まるとか、某アレゲなチャンネルで話題になってたみたいだけど。
DNSの権限委譲(逆引きの委譲)はまだまだらしいけど、先ほど到達しました。
本日あたり、経路の切り替えおよび、MultiPrefix化の作業でもしてみよう。。
で、接続所情報の備考について、○○ ○○女史 http://tomocha.net/ とかかれているのに、ちょっとウケました^^;;
v
Vectantから割り当てられたアドレス。
このネットワークは、source address が、割り当て以外のものは、疎通が不可能になるように設定されており、以前から使用していたアドレスはできる限りそのまま使用したい。
現在、DNSの権限委譲が行われておらず、しばらく予定も無いとのことなので、IRCなどの接続は、できる限り旧来のアドレスを使用、そして、普段の生活は新しく割り当てられたアドレスで生活したいとおもい、ipv6 address selection および、source address routing を行おうと設定をがんばっていた。(フィルタが無ければ、行きと帰りのルートが違っても使えた(はず))
で、いま、OSがFreeBSD6系なので、ip6fwを使おうとすると、src addr routing ができないし、ipfw とたたくと、ipv6 が対応しているようなので、これでできるだろうとおもって、がんばってみていたが、うまくうごかない。
# ipfw add 1000 fwd fe80::XXXX:XXXX:XXXX:XXXX%gif0 from 2001:200:564::/48 to any out
ipfw: illegal forwarding port ``:XXXX:XXXX:XXXX:XXXX''
# ipfw add 1000 fwd fe80::XXXX:XXXX:XXXX:XXXX from 2001:200:564::/48 to any out via gif0
ipfw: illegal forwarding port ``:XXXX:XXXX:XXXX:XXXX''
# ipfw add 1000 fwd ip6 fe80::XXXX:XXXX:XXXX:XXXX from 2001:200:564::/48 to any out
ipfw: unrecognised option [-1] fe80::XXXX:XXXX:XXXX:XXXX
どうやって記述するんだろう。
man にも例が無いし、こまったこまった。。
なお、fwd と forward は同じようです。
ipfw -h には次のようにあるようなんですけどね、、
ACTION: check-state | allow | count | deny | unreach{,6} CODE |
skipto N | {divert|tee} PORT | forward ADDR |
pipe N | queue N
PARAMS: [log [logamount LOGLIMIT]] [altq QUEUE_NAME]
ADDR: [ MAC dst src ether_type ]
[ ip from IPADDR [ PORT ] to IPADDR [ PORTLIST ] ]
[ ipv6|ip6 from IP6ADDR [ PORT ] to IP6ADDR [ PORTLIST ] ]
IP6ADDR: [not] { any | me | me6 | ip6/bits | IP6LIST }
また、GENERIC Kernel にはデフォルトで有効になっていない(らしい)ので、 次の設定を行い、kernel moduleを作り直し、src addr routingを有効にしています。
/usr/src/sys/modules/ipfw/Makefile
---
CFLAGS+= -DIPFIREWALL -DIPFIREWALL_FORWARD -DINET6 -DIPFIREWALL_FORWARD_EXTENDED
そして、いまは、ip6fwはつかわず、ipf, ipfw, pf あたりを使うのがトレンドなのかしら、、、。
★ ipfwの問題:
CBUGでこの話題をしていたら、
/usr/src/sbin/ipfw/ipfw2.cのソースを確認してくださったようで、問題があったらしい。
* $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.76.2.23 2008/05/20 11:32:03 dwmalone Exp $
/*
* locate the address-port separator (':' or ',')
*/
s = strchr(*av, ':');
if (s == NULL)
s = strchr(*av, ',');
if (s != NULL) {
*(s++) = '\0';
i = strtoport(s, &end, 0 /* base */, 0 /* proto */);
if (s == end)
errx(EX_DATAERR,
"illegal forwarding port ``%s''", s);
p->sa.sin_port = (u_short)i;
}
`:' が先に来るのね。v6はあまり考慮されていなかったときのものが残っていたのだろうか。
struct 〜 をみてたら、いろいろな書き方があるんだなぁと。
たとえば、bw と bandwidh 画同じだったり、fwd, forward が同じだったり、deny, drop が同じだったり。
frag, fragment が同じだったりと。estab と略す人もいるんだ、と結構新たな発見があり面白かった今日この頃です。
★ tablearg でやってみれば:
という神のお告げをいただいて、進んでいたところ、やはりだめ。
# ipfw -h
table N {add ip[/bits] [value] | delete ip[/bits] | flush | list}
# ipfw table 1 add 2001:200:564::/48 fe80::XXXX:XXXX:XXXX:XXXX%gif0
ipfw: bad width ``48''
# ipfw table 1 add 2001:200:564:: fe80::XXXX:XXXX:XXXX:XXXX%gif0
ipfw: hostname ``2001:200:564::'' unknown
ipfw2.c:2677 以降のセクションには、次のようにあるそうで、
/*
* fills the addr and mask fields in the instruction as appropriate from av.
* Update length as appropriate.
* The following formats are allowed:
* me returns O_IP_*_ME
* 1.2.3.4 single IP address
* 1.2.3.4:5.6.7.8 address:mask
* 1.2.3.4/24 address/mask
* 1.2.3.4/26{1,6,5,4,23} set of addresses in a subnet
* We can have multiple comma-separated address/mask entries.
*/
----
case '/':
masklen = atoi(p);
if (masklen == 0)
d[1] = htonl(0); /* mask */
else if (masklen > 32)
errx(EX_DATAERR, "bad width ``%s''", p);
else
d[1] = htonl(~0 << (32 - masklen));
break;
さすがです。。。2001:200::/32 でやれと?(笑
ちなみに、何もつけなければ、/32 が。。
# ipfw table 1 add 2001:200:: fe80::XXXX:XXXX:XXXX:XXXX%gif0
ipfw: hostname ``2001:200::'' unknown
orz
目的は果たせませんでした。。
そのうちパッチが入ることを期待して、待っておくことにします。。
いろいろと情報提供してくださった、cbugの皆様ありがとうございます。。
ということで、
FreeBSD システム管理者マニュアル IPFW(8)でも、どうぞ;p。
いろいろな発見があるとおもいます。
★ その後、kernel などなど:
umeさんが、その辺のパッチを作ってくださいましたが、kernelあたりも見てくださった結果、そのままじゃ、動かないということでしたT_T
あちこちを直さないと無理なんじゃないかな、という感じで、pfつかえーと。
で、対応したけど、動かないんじゃなくて、そもそも、サポートしてないのではないかという結論に達しました。
現在pfを調査中だけど、Solarisでつかった、ipfと記述方法が似ているので利いてみたところ、実装は別物だけど、syntaxはipfを参考にした感じということでした。ライセンスが、、、ってことで、pfができたとか!?
それにしても、FreeBSDを触っていますが、ipfw, ip6fw, pf, ipf と4種類もあるんですね・・・。
私の中で、FreeBSD4時代で結構とまっているし、当時はipfwだぁというイメージが強かったような気がします。
知らないことが多いなぁ。
日本語ドキュメント見つけれていないが、、、
pf documentがあります。
英語嫌いだよー。よめないよー(@_@;
↑かわいこぶって、かわいくいってみる(蹴らないで>_<