家の中のPC同士をIPv6アドレスで通信してみた。

JUGEMテーマ:インターネット


旬っぽいので。

国家のITの礎は家庭のITから!

というほどのことでもなく、無線LANルータに家長の座を譲り渡し、
生来IPv4アドレスをもっているせいで(明示的なL2スイッチ化機能が無い)
馬鹿Hubにもなりきれず眠っていたIO DATAのNP-BBRPを有効活用したかったのでやってみた。


試したかったこと:ネットワークインターフェースにIPv4ふらなきゃ
このBBルータのv4アドレス無視してIPv6のテストに使えるんじゃね?

用意するもの
・OpenBSDのPC(イーサネット1つ)
・LinuxのPC Ubuntu(イーサネット1つ)
・LANケーブルストレート 2本
・要らなくなった有線ルータ(100Mbps LAN側に口4つ、WAN側に1つ)

��Solaris同士でもLinux同士でもBSD同士でも別に構わない。


■設定
- BSD側
ネットワークIFカードにfec0::1とfec0::2だけを割り当てる
��anycastアドレスが必須というわけでもない)

ifconfigを実行してネットワークIFカードのタイプ(<if>)を確認する

/etc/hostname.<if> ファイルを以下のように書き換える。

inet6 alias fec0::1 64
inet6 alias fec0::2 64 anycast


��ほぼman hostname.ifの例のままなわけだが・・・)

ネットワークを再起動する
# sh /etc/netstart


再びifconfigを実行して
リンクローカルアドレスの下に以下のように追記されていることを確認する

inet6 fec0::1 prefixlen 64
inet6 fec0::2 prefixlen 64 anycast

ping6で自分にPingが通るか確認する
# ping6 ::1 (ローカルループバック)
# ping6 fec0::1



- Linux側

$ ifconfig eth0

inet6アドレス: の箇所に自分のIPv6リンクローカルアドレス(fe80:で始まるやつ)
だけがついていることを確認。別にこのアドレスを使うわけじゃない。

ここで eth0に アドレス fec0::3 Prefix 64 を割り当てる。
Prefix(ネットワークアドレスではないのか。ネットマスクのbitの長さを指定する。IPv4だとクラスCが24でクラスBが16でってやつ。)
を間違えると通信できないので注意

割り当てる
$ sudo ip -f inet6 addr add fec0::3/64 dev eth0


削除するとき
$ sudo ip -f inet6 addr del fec0::3/64 dev eth0

まあ全部の引数は必要ないとおもう。

で、再びifconfig でinet6アドレスとしてfec0::3/64がふられていることを確認する。

結果:

無事にping6も通り、OpenBSD側のsshdにもIPv6のポートから入れました。
��OpenBSD側にはIPv4アドレスは持たせていない)

$ ping6 fec0::1
PING fec0::1(fec0::1) 56 data bytes
64 bytes from fec0::1: icmp_seq=1 ttl=64 time=7.69 ms
64 bytes from fec0::1: icmp_seq=2 ttl=64 time=0.245 ms
64 bytes from fec0::1: icmp_seq=3 ttl=64 time=0.234 ms
64 bytes from fec0::1: icmp_seq=4 ttl=64 time=0.242 ms
64 bytes from fec0::1: icmp_seq=5 ttl=64 time=0.232 ms
64 bytes from fec0::1: icmp_seq=6 ttl=64 time=0.242 ms
^C
--- fec0::1 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 4998ms
rtt min/avg/max/mdev = 0.232/1.481/7.692/2.777 ms

$ ssh root@fec0::1
root@fec0::1's password:
Last login: Wed Feb 16 09:05:08 2011 from fec0::3
OpenBSD 4.4 (GENERIC) #1021: Tue Aug 12 17:16:55 MDT 2008

Welcome to OpenBSD: The proactively secure Unix-like operating system.

Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.

Terminal type? [xterm]
# ifconfig
lo0: flags=8049 mtu 33204
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
enc0: flags=0<> mtu 1536
rl0: flags=8843 mtu 1500
lladdr 00:af:bf:88:50:0d
media: Ethernet autoselect (100baseTX full-duplex)
status: active
inet6 fe80::2af:bffe:fe88:500d%rl0 prefixlen 64 scopeid 0x4
inet6 fec0::1 prefixlen 64
inet6 fec0::2 prefixlen 64 anycast
# exit



IPv6 - Wikipedia

NSとかNDとかNAとかNTRとか勉強しないとなあ。




既存の社内LANってIPv4を想定して作られているからIPv6アドレス機器
をどう制御するかとか考えないで作ってるところがあるんじゃないかな。(2003年以降はないと考えたい)
社内LANで勝手にVMware上にDHCPサーバ立てて叱られるなんて笑い話じゃないくて
リンクレベルでつながってさえいればインフラ部門が関知しないところで勝手に設定できるプロトコル体系(v6)があるってどうなんすかね。
まあX.802とかでネットワーク認証でもやんないかぎりLANケーブルに接続できる状況になった時点で負けなのか。
追記
サイトローカルアドレス(fec0:で始まるアドレス)は廃止されたらしい
“Deprecating Site Local Addresses”, RFC3879
じゃあローカルなネットワークアドレスの割り当てはどうすればいいんだ?

コメント

このブログの人気の投稿

4.3.0 Temporary Lookup Failureでドツボってた話

tomcat起動時の環境変数でJRE_HOMEを指定するときに

何が得られて何処へ向かうかだけを問うべき