設問1
(1)a:宛先IPアドレス b:ブロード c:リプライ

ARPパケットには4つの専用フィールドがある。
▼ARPパケットのフィールド
送信元MACアドレス
送信元IPアドレス
宛先MACアドレス
宛先IPアドレスでは、ARPパケットのやり取りを具体的に見ていこう!
▼ARPパケットの流れ
端末Aが端末BのMACアドレスを知りたいというユースケースで流れを見ていこう。
1.ARPリクエスト
端末Aが以下の構成でARPパケットを作りブロードキャストする
| フィールド名 | 入る値 | 説明 |
| 動作タイプ | 1(リクエスト) | 「問い合わせ」であることを示す |
| 送信元 MACアドレス | AA:AA:AA:AA:AA:AA | 端末A自身のMACアドレス |
| 送信元 IPアドレス | 192.168.1.1 | 端末A自身のIPアドレス |
| 宛先MACアドレス | 00:00:00:00:00:00 | まだ分からないので0で埋める |
| 宛先IPアドレス | 192.168.1.2 | 【問題a】知りたい端末BのIPアドレス |
2.ARPリプライ
ブロードキャスト受信した端末Bは宛先IPが自身のIPであることから、自分がARPリプライをユニキャストで返すと認識する。
| フィールド名 | 入る値 | 説明 |
| 動作タイプ | 2(リプライ) | 「回答」であることを示す |
| 送信元 MAC | BB:BB:BB:BB:BB:BB | 【ご質問の点】端末B自身のMACアドレスをここに入れる! |
| 送信元 IP | 192.168.1.2 | 端末B自身のIPアドレス |
| ターゲット MAC | AA:AA:AA:AA:AA:AA | 端末AのMACアドレス(返事の宛先) |
| ターゲット IP | 192.168.1.1 | 端末AのIPアドレス |
以上の表より、a,b,cに適切な用語を割り当てることで回答を導ける。
設問2
(1)d:16 e:48 f:64

前提知識として、IPv6アドレスは以下の特徴を持つ。
▼IPv6アドレスの特徴
・16進数で表現される
・1ブロック16ビット
・128ビットで構成される
・前半64ビットをサブネットプレフィックスと呼び後半64ビットをインタフェースIDと呼ぶ
以上の前提知識を踏まえつつd,e,fを埋める。
(2)データリンク層で通信可能な範囲
よくやってしまうミスが「ブロードキャストが届く範囲」と書いてしまうこと。データリンク層で通信可能な範囲と重複しているように見えるが、IPv6にはブロードキャストは存在しない。そのため、IPv6において、そのような回答は✖にされる可能性がある。もし問題が「IPv4においてデータリンク層で通信可能な範囲」と表現されていたらブロードキャストが届く範囲としてもOK。でも今回はIPv6なので、「同一リンク内」というニュアンスが入っている解答の方がベターになる。
(3)同じデータリンク層上に同じIPv6アドレスを使用しているノードがいないことを確認するため

