39
Copyright © NTT Communications Corporation. All rights reserved. 誰でも使える サーバーサイド Open NAT64実証実験報告 (Open NAT64 Experience Report) JANOG46 Okinawa 2020 8/27 Kaname NISHIZUKA, NTT Communications @__kaname__

Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved.

誰でも使える サーバーサイドOpen NAT64実証実験報告(Open NAT64 Experience Report)

JANOG46 Okinawa 2020 8/27Kaname NISHIZUKA, NTT Communications

@__kaname__

Page 2: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 2

なぜ今NAT64か?

NAT64が活躍するユースケース

NAT64/DNS64によるIPv4接続(IPoE)

コンテンツのIPv6対応手法

IPv6 Onlyインフラ

NAT64

Page 3: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 3

[復習]NAT64とは?

IPv6空間のクライアントから、IPv4空間のサーバへの通信を可能にする仕組み

NAT64 サーバクライアント

IPv6 IPv4

宛先:2402:c800:fe01:64::808:808

宛先:8.8.8.8

NATプールアドレス(IPv4)

• NAT64 prefix(/96) と IPv4アドレスを組み合わせたIPv6合成アドレス(IPv6 Synthesis address)を宛先とする

• IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる• IPv6合成アドレスがAAAAレコードに設定されていればIPv6クライアントは通信可能

• DNS64は、AAAAレコードが存在しないときに、AレコードからIPv6合成アドレスを生成して返してくれるフルリゾルバ

Page 4: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 4

本実験での NAT64/DNS64 アドレス情報

NAT64 prefix:2402:c800:fe01:64::/96

Pool IPv4:163.138.237.48/28

DNS64:2402:c800:fe01:a10::53

解説記事:秒でサイトのIPv6対応ができる!サーバサイド Open NAT64を公開した話https://qiita.com/__kaname__/items/0c77fb3b5fb01a796a4b

Page 5: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 5

なぜ今NAT64か?

NAT64が活躍するユースケース

NAT64/DNS64によるIPv4接続(IPoE)

コンテンツのIPv6対応手法

IPv6 Onlyインフラ

NAT64

Page 6: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 6

コンテンツのIPv6対応

対象:サービスのIPv6化を検討しているコンテンツ事業者

サーバ自体へのIPv6アドレス付与をしない場合• CDN事業者を利用したIPv6化• ロードバランサ(SLB64)を利用したIPv6化※SLB64: Server Load Balancer 64IPv6でのアクセスをIPv4サーバに振り分けるロードバランサ

Open NAT64/SLB64を使うのはどうか?

Page 7: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 7

コンテンツのIPv6提供形態CDN型

LB

コンテンツサーバ

Users(IPv4/IPv6)

コンテンツサーバ

コンテンツサーバ

IPv4

IPv6

(IPv4)

(IPv4)

CDN

Page 8: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 8

コンテンツのIPv6提供形態slb64型(パブリッククラウドなど)

LB

コンテンツサーバ

Users(IPv4/IPv6)

コンテンツサーバ

コンテンツサーバ

(IPv4)

(IPv4)

SLB64

(IPv6)

IPv4

IPv6

Page 9: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 9

コンテンツのIPv6提供形態Open NAT64型(New)

LB

コンテンツサーバ

Users(IPv4/IPv6)

コンテンツサーバ

コンテンツサーバ

IPv4

IPv6

(IPv4)

(IPv4)

NAT64 IPv4

NAT64のIPv6合成アドレスをAAAAレコードに登録するだけ!

Page 10: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 10

コンテンツのIPv6提供形態Open slb64型(New)

LB

コンテンツサーバ

Users(IPv4/IPv6)

コンテンツサーバ

コンテンツサーバ

IPv4

IPv6

(IPv4)

(IPv4)

SLB64

Page 11: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 11

なぜ今NAT64か?

NAT64が活躍するユースケース

NAT64/DNS64によるIPv4接続(IPoE)

コンテンツのIPv6対応手法

IPv6 Onlyインフラ

NAT64

Page 12: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 12

IPv6 Onlyインフラ

対象:サーバをIPv6 Onlyにしたいコンテンツ事業者• (大規模で、IPv4アドレスが枯渇しており)DC内の

IPv6化を検討している

IPv4空間に接続するために、IPv6 Onlyのサーバインフラは、NAT64/DNS64を利用する必要がある。

※インターネット上のOS/パッケージの取得や、IPv6対応していないミドルウェア(例:Hadoop)など

Page 13: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 13

仮説

コンテンツ事業者のIPv6 onlyへの移行シナリオにはNAT64が出てくるのではないか?

