最近の投稿
人気のページと投稿
アーカイブ
月 | 火 | 水 | 木 | 金 | 土 | 日 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
AWS, Content Delivery Network and Debian
クラウドはクラウドというくらいでネットワークの先に資源があり、そこにたどり着かない限りなんにもならない。そして、世の中遠くのネットワーク資源を使うための工夫は数限りなくある。
B2B的な、通信相手が固定されているなら、AsperaでもSteelheadでもSkeedでも好きなものを使えばいいのだが、マスが相手となるとそうは行かない。TCPを使うしか事実上ない。もっというとHTTP+TCP(よくてHTTPS)をどうするかということに注力するしかない。
で、基礎知識としてはTCP Windowコントロールとなる。自分のブログで “TCP window” で検索→https://debiancdn.wordpress.com/?s=TCP+window すると、けっこう頻繁にTCP Windowコントロールのことを書いているな。。
とはいえパイプ計算機について書いたことがなかったようだ。
Bandwidth-delay Product and buffer size BDP (8.1 Mbit/sec, 80.0 ms) = 0.08 MByte required tcp buffer to reach 8.1 Mbps with RTT of 80.0 ms >= 82.9 KByte maximum throughput with a TCP window of 12 KByte and RTT of 80.0 ms <= 1.17 Mbit/sec. Further readings about network performance in eduPERT knowledge base
まあいわゆるLong-Fat Pipe問題は昔からあるのでいまよんでもおもしろいものがある。また、自分で書いてもいいのだが、かぶってもどうしょうもないので、参考になるものをはっておく
.ssh/configにDynamicForwardなるオプションがあるのを今日しった。
いままでいつもいつも
ssh hostname -D1080
とかしていた。
週末夜はバンダイチャンネルの再生がとまってしまう、動画をみない妻からも「今日遅いねえ」と言われることが多いので、家のVDSLマンションBフレ東京をso-netからi-revoにしてみた。
不思議なのは、pppoeが与えるDNSがAS的には3つもとなりにあること…ってAS2527はso-netではないか。
とはいえ7msecくらいで、IIJの210.130.0.1が15msecくらいなので別にASの中にありゃいいってわけでもないのですが。
AWS東京リージョンまで。
$ traceroute -a x.y.z.w .. 1 [AS1] 10.0.1.1 (10.0.1.1) 0.673 ms 0.374 ms 0.300 ms 2 [AS2497] tokyo10-n04.flets.2iij.net (210.149.34.70) 6.177 ms 5.894 ms 5.480 ms 3 [AS2497] tokyo10-ntteast1.flets.2iij.net (210.149.34.145) 5.421 ms 5.258 ms 5.386 ms 4 [AS2497] tky001lip21.iij.net (210.149.34.101) 5.348 ms 5.239 ms 5.474 ms 5 [AS2497] tky001bb11.iij.net (58.138.100.221) 5.321 ms 5.321 ms 5.244 ms 6 [AS2497] tky008bf01.iij.net (58.138.80.37) 6.185 ms [AS2497] tky008bf00.iij.net (58.138.80.33) 6.138 ms 6.217 ms 7 [AS2497] tky001ip58.iij.net (58.138.82.46) 6.418 ms [AS2497] tky001ip58.iij.net (58.138.82.34) 5.738 ms [AS2497] tky001ip58.iij.net (58.138.82.42) 6.039 ms 8 [AS2497] 202.232.8.166 (202.232.8.166) 6.248 ms 6.566 ms 5.830 ms 9 [AS10026] ge-0-0-0-0.gw3.nrt5.asianetcom.net (202.147.1.54) 5.582 ms 6.039 ms 6.021 ms 10 [AS3549] azn-0002.gw3.nrt5.asianetcom.net (203.192.150.90) 6.447 ms 6.289 ms 6.226 ms 11 [AS16509] 27.0.0.131 (27.0.0.131) 8.220 ms 7.886 ms 7.977 ms 12 [AS16509] 27.0.0.155 (27.0.0.155) 7.577 ms [AS16509] 27.0.0.147 (27.0.0.147) 8.123 ms [AS16509] 27.0.0.155 (27.0.0.155) 7.436 ms 13 [AS16509] ec2-175-41-192-212.ap-northeast-1.compute.amazonaws.com (175.41.192.212) 8.161 ms [AS16509] ec2-175-41-192-20.ap-northeast-1.compute.amazonaws.com (175.41.192.20) 7.918 ms [AS16509] ec2-175-41-192-212.ap-northeast-1.compute.amazonaws.com (175.41.192.212) 7.561 ms 14 [AS16509] ec2-175-41-192-165.ap-northeast-1.compute.amazonaws.com (175.41.192.165) 15.182 ms * 14.835 ms
指定されたDNSサーバまで。
$ traceroute -a 202.238.95.24 traceroute to 202.238.95.24 (202.238.95.24), 64 hops max, 52 byte packets 1 [AS1] 10.0.1.1 (10.0.1.1) 0.681 ms 0.234 ms 0.188 ms 2 [AS2497] tokyo10-n04.flets.2iij.net (210.149.34.70) 5.958 ms 5.952 ms 5.879 ms 3 [AS2497] tokyo10-ntteast1.flets.2iij.net (210.149.34.145) 5.383 ms 5.372 ms 5.181 ms 4 [AS2497] tky001lip21.iij.net (210.149.34.101) 5.345 ms 5.179 ms 5.537 ms 5 [AS2497] tky001bb10.iij.net (58.138.100.217) 11.623 ms 5.464 ms 5.164 ms 6 [AS2497] tky009bf00.iij.net (58.138.80.17) 5.528 ms [AS2497] tky001bf01.iij.net (58.138.80.5) 5.344 ms [AS2497] tky001bf00.iij.net (58.138.80.1) 5.305 ms 7 [AS2497] tky008ix01.iij.net (58.138.80.134) 5.593 ms [AS2497] tky008ix01.iij.net (58.138.80.142) 6.466 ms [AS2497] tky008ix01.iij.net (58.138.80.134) 5.908 ms 8 [AS7521] 210.173.177.5 (210.173.177.5) 6.729 ms 7.117 ms 6.570 ms 9 [AS2914] xe-7-0-2.a20.tokyjp01.jp.ra.gin.ntt.net (203.105.72.9) 6.112 ms [AS2914] xe-6-0-2.a20.tokyjp01.jp.ra.gin.ntt.net (203.105.72.57) 6.545 ms [AS2914] xe-6-0-2.a21.tokyjp01.jp.ra.gin.ntt.net (203.105.72.61) 6.752 ms 10 [AS2914] xe-1-1.a14.tokyjp01.jp.ra.gin.ntt.net (61.120.145.186) 6.949 ms [AS2914] xe-2-1.a14.tokyjp01.jp.ra.gin.ntt.net (61.120.145.190) 7.756 ms * 11 [AS2914] xe-7-4.a14.tokyjp01.jp.ra.gin.ntt.net (61.120.145.10) 16.950 ms 6.887 ms 7.009 ms 12 [AS2527] 202.213.197.45 (202.213.197.45) 6.662 ms 6.648 ms 7.009 ms 13 [AS2527] 202.213.193.206 (202.213.193.206) 6.527 ms 6.778 ms 6.558 ms 14 [AS2527] 202.213.193.106 (202.213.193.106) 8.026 ms 17.213 ms 7.116 ms 15 * * * PING 202.238.95.26 (202.238.95.26): 56 data bytes --- 202.238.95.26 ping statistics --- 6 packets transmitted, 6 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 6.548/6.808/7.162/0.199 ms
みんなだいすきgoogle public dns
$ traceroute -a 8.8.4.4 traceroute to 8.8.4.4 (8.8.4.4), 64 hops max, 52 byte packets 1 [AS1] 10.0.1.1 (10.0.1.1) 0.735 ms 0.307 ms 0.214 ms 2 [AS2497] tokyo10-n04.flets.2iij.net (210.149.34.70) 6.377 ms 6.005 ms 5.490 ms 3 [AS2497] tokyo10-ntteast1.flets.2iij.net (210.149.34.145) 5.565 ms 5.342 ms 5.453 ms 4 [AS2497] tky001lip21.iij.net (210.149.34.101) 110.112 ms 13.689 ms 74.824 ms 5 [AS2497] tky001bb11.iij.net (58.138.100.221) 35.448 ms 5.588 ms 5.225 ms 6 [AS2497] tky008bf00.iij.net (58.138.80.33) 6.191 ms [AS2497] tky001bf01.iij.net (58.138.80.29) 5.416 ms [AS2497] tky001bf00.iij.net (58.138.80.25) 5.298 ms 7 [AS2497] tky001ix05.iij.net (58.138.82.14) 6.146 ms [AS2497] tky008ix05.iij.net (58.138.80.166) 6.408 ms [AS2497] tky001ix01.iij.net (58.138.80.102) 42.693 ms 8 [AS2497] 210.130.133.34 (210.130.133.34) 6.595 ms [AS2497] 210.130.133.38 (210.130.133.38) 36.664 ms [AS2497] 210.130.133.78 (210.130.133.78) 5.591 ms 9 [AS15169] 209.85.249.192 (209.85.249.192) 135.876 ms [AS15169] 72.14.239.48 (72.14.239.48) 5.936 ms [AS15169] 209.85.249.195 (209.85.249.195) 7.018 ms 10 [AS15169] 209.85.255.34 (209.85.255.34) 8.757 ms [AS15169] 209.85.255.58 (209.85.255.58) 9.395 ms 8.633 ms 11 [AS15169] 209.85.255.39 (209.85.255.39) 38.596 ms 40.136 ms 54.381 ms 12 [AS15169] 209.85.243.21 (209.85.243.21) 88.581 ms 39.861 ms [AS15169] 209.85.250.101 (209.85.250.101) 39.359 ms $ ping 8.8.4.4 PING 8.8.4.4 (8.8.4.4): 56 data bytes 64 bytes from 8.8.4.4: icmp_seq=0 ttl=46 time=38.863 ms 64 bytes from 8.8.4.4: icmp_seq=1 ttl=46 time=38.195 ms 64 bytes from 8.8.4.4: icmp_seq=2 ttl=46 time=39.193 ms ^C --- 8.8.4.4 ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 38.195/38.750/39.193/0.415 ms
MPLS Japan 2011に行けなかった(仕事がいそがしすぎ)なので、webを見ると資料がわんさかなのですばらしい。どれもいいのだが、当然ながら技術トレンドは有名なものばかりでいろんな人が書きそうなので、そうじゃないもの2つをメモ.
http://mpls.jp/presentations/MPLS_Japan_2011_Cloud_Networking_1IIJ.pdf IIJの資料。27%が閉域接続。そのうちの4割WAN, 6割VPN。ってこの数字すげえな。さすがIIJ。
http://mpls.jp/presentations/111024-mpls-japan-print.pdf インテックのExage(←ドキュメントへのリンク)。Intec+IDCF+ATworks
“企業というのはファイアウォールの背後で、古い技術によって守られながら業務を遂行している。” 「ファイアウォールの存在が“ソーシャルデバイド”を作りだす – インタビュー:ITpro」 http://nkbp.jp/ndpDYo
IE6が支配する世界とか、オレオレプライベートIP(1.0.0.0とか..)とか、似たような話は多い。
そんな会社もある一方で、VPCをつかって必要なリソースを伸び縮みさせてる会社もあるんだから、世の中はおもしろい。
Varnish3のリリースパーティーも兼ねたTokyo.vclのためにクックパッドさんへ。
その時の様子はtogetterに。はじめての人が集う集会はいろいろむずかしいですなあ。
なぜかイカが表示されないslideshareの資料もつけとく。
特にむずかしいことは何もないが、dependの解決が微妙にいいかげんなので、2行目でdependしているpackageをいれている。
rpm --nosignature -i http://repo.varnish-cache.org/redhat/el5/noarch/varnish-release-2.1-1.noarch.rpm yum install logrotate libgomp gcc cpp binutils kernel-headers glibc-headers glibc-devel expect -y yum install varnish -y
禁止URLをこんなかんじでsquid.confにでも追記すればok.
aclに
acl cacheclear00 url_regex ^http://www.araki.net/tmp/24.html$ acl cacheclear00 url_regex ^http://www.araki.net/tmp/25.html$ no_cache deny cacheclear00
この時点で,このfileはキャッシュされなくなる.
アクセスはできるので,DIRECT または sibling で取りにいくことになる.
この行を追加した時点でcacheは消えているので、PURGEコマンドの代替としても使える。
purgeができないと実際の運用ではやってらんない。
ひとつめの方法はPURGEコマンドを使う方法。
purge.conf
acl PURGE method PURGE http_access allow PURGE localhost http_access allow PURGE localnet http_access deny PURGE
とかを作っておいて,includeする.purgeするときはsquidclientを使う.
squidclient -m PURGE http://www.araki.net/tmp/24.html
リモートホストのcacheを消すなら,-h でホスト名を指定する.
squidclient -h squid2 -m PURGE http://www.araki.net/tmp/24.html
「お前のcacheはおれのもの、俺のcacheも俺の物」これがsquidのsiblingの基本。
squidはsiblingの設定をしていると、次のように動作する。
つまりsiblingのcacheは自分のcacheのように使える。
http://www.flickr.com/photos/ediblexart/1557458575/ Siblings by EdiblexArt, on Flickr
二台hostがあったとして、それぞれのhostには自分のsiblingを書いてやりさえすればok
1.2.3.7の/etc/squid/sibling.confには
cache_peer 1.2.3.6 sibling 3128 3130
1.2.3.6の/etc/squid/sibling.confには
cache_peer 1.2.3.7 sibling 3128 3130
とでも書いて、include /etc/squid/sibling.conf してやればいい。
おまけ。
refresh_pattern . 0 100% 20160
としているが,20160は,最大cache時間が20160分(=14日)という意味.
結局のところ、/etc/squid/squid.conf
acl all src all acl manager proto cache_object acl localhost src 127.0.0.1/32 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 443 # https acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localnet http_access allow localhost http_access deny all icp_access allow localnet icp_access deny all http_port 3128 hierarchy_stoplist cgi-bin ? access_log /var/log/squid/access.log squid refresh_pattern . 0 100% 20160 coredump_dir /var/spool/squid include /etc/squid/sibling.conf