SLAACとは、DHCPサーバを使わずにルータと端末間で動的にIPv6アドレスを生成する。要は、DHCPサーバによる一元管理に依存しないということ。しかし自由度が上がった分、重複管理なども端末が実施する必要がある。そのプロセスがまさに(i)と(v)である。
あらかじめ自分が使う予定のアドレスをリンク内に聞いておくことで、重複を防いでいる。これはIPv4のARP Probeと原理は同じである。
自分が使う予定のアドレスを拡散して、既に使われていたら応答が返ってきて、応答が返ってこなければ使われていない(重複なし)と判断できる。
(4)GUA:2001:db8:aabb:1:8:800:200c:417a プレフィックス:64
LLAがfe80::8:800:200c:417a
プレフィックスが2001:db8:aabb:1::/64
これはシンプルにLLAの後半64bitとプレフィックスの前半64をつなげればいいだけ。
設問4
(1)インターネットからルータA,ルータB及びFWにアクセスできないようにするため
そもそもLLAとは同一リンク内のみで有効なアドレス。つまり、リンク外からはアクセスできないアドレスとなる。つまり、況やインタフェースにLLAのみの割り当てとは同一リンク外からはアクセスできなくなるため、それをうまく利用すればアクセス制限にも利用できるということ。
(2)traceroute6を利用して調べるときに各機器を識別しやすくなる
前提条件としてtraceroute6はLLAに対応し切れない。だから、GUAを設定している。そもそも、もしLLAをtraceroute6で完璧に扱えるのであれば、スタティックなLLAを割り当てればデバイスの識別も可能になるため要件を満たせる。しかし、実際はそうではない。なので、GUAをスタティックに割り当てる必要がある。
*厳密にはtraceroute6はLLAに対する受信はできるが応答は返せないとう表現が正しい
Q.インタフェースe~fにGUAを割り当てるならa~dに割り当てないのはどういう了見?
A.e~fとa~dの決定的な違いはどこに配置されているか、である。要は、a~dはFWの外側に配置されているのである。一方e~fはFWの内側に配置されている。以上より、もしa~dにGUAを割り当ててしまうとインターネットから無秩序にアクセスされてしまう可能性がある。そのためa~dにはGUAをつけないことが望ましい。
Q.tracerouteの経路途中にLLAのみデバイスがある場合はどうなるの?
tracerouteの宛先自体はGUAを持っているが、その経路途中にLLAのみのデバイスがあったらどうなるのか。2択の選択肢が浮かぶだろう。1つは途中でtracerouteが中断される。もう一つは、そのデバイスのみ表示されずtracerouteは継続する。答えは後者である。
1. 2001:db8:xxxx::1 (ISP側のルーター) <-- GUAが見える
2. * * * <-- ルーターA(GUAがないので応答不能・隠れる)
3. * * * <-- ルーターB(GUAがないので応答不能・隠れる)
4. * * * <-- FWの外側 d(GUAがないので応答不能・隠れる)
5. 2001:db8:yyyy:1::x (監視サーバー) <-- パケットが届くので、GUAが再び表示される!このような👆表示になる。
Q.これはどのネットワークのことを言っているの?

なんか、回りくどく書かれていて結局どこのネットワークを指しているのかよくわからなくなる。
まず、順番に紐解いていこう。
1.FWと各拠点のL3SWとの間→広域イーサ網
2.PCやサーバを接続しないネットワーク→広域イーサ網の説明
以上より、「いや、シンプルに広域イーサ網ってかいてくれよ!」って感じるが、要はこの文は広域イーサ網を指しているということ。
Q.そもそも、なんでa~dはGUAを割り当てる必要がないの?

