View
982
Download
1
Category
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