nw-jaws 勉強会#2 [lt] あの日したltの内容を僕らはもう覚えていない
TRANSCRIPT
Copyright © NHN Techorus Corp.
あの日したLTの内容を僕らはもう覚えていない
Page 2
自己紹介
岩渕 昇
2010年11月 ライブドア(現NHNテコラス)入社
ビジネスコネクト(法人向け閉域 / IP接続)livedoor Wireless(終了)livedoor プロバイダ(終了)CLOUD CONNECT / CAMPUS4ネットワーク設計・構築案件など
主にネットワーク案件を担当
虎ノ門に引越します(2017/5)
Page 3
オリンピック・サッカー・野球の日本代表戦がはじまると
何故か遅くなる会社のインターネット
PHS?ISDN?いえ、知らない子ですねATMってお金出て来るあれですよね
そんなネットワークエンジニアのみなさん!!
おげんきですか!!
今日もイックニイチロッパって言ってますか!!社長のIPアドレス4オクテット目は1にしてますか!!
ごあいさつ
Page 4
Previous LT
http://www.slideshare.net/DATAHOTEL/nwjaws-1-lt
Slideshareにおいてあります。
Page 5
NTT東日本さんの「クラウドゲートウェイアプリパッケージ」※1
をつかって、NGN網内折り返しIPv4 over IPv6 IPsecをしたいの
使用機種はDynamic DNS的ななにかができそうな機能のあるルーター
みんな大好き♥ Yamaha の RTX1210
こいつ・・・動くぞ!(Luaが)
※1 https://flets.com/cloudgateway/applipackage/
ざっくりいうと
Page 6
で
進捗Doですか?
Page 7
NGN網 IPv6アドレスの課題 (おさらい)
プレフィクスが変わる「可能性がある」(変わるとはいっていない)
1111:2222:3333:4444:aaaa:bbbb:cccc:dddd
半固定らしいっす
Page 8
サブドメインでDNSの委譲ができます[*******].hikaricloud.cast.flets-east.jp
↑ 契約固有の文字列
クラウドゲートウェイアプリパッケージは
Page 9
ざっくりとした流れ
IPsec設定をFQDNで記載すれば(名前解決できる前提)Route53のレコードを変更できれば再接続される(はず)
つまり万が一にも深夜にプレフィックス変更が起こっても※2障害エスカレーションで叩き起こされることはない(希望的観測)
※2 プレフィックスが変更される場合って、(自主規制)が(自主規制)ってことだから事前に(自主規制)が行われるはず
Page 10
_人人人人人人_> 言うは易し < ̄Y^Y^Y^Y^Y^Y^ ̄
Page 11
というわけでテスト構成
IPv4
router1 router2
NGN 網
IPv4
拠点間VPN(v4 over v6 IPsec)
フレッツキャストDNShikaricloud.cast.flets-east.jp
Route53 Private DNS
ns(DNS forwarder)
Zabbix(兼Web)Public Subnet
Private Subnet
Page 12
こんな感じで(名前解決)
IPv4
router1 router2
NGN 網
IPv4
拠点間VPN(v4 over v6 IPsec)
フレッツキャストDNShikaricloud.cast.flets-east.jp
Route53 Private DNS
ns(DNS forwarder)
Public Subnet
Private Subnet
委譲hogehoge.hikaricloud.cast.flets-east.jp
転送
ルーターのDNS参照先はnsのIPv6アドレス
Zabbix(兼Web)
Page 13
こんな感じで(Update)
IPv4
router1 router2
NGN 網
IPv4
拠点間VPN(v4 over v6 IPsec)
フレッツキャストDNShikaricloud.cast.flets-east.jp
Route53 Private DNS
ns(DNS forwarder)
Public Subnet
Private Subnet
ルーターのDNS参照先はnsのIPv6アドレス
アドレスに変更があればAAAAレコードを変更する(Route53 API使用)
ルーターが情報を定期的にwebサーバーへPOST(Lua)
Zabbix(兼Web)
Page 14
ルーター側 変態 Luaスクリプト実装例
req_table = {url = "http://web.********.hikaricloud.cast.flets-east.jp./cgap/hoghoge.php",auth_type ="basic",auth_name = “hogehoge",auth_pass = “****",method = "POST",content_type = "application/x-www-form-urlencoded",post_text = “name=router01&serial=abcdefg&id=00123“,
}
rsp_table = rt.httprequest(req_table)
schedule at 1 (スケジュール時間) * lua usb1:/test.lua
test.lua
ルーターには下記コマンドを投入(ルーター側から定期的に情報を通知する)
ルーターの IPv6 アドレスは $_SERVER[“REMOTE_ADDR”] でとれます。
Page 15
サーバー側でテストスクリプト
#!/usr/bin/php -q
<?php$headers = getallheaders();$fp = fopen("./log.txt", "a");
foreach ($headers as $key => $val) {fwrite($fp, $key.' : '.$val."¥n");
}
fwrite($fp, $_SERVER[“REMOTE_ADDR”].“¥n”);
$postdata = $_POST;
foreach($postdata as $key => $val) {fwrite($fp, $key.' : '.$val."¥n");
}
fclose($fp);
Page 16
こんな感じでデータがとれます。
User-Agent : RTX1210/Rev.14.01.09Authorization : Basic ********Content-Type : application/x-www-form-urlencodedContent-Length : 38Connection : closeHost : web.********.hikaricloud.cast.flets-east.jp.Referer : http://web.********.hikaricloud.cast.flets-east.jp./cgap/hogehogephpAccept : */*240b:10:****:****:****:****:****:**** ←RouterのIPv6アドレスname : router1 ←ここからPOSTデータ
serial : abcdefgid : 0012233
Page 17
あとは
定期的に上がってくるIPv6アドレスをチェックして変更されていたらAPIを使ってRoute53上のIPv6アドレスを変更すればよろし
Page 18
なんとじつはYamahaさんのサイトには・・・
http://jp.yamaha.com/products/network/solution/lua/script/
しっててやってましたが
Page 19
課題など
サーバー側の実装の残作業など(例外、ログまわりとか)POSTデータの内容の精査など
YamahaのRTX以外でも動くようにする→ netconf が使える機器かな~
アー キキガナイナーアッ ソウイエバ キョウハ ベンダー ノ カタガタガ キテイマスネ(チラッチラッ
Page 20
ありがとうございました