そもそもGUAが必要なパターンはリンク外から宛先としてそのデバイスが指定されるとき。その点、インタフェースa~dは宛先として指定されることがないのでGUAもいらない。LLAさえあれば転送処理はできるので、わざわざGUAをつける必要もない。
Q.GUAがなかったらルータにリモートアクセス(SSH,telnet)できないのでは?
たしかにLLAのみではリンク外からのアクセスはできなくなる。しかし、実務ではいろいろな方法でその問題を解決している。それが踏み台サーバを用意すること。
▼踏み台サーバの流れ
1.当該ルータと同一リンクに踏み台サーバを準備する
2.管理用PCで踏み台サーバにSSHやtelnetでアクセス
3.当該ルータのLLAあてにSSHやtelnetでアクセス
(同一リンク場であるためLLAでのアクセスが可能)
以上のような手順でLLAしか割り当てられていない機器に対してもリモートアクセスが可能になる方法がある。
(3)PCが送信したRSメッセージに対してRAメッセージを応答する
下線⑤からSLAACのプロセスに関する問であることが分かる。そのためSLAACにおけるルータの挙動を回答として提示する。
▼SLAACの流れ
1.PCがRSメッセージを送信
PCはどの自分のアドレスとして「どのプレフィックス?デフォルトルートは?」などの情報を求めるためのRSメッセージをマルチキャストする。
2.ルータがRAメッセージを送信
ルータはプレフィックス、デフォルトルートなどの情報をPCに教える
以上の流れより、L3SWがやることは「PCが送信したRSメッセージに対してRAメッセージを応答する」である。
(4)ア: fe80::1 イ: b ウ: fe80::2 エ: c オ: fe80::1 カ: d キ: fe80::2 ク: f ケ: fe80:::1
| 項番 | 機器名 | 静的経路制御又は経路制御プロトコル名 | 宛先ネットワーク | ネクストホップのIPv6アドレス | 出口インタフェース名 |
| 1 | ルータB | 静的経路制御 | ::/0 | ア: fe80::1 | イ: b |
| 2 | ルータB | 静的経路制御 | 2001:db8:yyyy::/48 | なし | Null¹⁾ |
| 3 | ルータB | OSPFv3 | 2001:db8:yyyy:3::/64 | ウ: fe80::2 | エ: c |
| 4 | FW | OSPFv3 | ::/0 | オ: fe80::1 | カ: d |
| 5 | FW | OSPFv3 | 2001:db8:yyyy:3::/64 | キ: fe80::2 | ク: f |
| 6 | L3SW1 | OSPFv3 | ::/0 | ケ: fe80:::1 | g |
*なお、ネクストホップアドレスを聞かれている場合はプレフィックスをつけない。プレフィックスをつけるのは宛先ネットワークなどのネットワークを聞かれている場合はつける。
*GUAとLLAの2つを持っている機器で回答にLLAが選ばれるのは、OSPFv3を動作させているから。OSPFv3はLLAで経路交換するため、回答も必然的にLLAになる。
ア: fe80::1
宛先が::/0、つまりデフォルトルートなのでルータAに渡す必要がある。なので、答えは、ルータAのインタフェースaであるfe80::1である。
*fe80::1/64としないように!
イ: b
出口インタフェースはルータAと接続しているbである。
ウ: fe80::2
宛先ネットワークが2001:db8:yyyy:3::/64なので、これはL3SW1のh配下であることが分かる。で、そこに行くためにはFWを経由する必要があるので、FWのdであるfe80::2となる。
エ: c
出口インタフェースはFWと接続しているcである。
オ: fe80::1
宛先が::/0、つまりデフォルトルートなのでBに渡す必要がある。なので、答えは、ルータBのインタフェースcであるfe80::1である。
カ: d
出口インタフェースはルータBと接続しているdである。
キ: fe80::2
FWから2001:db8:yyyy:3::/64へ行くには、まず、2001:db8:yyyy:3::/64はL3SW1のhあてであることが分かる。なので、ネクストホップは、L3SW1のFWとつながっているインタフェースgのアドレス。つまり、fe80::2である。
(gはGUAとLAAの両方を持っているがOSPFv3ではLLAで経路交換するため必然的にLLAが選出される)
ク: f
出口インタフェースはL3SQ1と接続しているfである。
ケ: fe80::1
宛先が::/0、つまりデフォルトルートなのでFW側に渡したい。FWのインタフェースfのアドレスはfe80::1となる。
(5)ホップリミットが0になるまで相互に転送し合い、破棄する
項番2はQ社が割り当てられているプレフィックスへのパケットはNull0で破棄している。これがあることによってルータAとルータBのループを防ぐことができる。では、項番2がある場合とない場合のケースを見ていこう!
▼項番2がない場合
1.インターネットからISPに宛先IP2001:db8:yyyy:9999::1として届く
2.ISPがプレフィックスを確認し、Q社に割り当てた2001:db8:yyyy::/48の範囲内あることを確認
3.Q社へ転送=ルータBに転送
4.Q社は宛先を確認するが、9999に該当するものはないと判断
Q社のGUAを確認すると1~3までしかない。9999に該当するものはない
5.わからないルートはデフォルトルートに流す=ルータAに流す
6.ISPは宛先IP2001:db8:yyyy:9999::1を再度受け取るが、プレフィックスはQ社なので再度ルータBに転送
7.Q社は受け取るが該当がないのでルータAに転送
8.以上のプロセスがホップリミット0になるまで繰り返される
このように、自身に割り当てられたアドレスの範囲内なんだけど実際は使っていないアドレスはループを引き起こしてしまう。
▼項番2がある場合
1.インターネットからISPに宛先IP2001:db8:yyyy:9999::1として届く
2.ISPがプレフィックスを確認し、Q社に割り当てた2001:db8:yyyy::/48の範囲内あることを確認
3.Q社へ転送=ルータBに転送
4.Q社は宛先を確認するが、ぴったり9999に該当するものはないと判断。
5.しかし、項番2に2001:db8:yyyy::/48宛てはNull0へとあるのでそこに転送する
6.Null0は破棄を意味するので、そこでそのパケットは破棄されて終わる。
このように、Null0を作ることによって、自身が割り当てられたプレフィックス内&実際は使っていないアドレスが送られてきても、それを破棄できる。
p.3 そもそもなんでIPv6対応させる必要があるの?
デュアルスタックやなんやらでIPv6に対応させることは面倒くさそう。それなのになぜわざわざやる必要があるのか..。
理由1:IPv6が普及し続けているから。
現在、IPv6は普及し続けている。そのうち、IPv6のみにしか対応していない環境も生まれる。そうなったときにIPv4にしか対応していないと通信が複雑化してしまい面倒くさくなる。
理由2:IPv6の方が早いから
IPv4はPPPoEと呼ばれる処理をする。これはISPの手前にある「網終端装置」という認証用のゲートを通らなければならないというルールがある。そのためそこで大渋滞を起こしてしまう可能性がある。一方IPv6はIPoEと呼ばれる処理を実施しており、これは認証ゲートを通らず広い空間を利用できるため、遅延の可能性も抑えることができる。
*IPv4単体ではIPoEを使えないという日本独自のルールがある。
理由3:処理の単純化のため
IPv4でもカプセル化技術を使えばIPoEに対応できる。しかし、毎回カプセル化処理をするとルータへの負担が増大して面倒くさい。
Q.海外にはそもそもPPPoEとIPoEという概念がないのはなぜ?
実はIPv4でIPoEが使えないのは日本独自の大人の事情があるから。そもそも海外ではイーサネットに流すのが当たり前すぎて、PPPoEやIPoEという概念がない。そのためIPv4でもイーサネットでそのままISPに流すことが可能。では、なぜこのような違いが生まれたのか見ていこう!
A.海外はISPで一本化だが、日本はISPと光回線が別々の事業者で運用されているから!
海外の多くは、テレビの同軸ケーブルなどすでに施設されているインフラを使うことによって、独自のインフラを築けた。その結果、テレビ会社がISPサービスも提供できISPサービスと回線の一本化に成功した。一方、日本は国営の日本電信電話公社(現NTT)が主導で日本全国に電柱などのインフラ設備をを施設するという超巨大プロジェクトが実施された。その結果、ほかの会社が今から「独自に日本全国にインフラ作ってやる!」となっても時間・コストともに無理ゲーとなってしまう。
そのため、日本では回線はNTTが提供し、ネットワークはISPが提供するという歪で非効率な構成になってしまった。
なお日本の法律でNTT東西は直接ISP事業をしてはならないという独占禁止に関連する決まりがあるためNTT自体がISPになって通信を一本化するということもできない。
*しかし、直接ではなくNTTグループ会社の一部がISPとなることはOK
▼覚えておきたい前提知識
・日本の場合、IPoEに対応しているのはIPv6のみ
→これによりIPv4単体ならPPPoEは必須となる
・日本は回線提供会社とISP事業会社が分かれている
→これによりISPはL2TP over PPPの認証が必要になる。=L2TP over PPPを使った認証が必須
・海外は回線とISPが一本化されている
→これにより回線でユーザを識別できるのでL2TP over PPPの認証が不要。=IPoEが当たり前
・IPv6を使う
→IPoEが使える→回線単位での認証が可能になる→L2TP over PPPで認証することが不要になった
*回線でユーザを認識し、その情報をISPと共有することでISP側は認証をすることなく通信の中継ができるようになる。
Q.PPPoEとは?
PPPoEは、PPP over Ethernetの略。要はイーサネット上でPPPを実現する技術。
まず、PPPとは1対1用の認証プロトコル。
次にイーサネットとは1対多の通信規格。
*注意点として、GRE over IPsecのように2つの独立したプロトコルをただ重ねたわけではないということ。GREヘッダがあって、その上にIPsecヘッダがあるみたいな構造とは違った構造をとるのがPPPoE。PPP over EthernetとはPPPの上にEthernetという規格を重ねたことを意味するのではなく、PPPoEという単一の専用プロトコルを意味している。つまり、PPPoEヘッダという単一のヘッダが存在しているということ。
▼PPPoEのパケット構成
一番外側(道路を走るための封筒)
└─①【イーサネットヘッダ】(送信元/宛先 MACアドレス、EtherType: 0x8864)
└─②【PPPoEヘッダ】(Ver, Type, Code, Session ID など 6バイト)
└─③【PPPヘッダ】(Protocol ID, 認証データなど)
└─④【IPヘッダ】(送信元/宛先 IPアドレス)
└─⑤【データ本体】(Webサイトのデータなど)このように、PPPoEは独自のPPPoEヘッダが存在していることがわかる。また、そのPPPoEヘッダ内にあるSession IDがトンネルの役割を担い、論理機的な1対1通信を実現している。
▼IPoEとPPPoEの違い
【旧:PPPoEの道路】
[あなたの家] ─(光回線)─> [NTT網] ─> ★【網終端装置(激狭の関所)】 ─> [ISP] ─> [ネット]
※夜間になると、この「網終端装置」に全員の通信が集中して大渋滞が発生していた!
【新:IPoEの道路】
[あなたの家] ─(光回線)─> [NTT網] ────────> 🚀【大容量GW(爆広の高速道路)】 ─> [ISP] ─> [ネット]
※激狭の関所を完全にバイパス(迂回)して、スカスカの巨大ゲートウェイを通る!| 比較項目 | PPPoE(旧世代) | IPoE(現代) |
| 接続認証 | ID/パスワード(セッション管理) ステートフル | 回線IDによる事前自動照合(顔パス) ステートレス |
| 通過する設備 | 混雑しやすい「網終端装置」 | スカスカな「大容量ゲートウェイ」 |
| 夜間の速度 | 渋滞で激遅になりやすい | 常に安定して爆速 |
| ルータ設定 | ID/PASSの手動入力が必要 | ケーブルを挿すだけ(自動) |
| MTU(パケットサイズ) | 1454バイト(オーバーヘッドあり) | 1500バイト(フルサイズで転送可能) |
| 10G回線対応 | 不可能(CPU処理が追いつかない) | 完全対応 |
PPPoEの最大のボトルネックは網終端装置である。一方、IPoEでは大容量ゲートウェイであるため、大量の通信を混雑なく実行できる。そのため現在ではIPoEが主流になっている。しかし、ここで1つの疑問が浮かぶ。「いや、じゃあPPPoEでも終端装置の性能あげればよかったじゃん。なんでしなかったの?」と。では、その疑問を答えていこう!
Q.PPPoEではなぜ網終端装置を改修しなかったのか
PPPoEの最大のボトルネックは網終端装置。それが原因で今ではIPoEが主流になりほぼ利用されなくなってしまった。「いや、じゃあPPPoEでも終端装置の性能あげればよかったじゃん。なんでしなかったの?」と。それには、「日本の法規・契約の壁」「技術的な限界」「コストの壁」という3つの巨大な理由があったため、最終的に「PPPoEを諦めて、IPoEという新しい仕組みを作った方が早い&安い」という結論になったのだ。
理由1:ルールがガチガチだったから
網終端装置(NTE)はNTTの持ち物だが増設するためのルールは総務省とNTTの間で厳格な取り決めがあった。それが「通信料ではなくセッション数(契約者数)が増えないと増設してはならない」というもの。しかし、スマホ、YouTube、ゲームの普及により1人のユーザが大量のデータ通信をするようになり、そのルールでは対応しきれないという問題が生まれるのは時間の問題となった
理由2:技術の限界
PPPoEはユーザのセッション情報(接続状態、認証情報)をステートフルにメモリに保存しなければならない。そのため大量のユーザが接続してくると、セッション処理などで莫大なメモリ、CPUを消費してしまう。10Gbps、100Gbpsといった超巨大なデータを流しながら、何万人分の状態管理をミリ秒単位で行う機器は、技術的に作るのが超難しく、CPUやメモリに莫大な負担がかかる。
理由3:国の戦略・コスト
枯渇しきった旧世代のIPv4(PPPoE)にこれ以上投資するよりも、IPv6へ一気に日本全体を移行させたいという政策的な狙いがあった。
Q.なぜ日本ではIPv4のIPoEができなくて海外ではできるの?
海外では当たり前のようにIPv4でIPoEが実施されている(そもそも当たり前すぎてIPoEという概念すらない)。でも、日本ではなぜかIPv6でしか実現できない。それはなぜ?
理由1:構造・法律の壁
海外:回線とプロバイダ(ISP)が一本化されているため、クライアントのルータが起動した瞬間に自社のDHCPサーバでIPv4(またはCGNAT用プライベートIPv4)を割り当てる。
日本:日本の法律によってNTTはプロバイダ業務(IPアドレス変換、認証など)を実施してはならない。そのため、NTTにぶら下がっている大量のプロバイダに適切に振り分ける仕組みが必要だった。
理由2:アドレス数の限界
海外ではIPv4が枯渇した後も、プロバイダ専用のプライベートIPv4あどれs(100.64.0.0/10=419万)を割り当ててCGNATしていた。
*10.0.0.0/8などの一般プライベートIPは、各家庭のWi-Fi(LAN)と衝突するのでWAN側では使えない。
海外:NYエリア、LAエリアのように地域ごとに網が分割されているため、各地域で約419万のプライベートIPを何度も使いまわせた
日本:NTTのNGNには全国2,000万人以上が1つのネットワークにつながっている。そのため、419万しかないプライベートIPを使うと重複が起こり通信が壊れる。つまり、どうしても一世帯に1つのIPアドレスが必須。
*なおポート番号の範囲をユーザごとに割り振ると、識別できそうだが2000万人すべての通信をTCP層まで見ようとするとCPUに大きな負荷がかかる。そのため基本的にはL3のIPのみの通信を前提に考えるべき
まとめると、IPoEではユーザID/パスワードの認証ではなく、IPアドレスベースの認証をすることによって処理を軽くしている。つまり、IPoEはIPアドレスが基盤なのでそれが安定して割り当てられなかったら、そもそもIPoEは機能しないよねってこと!
p.3 広域イーサネットサービス網とは?
広域イーサネットサービスについての説明では、「超大きなL2スイッチに接続できるサービス」と表現されることが多い。要は、物理的につながっていない拠点間同士でも、あたかも同一L2スイッチに接続しているように、同一サブネットとして振舞えるということである。では、それは内部でどのような処理が行われているのだろう?それを以下で見ていこう!
▼大まかな流れ
【東京本社】
[ 自社L2スイッチ ]
│ (LANケーブル)
[ ONU (回線終端装置) ]
│
│ ① アクセス回線(NTTが敷いた電柱の光ファイバー)
▼
┌──────────────────────────────────────────────┐
│ NTT東京局舎(近くの電話局) │
└──────────────────────────────────────────────┘
│
│ ② POI(NTTとソフトバンクの建物を結ぶ光ケーブル)
▼
┌──────────────────────────────────────────────┐
│ ソフトバンク・コアネットワーク │
│ (全国を結ぶ巨大な仮想L2スイッチ) │
└──────────────────────────────────────────────┘
│
│ ③ POI
▼
┌──────────────────────────────────────────────┐
│ NTT大阪局舎(大阪の電話局) │
└──────────────────────────────────────────────┘
│
│ ④ アクセス回線(NTTの光ファイバー)
▼
[ ONU ] ─── [ 自社L2スイッチ ]
【大阪支店】p.4 ルータBは、OSPFv2でデフォルトルートを配布している
これの意味は、字義通りデフォルトルートの配布である。では、なぜわざわざ明示的にしているかというと、通常のルート広告とは種類が違うからである。
OSPFにおいて経路の有効化はインタフェース単位で行う。しかしデフォルトルートはインタフェースに紐づくものではないため特別なコマンドを明示的にする必要がある。そのような背景から本文のような「ルータBは、OSPFv2でデフォルトルートを配布している」という文章になる。
#OSPFにおけるデフォルトルートの配布方法
router ospf 1
default-information originateまた、上記コマンドはデフォルトルートを保持しているルータのみの設定でよい。配下のルータは上記コマンドを設定しなくても自動で配下へと反映する
p.4 IPv4とIPv6のデュアルスタック
IPv4とIPv6のデュアルスタックとは一つの機器がIPv6とIPv4の両方に対応できるような構成のこと。具体的には、一つの機器にIPv4とIPv6のIPアドレスを割り当てたりすることが該当する。これによって、2つのプロトコルに対応できるようになる。
p.6 SLAAC
SLAACはStatelessAddressAutoconfigurationの略。DHCPサーバを使わずにルータと端末とのやり取りだけで、動的にIPv6アドレスを作り出す仕組みのこと。
p.8 SなんでIPv6の名前解決になるとIPv4よりも大きなサイズになるの?
基本的なDNS構成はIPv4だろうとIPv6だろうと変わらないではなぜこのようなことが起きるのか。。。では、見ていこう!

