raspi + soracom #pakeana33

Preview:

Citation preview

SORACOM Air で #pakeana したら 分かったこと

2015/10/19 #pakeana @otsuka752 (@twovs)

agenda• 自己紹介

• what’s SORACOM? (ソラコム?)

• RasPi + SORACOM の準備と接続

• パケットを見たら分かったこと

1. Interface 2. DNS 3. 外部との通信

4. NAPT-Box 5. MTU 6. TCP-MSS

about me• @otsuka752 (@twovs) IHANet AS#64613

• ネコ+奥さん+娘

• 無線LAN 装置の開発(1999-2004)

• オンラインゲームのシステム管理者(2004-2015)

• クラウドの中の人(2015-)

• http://tcpreplay.jp/ やってます

好きなパケット

•ESP

•SSL/TLS

what’s SORACOM? (ソラコム?)

(続きは Web で…)

【抜粋】https://blog.soracom.jp/

【抜粋】https://blog.soracom.jp/

server SORACOM

DoCoMo3G

システム概要

準備

• Raspberry Pi B+

• Rasbpian GNU/Linux 7

• Willcom HX003ZT (3Gモデム)

• SORACOM Air SIMカード

接続

• sudo apt-get update

• sudo apt-get install wvdial usb-modeswitch

• sudo vi /etc/wvdial.conf

• sudo ip route del default

• sudo wvdial

※ DefaultGW は家のルータに向けない

パケットを見たら 分かったこと

見なくても

1. interface

• 10.x.y.z (プライベートアドレス)

• Point-to-Point Protocol (/32)

• peer 10.64.64.64/32

• DefaultGW dev ppp0 (via 192.0.2.1 でない)

2. DNS

• DNS Cacheサーバ : 169.254.0.53

• 「たぶん」unbound 1.4.22 (1.4 系の現時点での最新)

• 少なくとも 16台にロードバランス

• 全て AWS/EC2

• Cache に乗っていない ${RANDOM} な名前で

• 自分管理のドメイン名を問い合わせる

• 自分管理の DNSサーバで tcpdump すれば

• DNS Cache サーバの SrcIP/台数が分かる

3. 外部との通信

• AWS の(EC2 の)アドレスに NAPT される

• NAPT されて The Internet と通信可

• The Internet から RasPi へは不可

※ API で速度切替可(32/128/512/2048[kbps])

server SORACOM

4. NAPT-Box

NAPT

NAPT

SORACOM server

• 外部から NAPT-Box へは通信不可

• 内側からは NAPT されて外部へ

• NAPT table がある時は外部からも可(戻りのパケット)

10.215.173.222:1

10.215.173.222:2

10.215.173.222:1024

10.215.173.222:1025

myserver:9999

myserver:9999

myserver:9999

myserver:9999

NAPT

tcpdump

• 「基本的には」SrcPort は変換されない

• 下記が SrcPort だとサーバにパケットが届かない

• 「たぶん」NAPT-Box で使われている

• 22, 80, 137, 138, 1900

• >1023 は「少なくとも観測時は」全て届いた

4. NAPT-Box

10.215.173.222:12345 myserver:9999

NAPT

10.215.173.222:12345 myserver:9999

UDP : 15[sec] TCP : 600[sec] ※ 他機器の timeout 値も要考慮

※ 例えば AWS/ELB は 60[sec]

tcpdump

• NAPT session timeout

• UDP は 15[sec]

• TCP は 600[sec]

• ICMP は…未測定(hping3 bug ってた)

4. NAPT-Box

5. MTU

• MTU = 1464[Byte]

• ping -s 1436 の時が最大

• IP(20)+ICMP(8)+Payload(1436)=1464

RasPi から 1436[Byte]指定で ping 送信=OK

myserver にも届いている(応答している)

myserver にも届いていない

RasPi から 1437[Byte]指定で ping 送信=NG

5. MTU

• MTU = 1464[Byte]

• ping -s 1436 指定が最大

• IP(20)+ICMP(8)+Payload(1436)=1464[Byte]

• SORACOM で TCP-MSS を書き換えてる

• RasPi から TCP-MSS=1460 で送信しても

• 「たぶん」NAPT-Box が 1350 に書き換える

• 「たぶん」AWS/VPC と Flet’s網を考慮

6. TCP-MSS

NAPT-Box 通過前(RasPi が送信した最初の SYN)

NAPT-Box 通過後(サーバが受信した最初の SYN)

• Flets’(1454) < SORACOM(1464)なので

• AWS/VPC + Flet’s網に最適な MSS にしてる(?)

• 参考

http://d.hatena.ne.jp/j3tm0t0/20111108/1320776609

http://jpn.nec.com/univerge/ix/faq/ipsec-ike.html#Q1-8

6. TCP-MSS

ところで…

中古の 3G モデムが 値上がり中!?

SORACOM 効果?

Willcom XT003ZT

少し余ってます

懇親会で 差し上げます!

END

Recommended