• コンテンツ事業者は、「コンテンツのIPv6化」の後、「IPv6 Onlyインフラ」に向かう

• 2つのユースケースは同じNAT64のプラットフォームで提供できるのではないか?

Page 14: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 14

Open NAT64実証実験 企画趣旨

Open な誰でも使えるNAT64を公開する

コンテンツのIPv6対応のシナリオを検証する

実験結果についてコミュニティに広くフィードバックする

Page 15: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 15

Open NAT64実験概要

Page 16: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 16

構築と物理構成

2019.12〜 提供開始ささっと設計して半日で構築眞野さん(A10)ありがとうございます!

NW提供:NTT Com- 帯域1G- NTT大手町本館機器提供:A10ネットワークス様- TH4430S * 2台(冗長)

HA-link

floating-ip(v4/v6)

NAT64

L3 SW(v4/v6 dual)

1G*2本 LAG

Page 17: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 17

提供にあたっての検討事項

1. ロケーション2. Path MTU Blackhole問題3. NATログ4. SLB機能をONにするAPIを公開するアイデア5. Abuse/アクセス制限/DDoS対策

Page 18: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 18

検討事項1.ロケーション

本実験(大手町)- 都内からの遅延: 10ms程度

NAT64/DNS64 public test by go6lab (Slovenia)- 都内からの遅延: 250ms程度

今までは気軽に試せるOpen NAT64は海外にしかなかったが、遅延が問題だった→国内にNAT64を配置することで利便性が向上

https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/

Page 19: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 19

検討事項2. Path MTU Blackhole問題

Packet Too BigメッセージがIPv4空間に変換されないため、Path MTU Blackhole問題が発生する

IPv4サーバ

[参考]Path MTU Blackholeで阿部寛様のご尊顔が表示されない!https://qiita.com/__kaname__/items/f1e9d1da965c003c7669

Page 20: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 20

検討事項2. Path MTU Blackhole問題

対策: NAT64装置でMSS-clampingを実施- PPPoE IPv6に対応可能なMSS=1394に固定- `cgnv6 nat64 tcp mss-clamp fixed 1394`

Page 21: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 21

検討事項3. NATログ

NATサービスにおけるログ保存の重要性- 発信者情報開示請求への対応

ログ提供の重要性- コンテンツサーバからは、NATプールアドレスからのアクセスにしか見えない- ユーザアクセス分析のために(CDN事業者のような)分析情報の提供が求められると想定される

Page 22: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 22

NATログ 収集・蓄積構成

BigQueryCloud Pub/Su

b

Container EngineNAT log

kafka

syslog

syslog

Cloud

On-Prem

Page 23: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 23

NATログ(BigQuery)

Page 24: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 24

ダッシュボード(BigQuery+metabase)

Page 25: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 25

検討事項4. SLB機能をONにするAPIを公開するアイデア

SLB64も同一の機器構成で提供可能

SLB64の設定(IPv6アドレス→IPv4サーバプールの設定)をAPI公開することで、サーバのIPv6対応を自動化できるのではないか?

アイデアはあったものの実験協力者が現れなかったため、検討のみ

Page 26: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 26

検討事項5. Abuse/アクセス制限/DDoS対策

Openであることの引き換えにAbuseの可能性- 送信元の隠蔽- 日本国内からのアクセスへの偽装対策:- NATログ/トラフィックの監視- 問題が発生した際には、実験協力者の宛先IPv4向けの通信のみ許可するようにアクセス制限を検討

DDoS対策:- 今回は実施せず今回の実験期間では問題は発生しなかった

Page 27: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 27

統計情報

Page 28: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 28

グラフ①ユーザー数・新規コネクション数/秒

0

2

4

6

8

10

12

14

0:06

:04

12:4

7:04

1:32

:03

14:1

6:04

2:52

:03

15:3

5:04

4:14

:04

16:5

9:04

5:40

:04

18:2

1:04

7:04

:03

19:5

0:04

8:35

:04

21:1

9:04

9:59

:04

22:4

3:04

11:2

1:04

23:5

9:04

12:4

4:04

1:24

:04

14:0

4:04

2:47

:04

15:3

2:04

4:12

:03

16:5

2:04

5:32

:03

18:1

4:03

6:58

:03

19:3

9:04

8:21

:03

21:0

1:04

9:40

:03

22:2

0:04

11:0

4:04

23:4

6:04

12:2

6:04

1:08

:04

13:5

0:04

2:36

:04

15:1

8:03

3:57

:04

16:4

5:03

5:26

:04

18:0

7:04

6:54

:04

19:3

8:04

8:17

:04

21:0

1:03

9:40

:04

22:2

0:04

11:0

4:04

23:4

7:04

12:2