原因1:アドレス長の違い
IPv4は32bitでIPv6は128bitで構成されている。そのため、レコードに記録する根本的なデータ量が変わってくるのは必然と言える。
原因2:逆引き
逆引きをする際に、IPv4であれば約20バイト程度で済んだが、IPv6の場合は約75バイトなので、そういった面でもデータサイズが大きくなることがある。
Q.逆引きとは
逆引きとは、IPアドレスからドメインを解決することである。では、逆引きが使われるケースを見ていこう!
▼逆引きが使われるケース
1.迷惑メール対策
①example.comからメールが届く
②送信元アドレスから逆引きをする
③逆引きで得られたドメインと送信元のドメインが一致することを確認する
④一致していたら→正当の可能性あり 不一致なら→偽装
2.ログ解析
ログとしてIPアドレスだけを残すとどこからのアクセスか判断できない。そのため、逆引きをしてドメイン名を明らかにした上でログに残すという手法もある。
このような使われ方があります。
▼逆引きの流れ
192.0.2.1を逆引きする例を一緒に見ていこう!
1.逆引き用の文字列を作る
①アドレスを逆さにする(192.0.2.1→1.2.0.192)
②逆引き専用のドメインをつける
IPv4の場合→.in-addr.arpaなので1.2.0.192.in-addr.arpa.
IPv6の場合→.ip6.arpa.
2.ルートドメインへ問い合わせ
1クライアント→ルートドメイン
「1.2.0.192.in-addr.arpa.のPTRレコードくださーい」
2.ルート→クライアント
「そのPTRレコードは知らないけど、.in-addr.arpaの管理ならIANAが持ってるよ」
返されるデータ:
IANAサーバのNSレコード+そのサーバのA/AAAAレコード
*IANA:IPアドレスを配布する世界で1番上に存在する元締め。この下にJPNICやらの地域ごとのアドレス割り当て機関がある
3.IANAへ問い合わせ
1クライアント→ルートドメイン
「1.2.0.192.in-addr.arpa.のPTRレコードくださーい」
2.ルート→クライアント
「そのPTRレコードは知らないけど、192.in-addr.arpaの管理ならアジアのAPNIC/JPNICのDNSサーバが持ってるよ」
返されるデータ:
APNIC/JPNICサーバのNSレコード+そのサーバのA/AAAAレコード
4.JPNICへ問い合わせ
1クライアント→ルートドメイン
「1.2.0.192.in-addr.arpa.のPTRレコードくださーい」
2.ルート→クライアント
「そのPTRレコードは知らないけど、0.192.in-addr.arpaの管理なら○○プロバイダのDNSサーバが持ってるよ」
返されるデータ:
○○プロバイダのNSレコード+そのサーバのA/AAAAレコード
5.プロバイダ
1クライアント→ルートドメイン
「1.2.0.192.in-addr.arpa.のPTRレコードくださーい」
2.ルート→クライアント
「あ、そのIPはうちのお客さんのIPだねPTRレコードはmail.example.comだよ」
返されるデータ:
PTRレコード
これが主なPTRレコードの流れである。
Happy Eyeballsとは
本文には一切出てきていないが、IPv6とIPv4のDNSに関するレコードの選択アルゴリズムの用語としてHappyEyballsは有名なので覚えておこう。
HappyEyeballsとは「AレコードとAAAAレコードのどっちを使うかの切り替え機能」である。基本的にDNSではIPv6が優先される。しかし、IPv6と接続できない場合はIPv4に切り替えたほうが効率がよい。そのため、その切り替え機能がHappyEyeballsというわけである。
p.8 SIPv6アドレスをキャッシュDNSサーバに割り当てなくてもいい理由

