LoginSignup
1
1

More than 5 years have passed since last update.

OpenIndiana(多分Solaris11でも)でDSLiteを動かす。

Last updated at Posted at 2017-01-14

OpenIndiana(多分Solaris11でも)でDSLiteを動かす。

1.こんな変な設定をする動機

自宅の回線はIPv4もIPv6もPPPoE接続で使っているんだけど、近頃夜中の回線速度の劣化がひどい。(IPv6も)加えて、OpenIndianaのパッケージミラー(http://pkg.illumos.jp/openindiana.org/en/index.shtml) を立てているんだけどMasterとのSyncが遅いと処理が止まってしまう。(一定の転送速度以下になると処理が終了する残念な仕様)

ということで、PPPoEからの卒業を画策し、IPoEのプロバイダー探しに出かけたんだけど、あんまり良さげなのがない。
(単品で1000円以下ぐらいで追加できればよかったんだけどね。)

結局IIJmio FiberAccess/NF 月額2000円 (さらにその後IIJ mio光+IPoE オプションに加入)に落ち着きました。
携帯をIIJ mioを利用しているので割り引かれるしね。
IIJのIPoEはMFのTransixサービスの卸なのでIPv4はDSLiteでの提供になります。

次にDSLiteの終端をどこでやるかを考えたのですが。今の自宅のルータはCisco841MというCEF有効にするとIPv6での通信がパケロスする欠陥機。
また、VRFがIPv6に対応してないので、既存のIPv6回線を生かしたまま終端するのは難しそうでした。

よくよく考えると、DSLite自体はすごく単純なプロトコルで、IPv4-in-IPv6が使えれば繋がります。
で、もう直接サーバで終端しちゃえばよく無い?という結論に至り、OpenIndianaでDSLiteの終端をすることにしました。

2. IPv6接続の設定

IPv6 Autoconfigの設定は単純で、IFがtransix0の場合は

$ pfexec ipadm create-if transix0
$ pfexec ipadm create-addr -T addrconf -p stateless=yes,stateful=no transix0/v6addr

アドレスとルーティングの確認は

$ pfexec ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
lo0/v6            static   ok           ::1/128
transix0/v6addr   addrconf ok      fe80::8:20ff::df8b/10
transix0/v6addr   addrconf ok      2409:10:20:400:8::fe3e:df8b/64

$ netstat -rn

Routing Table: IPv4
  Destination           Gateway           Flags  Ref     Use     Interface
-------------------- -------------------- ----- ----- ---------- ---------
127.0.0.1            127.0.0.1            UH        2         56 lo0

Routing Table: IPv6
  Destination/Mask            Gateway                   Flags Ref   Use    If
--------------------------- --------------------------- ----- --- ------- -----
::1                         ::1                         UH      2       0 lo0
2409:10:20:400::/64         2409:10:20:400:8::fe3e:df8b U       2       0 transix0
fe80::/10                   fe80::8:20ff::df8b      U       4       2 transix0
default                     fe80::212:e2ff::40f4    UG      2       0 transix0

ここで、トンネルのソースIPになるアドレスをstaticで設定します。
プレフィックスは/64なので適当なアドレスをつけてしましょう。

$ pfexec ipadm create-addr -T static -a 2409:10:20:400::100/64 transix0/v6static
$ pfexec ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
transix0/v6static static ok  2409:10:20:400::100/64

Autoconfigで割り当てられたIPでも通信できるのですが、reboot時にiptunインターフェースが立ち上がらない現象にあたりました。

3. DSLiteの設定

残念ながらSolarisはAFTRの接続はドメイン名での接続をサポートしておらず、IPアドレス指定で指定する必要があります。
AFTRのIPv6アドレスは公式のNVR500の設定に載ってました。

ipv4 over ipv6 interface設定例

// pfexec dladm create-iptun -T ipv6 -a local=<Solaris側のIPv6アドレス>,remote=<AFTRのIPv6アドレス> <作成するインターフェース名>
$ pfexec dladm create-iptun -T ipv6 -a local=2409:10:20:400::100,remote=2404:8e00::feed:101 dslite0 
$ pfexec dladm show-iptun
LINK            TYPE  FLAGS  LOCAL               REMOTE
dslite0         ipv6  --     2409:10:20:400::100 2404:8e00::feed:101

IFができたので、IPv4アドレスを振ります。

$ pfexec ipadm create-if dslite0
$ pfexec ipadm create-addr -T static -a local=192.168.0.2,remote=192.168.0.1 dslite0/v4
root@oi-userland:~# ipadm show-addr dslite0/v4
ADDROBJ           TYPE     STATE        ADDR
dslite0/v4        static   ok           192.168.0.2->192.168.0.1

最後にルーティングを書けば完成です。

$ pfexec route -p add default 192.168.0.1
add net default: gateway 192.168.0.1
add persistent net default: gateway 192.168.0.1
$ ping 8.8.8.8
8.8.8.8 is alive
$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 40 byte packets
 1  * * *
 2  14.0.9.65 (14.0.9.65)  3.865 ms  3.485 ms  3.411 ms
 3  14.0.8.66 (14.0.8.66)  3.743 ms  3.890 ms 14.0.8.78 (14.0.8.78)  4.035 ms
 4  210.173.176.243 (210.173.176.243)  4.539 ms  4.236 ms  3.977 ms
 5  108.170.242.193 (108.170.242.193)  4.448 ms  4.926 ms  4.401 ms
 6  216.239.43.23 (216.239.43.23)  5.226 ms 209.85.251.219 (209.85.251.219)  4.849 ms 108.170.236.171 (108.170.236.171)  4.644 ms
 7  8.8.8.8 (8.8.8.8)  4.410 ms  4.610 ms  4.424 ms
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1