7:04

1:12

:04

13:5

3:04

2:35

:04

15:1

7:04

3:57

:03

7/15 7/16 8/14ユーザー数 新規セッション/秒

Page 29: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 29

グラフ②同時TCPコネクション数・UDPフロー数

0

10

20

30

40

50

60

70

80

0:06

:04

13:0

3:04

2:02

:04

15:0

2:04

3:53

:04

16:5

0:04

5:45

:04

18:4

6:04

7:42

:04

20:3

9:04

9:38

:04

22:3

9:03

11:3

9:04

0:35

:04

13:3

2:04

2:31

:04

15:2

3:04

4:19

:04

17:1

7:04

6:13

:04

19:0

8:04

8:08

:04

21:0

7:04

10:0

1:04

22:5

6:04

11:5

4:04

0:51

:04

13:5

0:04

2:45

:04

15:4

2:04

4:35

:04

17:3

3:04

6:30

:04

19:2

7:04

8:24

:04

21:2

0:04

10:1

4:04

23:1

8:04

12:1

5:04

1:08

:04

14:1

3:03

3:09

:04

16:0

6:03

5:06

:03

18:0

7:04

7:01

:04

20:0

0:04

8:53

:04

21:5

0:04

10:4

9:04

23:4

7:04

12:4

3:04

1:43

:04

14:4

0:04

3:37

:04

16:3

2:04

5:29

:04

7/15 7/16 8/14

同時TCPコネクション数 同時UDPセッション数

Page 30: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 30

グラフ③CPU使用率、スループット(Mbps)

0.0

10.0

20.0

30.0

40.0

50.0

60.0

70.0

0.0%

0.0%

0.0%

0.1%

0.1%

0.1%

0.1%

0.1%

0.2%

0.2%

0.2%

0:01

:04

12:5

9:03

1:52

:04

14:4

9:04

3:44

:04

16:4

4:04

5:40

:04

18:3

6:04

7:34

:04

20:3

7:04

9:37

:03

22:3

4:03

11:3

0:04

0:28

:04

13:2

1:04

2:17

:04

15:1

4:04

4:11

:04

17:0

7:04

6:05

:03

19:0

4:03

7:59

:03

20:5

4:04

9:52

:04

22:4

9:04

11:4

8:04

0:44

:04

13:4

2:03

2:34

:03

15:3

1:04

4:28

:04

17:2

5:04

6:23

:04

19:1

8:04

8:11

:04

21:1

5:03

10:1

4:04

23:0

6:04

12:1

1:04

1:08

:04

14:0

5:04

3:04

:04

16:0

4:04

4:58

:04

17:5

7:04

6:52

:04

19:4

8:04

8:47

:04

21:4

4:04

10:4

1:04

23:3

9:04

12:3

8:04

1:34

:04

14:3

0:04

3:27

:04

CPU Usage(%) Throughput(Mbps)

1ヶ月間(7/15〜8/14)のCPU使用率、スループット(Mbps)Throughput(Mbps)CPU Usage

Page 31: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 31

アンケート結果

Page 32: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 32

アンケートを実施(4件の回答)

Page 33: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 33

アンケートを実施(4件の回答)

Page 34: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 34

アンケートを実施(4件の回答)

Page 35: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 35

アンケートを実施(4件の回答)

Page 36: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 36

応援メッセージ

IPv4しか提供していないサービスのIPv6対応がこれでできます。たいへんありがたいです。

IPv6利用に制限あるサービスでも利用出来てありがたいです。

できれば今後も負担にならない程度にサービスを継続していただけるとありがたいです。

可能であれば高速な回線へと切り替えて欲しい。

頭では理解していましたが、実際に試すことが出来て、楽しかったです。商用化されても実験ベースで利用できるとありがたいと思いました。

Page 37: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 37

商用化の予定はありますか?

ありません!

Page 38: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 38

最後に

快く機材を提供いただいたA10ネットワークス様に深く感謝します。

Always Secure. Always Available.

Page 39: Open NAT64実証実験報告 - JANOG...Synthesis address)を宛先とする • IPv4パケットの送信元アドレスはNAT64に設定されたプールアドレスになる

Copyright © NTT Communications Corporation. All rights reserved. 39

おまけ:ざっくり計算

今の設備で200万円/月の収益を目指すAAAAレコード課金の場合- 今回のAAAAレコード: 約10- NAT64装置の本来の収容能力: 10000倍→20円/月/AAAA 程度?(トラフィック量の多いAAAAレコードが無い前提)

セッション数課金の場合- 今回のセッション数: 10万セッション/月- NAT64装置の本来の収容能力: 10000倍→200円/月/10万セッション 程度?