本文にも書いてある通り、IPv4ネットワークを使ってキャッシュDNSサーバにアクセスしたうえで、AレコードやAAAAレコードを取得すればよいだけなのでわざわざアドレスを割り当てる必要はない。要は、問い合わせに使うネットワークの種類と応答レコードの種類は独立なのでIPv6アドレスを割り当てる必要はないよということ。
*しかし、これはあくまでも現状のデュアルスタックを前提にした話。もし、IPv6への完全移行をするならば、IPv6アドレスの割り当ては必須。
Q.MAP-EとDS-Liteとは
MAP-EとDS-LiteはIPv4の弱点をカバーしてIPv6でISPまで届けようとする仕組み。
IPv4はPPPoEによる仕様によってNTEと呼ばれる終端装置を通らなければならない。しかし、そこがボトルネックとなりIPv4の速度を落としている。
IPv6であればIPoEという技術が使えるため、NTEを通らない代わりに新たな大きなゲートウェイを通すため混雑を抑えられる。
そのような背景から、IPv4をIPv6で包んで回線を流せば混雑抑えられるじゃん!ということでMAP-EとDS-Liteという技術がある。
▼MAP-Eの流れ
【自宅 PC】
│ (1) 普通のIPv4通信(例: ポート80宛て)
▼
【宅内ルーター(MAP-E対応)】★ここで大仕事!
│ (2) 自分に割り当てられた「IPv4アドレス」と「指定ポート番号」へNAT変換
│ (3) それをIPv6の封筒で包む(カプセル化)
▼
【NTT NGN網(IPoEの大通り)】
│ スイスイ通過(NTEを通らない!)
▼
【VNE(接続事業者)】
│ (4) IPv6の封筒を破いて脱がすだけ(カプセル解除)
▼
【IPv4 インターネット】▼DS-Liteの流れ
【自宅 PC】
│ (1) 普通のプライベートIPv4通信(例: 192.168.1.10)
▼
【宅内ルーター(DS-Lite対応)】★超シンプル!
│ (2) NAT変換はせず、そのままIPv6の封筒で包む(カプセル化)
▼
【NTT NGN網(IPoEの大通り)】
│ スイスイ通過(PPPoEのNTEを通らない!)
▼
【AFTR(VNEの大型CGN設備)】★ここで全員分を大処理!
│ (3) IPv6の封筒を破く(カプセル解除)
│ (4) 大型NAT設備(CGN)で、公有のグローバルIPv4へアドレス&ポート変換!
▼
【IPv4 インターネット】
