IPv6で接続するまでの道のり

タイトルの通りです。私はWindowsとMacとUbuntuを愛用しているので全てIPv6対応出来れば良いかなと。

ubuntu18.04 で試します。

プロバイダや利用ルーターはボカシます。


## 自分の接続がIPv6に対応しているかチェック

https://www.test-ipv6.com/

私は 

「IPv6 アドレスが検出されませんでした」

と赤い×印をつけられたので原因を探るべく詳細を見ることに
以下引用

```
あなたは現時点でIPv6がないようです...
IPv6 アドレスがないようです.

現時点ではIPv4インターネットサービスしかないようです。 悲観しないでください、ほとんどの人々は今この位置にいます。 ほとんどのインターネットサービスプロバイダは未だに一般のユーザーにIPv6インターネットを提供する準備が整っていません。

このサイトへの訪問者の多くはIPv6とは何かを知らない人々です。 IPv6の重要性が分からない場合は、なぜIPv6なのか？のFAQをご覧ください。 ここでは今後数ヶ月あるいは数年の間にIPv4に何が起きるのか、あなたに少しのバックグラウンドを与えます。 それはIPv6を提供する時期をISPに尋ねる動機となるでしょう。

IPv6があるはずなのにそれを検出できなかった場合: これにはいくつか>の原因が考えられます。 ひつつは、あなたの組織がIPv6の使用をブロックするネットワークポリシーを適用して外部のインターネットと通信をしている場合です。 もしくはあなたのホスト上で見えているIPv6アドレスがグローバルアドレスではない場合です。 "::"、"fc"、"fd"、"fe"で始まるアドレスはパブリックIPv6インターネットでは動作しません。
```

は〜ん

そんじゃ調べてみますか。

## IPv6が割り当てられてるか調べる

```shell
$ ifconfig

eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.xxx.xxx.xxx  netmask 255.255.255.0  broadcast 192.xxx.xxx.xxx
        inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx  prefixlen xx  scopeid 0x0<global>
        inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx  prefixlen xx  scopeid 0x0<global>
        inet6 fe80::xxxx:xxxx:xxxx:xxxx  prefixlen xx  scopeid 0x20<link>
        ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (イーサネット)
        RX packets 4430802  bytes 6017125372 (6.0 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2411791  bytes 245471695 (245.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0xf7100000-f7120000  

```

inet6のglobalって出ているのがIPv6のアドレスっぽいですね。
２つあるのはマザボのネットワークカードともう一個ぶっ刺しているネットワークカードがあるからだと思います。
とりあえず、なんだか割り振られているみたい。xxxxは実際に数値が割り振られています。
3番目のfe80で始まるIPはローカルで割り当てられるアドレスです。

### ifconfigが使えない場合

```shell
$ ip a

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd xx:xx:xx:xx:xx:xx
    inet 192.192.xxx.xxx.xxx/xx brd 192.xxx.xxx.xxx scope global dynamic noprefixroute eno1
       valid_lft 115151sec preferred_lft 115151sec
    inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/xx scope global temporary dynamic 
       valid_lft 547155sec preferred_lft 28363sec
    inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/xx scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 2591723sec preferred_lft 604523sec
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/xx scope link noprefixroute 
       valid_lft forever preferred_lft forever

```

大体同じような感じで出てきましたね。
globalにIPv6のIP取れているっぽいのに接続できない。
うーん、なぜだろう

## ufwの設定

なにやら/etc/ufw/ufw.confにIPV6=yesを追加すれば良いという情報がチラホラあったので試す

```shell
$ sudo vim /etc/ufw/ufw.conf
〜〜〜
省略
〜〜〜
## 末尾に追加
IPV6=yes
```

ufwが動いているか確認する

```shell
$ sudo ufw status
状態: アクティブ
```

ufwにデフォルト設定があることにきづく

```shell
$ sudo vim /etc/default/ufw
IPV6=yes
以下省略
```

むむむ、冒頭にIPV6=yesがある。
元々IPV6有効なのかい！


## ルーター
次はルーターかな。と思いルーターの画面へ。
IPv6の項目があったけどチェック済。


## プロバイダ
自分のプロバイダのマイページのようなところへログインする。

あった。

何やらPPPoE方式からIPoE方式に変更しないと行けないらしい。

PPPoEとIPoEの違いはこの辺りをご参考に。
https://www.isdn-info.co.jp/ocn/ipoe/ipoe.html


## IPoE検討
今のルーターがIPoEに対応してないのですぐには無理。
PPPoEでもIPv6の接続は出来ると思うのだけどプロバイダーが対応していないんじゃこっちが変更するしかないですね。
IPoEのほうが新しいものだし早いかなと思ったけど診断サイトで

「6to4 プロバイダー (管理された6to4トンネルサービス) 自動トンネルの使用はお勧めしません」

とか出てる。

もうちょい調べなければ。

## IPoEはIPv6のみに対応
ダメじゃん！と思ったけど、それを何とかする方法が以下。

- デュアルスタック
- IPv6 over IPv4
- IPv4 over IPv6
- 6to4
- ISATAP（Intra-Site Automatic Tunnel Addressing Protocol

詳しくはこちらを参考
https://www.atmarkit.co.jp/ait/articles/1502/12/news023.html

## 自分のところはどの方式？
IPv4 over IPv6 方式っぽい。6to4じゃないからOKかな(疲れてきたので仕様はチラ見)

## IPv6で接続するまでのまとめ

まずはIPoEに対応しているルーターを手に入れないといけない。
次に申込み。
仕事が忙しいときにインターネットに繋がらなくなった状態になったら目も当てられないので仕事が緩やかなときに申し込む。


## おまけ GoogleにアクセスしているIPv6の割合
30%くらいなんですね。あえてIPv6しか見れないサイトを作るのも面白いかもしれない今日この頃。
https://www.google.com/intl/en/ipv6/statistics.html