ほしいプロトコルは
カプセルすればいいじゃない	
ARAKI Yasuhiro (ar1@)
JAWS DAYS 2014
⾃自⼰己紹介
!   名前
•  荒⽊木  靖宏(twitter:  ar1)
!   肩書
•  JAWS-‐‑‒UG→AWSへ
•  プリンシパルソリューション
アーキテクト
!   好きなAWSサービス
•  Amazon  Virtua...
IPv6
Multicast
&
More!
方式! 対象! オーバー
ヘッド!
IP-in-
IP!
IP! 20バイト! 20バイトのヘッダ付与!
GRE! IP,AppleT
alk,Multic
ast等!
24バイト! 20バイトのヘッダ+4バイトの
GREヘッダ!
TUN! I...
2001:db8::/32
ボーダールータ	
6rd client
192.168.1.1	
6rd  (IP-‐‑‒in-‐‑‒IP)によるIPv6
IPv4IPv6
IPv6
2001:db8:c048:101::/64
2001:db8:...
IPv6の⼿手順
!   VPCを作り、VPC⽤用のEIPを取得
!   IPv6トンネル先を登録
•  https://tunnelbroker.net/  あたりがおすすめ(無料料)
•  EIPを⼊入れるとエンドポイントが作られる
!  ...
IPv6
Internet	
IPv4
Internet	
6rd tunnel
Protocol: 41	
6rd server	
 6rd client	
⼿手順全体図
tunnelbroker.net
(he.net)
Security  Groupの設定
Server IPv4 Address
Vyattaからトンネルを作る
configure
edit  interfaces  tunnel  tun0
set  encapsulation  sit
set  local-‐‑‒ip  EC2のプライベートアドレス
set  remo...
tyo1.ipv6.he.net東京	
 バージニア	
ash1.ipv6.he.net
⽶米国東海岸ー東京リージョン間
  1    ar1-‐‑‒2.tunnel.tserv13.ash1.ipv6.he.net  (2001:470:7:b23::1)    4.608  ms    7.050  
ms    9.707  ...
GRE
GRE:Generic  Routing  Encapsulation
!  GREは名前の通りの汎⽤用カプセル⼿手法
!  IP以外
•  IPX
•  AppleTalk
•  DECNet
!  もちろんIPも
•  Multicast
...
GREでMulticastの⼿手順
!   VPCを作る
!   インスタンス起動
•  Protocol番号47(GRE)はお互い通信可能に設定
!   カーネルパラメータを設定
•  ICMP、IGMPに答える⽤用に設定
•  IP転送設定...
⼿手順全体図
/dev/tun0
169.254.0.1	
/dev/tun0
169.254.0.2	
/dev/eth0
10.3.8.118	
/dev/eth0
10.3.8.119	
10.3.8.x	
PIMD	
 PIMD	
Mu...
インスタンス内設定スクリプト(例例)
auto  tun0
iface  tun0  inet  static
              address  169.254.0.1
              netmask  255.255....
Multicastの疎通を試す
root@ip-‐‑‒10-‐‑‒3-‐‑‒8-‐‑‒119:/etc/network/interfaces.d#  ping  224.0.0.1
PING  224.0.0.1  (224.0.0.1)  5...
TAP
TAP:simulates  a  link  layer  device
!  network  tap  から  TAPと命名
!  イーサネットデバイスをシミュレート
•  デバイスで使えるプロトコルに制限なし
!  様々な利利⽤用実績
...
TAPでMulticastの⼿手順  w/  OpenVPN
!   VPCを作る
!   サーバインスタンス起動
•  ブリッジを作成
•  OpenVPNサーバをTAPモードで動作
•  ip  route  add  224.0.0.0/...
⼿手順全体図
/dev/tap0
10.8.0.50	
/dev/eth0
10.3.8.118	
/dev/eth0
10.3.8.119	
10.3.8.x	
PIMD	
 PIMD	
Multicast Enable (224.0.0.0...
Multicastの疎通を試す
root@ip-‐‑‒10-‐‑‒3-‐‑‒8-‐‑‒118:/etc/openvpn#  ping  224.0.0.1
PING  224.0.0.1  (224.0.0.1)  56(84)  bytes ...
参考
!   Tunnels,  Reference  Guide,  Vyatta  System
ほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Dive
ほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Dive
ほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Dive
Upcoming SlideShare
Loading in...5
×

ほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Dive

1,353

Published on

AWS VPCでも使えるトンネル入門

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,353
On Slideshare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

ほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Dive

  1. 1. ほしいプロトコルは カプセルすればいいじゃない ARAKI Yasuhiro (ar1@) JAWS DAYS 2014
  2. 2. ⾃自⼰己紹介 !   名前 •  荒⽊木  靖宏(twitter:  ar1) !   肩書 •  JAWS-‐‑‒UG→AWSへ •  プリンシパルソリューション アーキテクト !   好きなAWSサービス •  Amazon  Virtual  Private   Cloud •  AWS  Direct  Connect
  3. 3. IPv6 Multicast & More!
  4. 4. 方式! 対象! オーバー ヘッド! IP-in- IP! IP! 20バイト! 20バイトのヘッダ付与! GRE! IP,AppleT alk,Multic ast等! 24バイト! 20バイトのヘッダ+4バイトの GREヘッダ! TUN! IP,AppleT alk,Multic ast等! 小! ネットワーク層を模擬! TAP! イーサ ネット! 大! イーサネットデバイスを模擬! IPsec! IP(tunnel mode)! 54〜78! バイト! 暗号化コストのほうが。。! ESP-3DES/DES ESP-SHA1/MD5 54バイト! ESP-AES ESP-SHA512 78バイト!
  5. 5. 2001:db8::/32 ボーダールータ 6rd client 192.168.1.1 6rd  (IP-‐‑‒in-‐‑‒IP)によるIPv6 IPv4IPv6 IPv6 2001:db8:c048:101::/64 2001:db8:c048:101::1234/64 16進表記での 192.168.1.1
  6. 6. IPv6の⼿手順 !   VPCを作り、VPC⽤用のEIPを取得 !   IPv6トンネル先を登録 •  https://tunnelbroker.net/  あたりがおすすめ(無料料) •  EIPを⼊入れるとエンドポイントが作られる !   エンドポイント情報を⼊入⼿手 •  Server  IPv4  Address •  Client  IPv6  Address !   Server  IPv4  Addressへ !   Protocol番号41をServer  IPv4  Addressへ通す !   あとはEC2からトンネルを作る !   Route53で登録
  7. 7. IPv6 Internet IPv4 Internet 6rd tunnel Protocol: 41 6rd server 6rd client ⼿手順全体図 tunnelbroker.net (he.net)
  8. 8. Security  Groupの設定 Server IPv4 Address
  9. 9. Vyattaからトンネルを作る configure edit  interfaces  tunnel  tun0 set  encapsulation  sit set  local-‐‑‒ip  EC2のプライベートアドレス set  remote-‐‑‒ip  Server  IPv4  Address set  address  Client  IPv6  Address set  description  "HE.NET  IPv6  Tunnel" exit set  protocols  static  interface-‐‑‒route6  ::/0  next-‐‑‒hop-‐‑‒ interface  tun0 commit Simple Internet Transition (SIT) IPv6をIPv4に乗せるためのもの
  10. 10. tyo1.ipv6.he.net東京 バージニア ash1.ipv6.he.net
  11. 11. ⽶米国東海岸ー東京リージョン間  1    ar1-‐‑‒2.tunnel.tserv13.ash1.ipv6.he.net  (2001:470:7:b23::1)    4.608  ms    7.050   ms    9.707  ms  2    gige-‐‑‒g4-‐‑‒12.core1.ash1.he.net  (2001:470:0:90::1)    16.986  ms    16.954  ms     16.916  ms  3    10gigabitethernet1-‐‑‒2.core1.atl1.he.net  (2001:470:0:1b5::2)    22.150  ms     22.117  ms    22.078  ms  4    10gigabitethernet3-‐‑‒2.core1.dal1.he.net  (2001:470:0:1b6::1)    42.314  ms     42.283  ms    42.246  ms  5    10gigabitethernet2-‐‑‒4.core1.phx2.he.net  (2001:470:0:258::1)    69.700  ms     69.670  ms    69.637  ms  6    10gigabitethernet15-‐‑‒6.core1.lax2.he.net  (2001:470:0:24a::2)    73.184  ms     67.488  ms    66.650  ms  7    10gigabitethernet3-‐‑‒2.core1.tyo1.he.net  (2001:470:0:294::2)    162.600  ms     162.120  ms    162.333  ms  8    tserv1.tyo1.he.net  (2001:470:0:118::2)    163.306  ms    163.431  ms    162.635   ms  9    ar1-‐‑‒1-‐‑‒pt.tunnel.tserv22.tyo1.ipv6.he.net  (2001:470:23:12e::2)    166.556  ms     165.961  ms    166.215  ms
  12. 12. GRE
  13. 13. GRE:Generic  Routing  Encapsulation !  GREは名前の通りの汎⽤用カプセル⼿手法 !  IP以外 •  IPX •  AppleTalk •  DECNet !  もちろんIPも •  Multicast •  Broadcast •  IPv6
  14. 14. GREでMulticastの⼿手順 !   VPCを作る !   インスタンス起動 •  Protocol番号47(GRE)はお互い通信可能に設定 !   カーネルパラメータを設定 •  ICMP、IGMPに答える⽤用に設定 •  IP転送設定 •  経路路⾮非対称を有効化 !   GREトンネルを設定 •  169.254.x.yを使うことに !   マルチキャストアドレスに経路路設定 ! pimdを起動 インスタンス内設定 スクリプトは後述
  15. 15. ⼿手順全体図 /dev/tun0 169.254.0.1 /dev/tun0 169.254.0.2 /dev/eth0 10.3.8.118 /dev/eth0 10.3.8.119 10.3.8.x PIMD PIMD Multicast Enable (224.0.0.0/4)
  16. 16. インスタンス内設定スクリプト(例例) auto  tun0 iface  tun0  inet  static              address  169.254.0.1              netmask  255.255.255.0              broadcast  169.254.0.255              up  ifconfig  tun0  multicast              pre-‐‑‒up  ip  tunnel  add  tun0  mode  gre  remote  10.3.8.119  local   10.3.8.118  ttl  255              pre-‐‑‒up  echo  0  >  /proc/sys/net/ipv4/icmp_̲echo_̲ignore_̲broadcasts              pre-‐‑‒up  echo  1  >  /proc/sys/net/ipv4/ip_̲forward              pre-‐‑‒up  echo  0  >  /proc/sys/net/ipv4/conf/all/rp_̲filter              up  ip  route  add  224.0.0.0/4  dev  tun0              up  /etc/init.d/pimd  restart              pointopoint  169.254.0.2              post-‐‑‒down  iptunnel  del  tun0
  17. 17. Multicastの疎通を試す root@ip-‐‑‒10-‐‑‒3-‐‑‒8-‐‑‒119:/etc/network/interfaces.d#  ping  224.0.0.1 PING  224.0.0.1  (224.0.0.1)  56(84)  bytes  of  data. 64  bytes  from  169.254.0.2:  icmp_̲seq=1  ttl=64  time=0.035  ms 64  bytes  from  169.254.0.1:  icmp_̲seq=1  ttl=64  time=0.557  ms  (DUP!) 64  bytes  from  169.254.0.2:  icmp_̲seq=2  ttl=64  time=0.033  ms 64  bytes  from  169.254.0.1:  icmp_̲seq=2  ttl=64  time=0.512  ms  (DUP!)
  18. 18. TAP
  19. 19. TAP:simulates  a  link  layer  device !  network  tap  から  TAPと命名 !  イーサネットデバイスをシミュレート •  デバイスで使えるプロトコルに制限なし !  様々な利利⽤用実績 •  OpenVPN •  VTun •  tinc •  …
  20. 20. TAPでMulticastの⼿手順  w/  OpenVPN !   VPCを作る !   サーバインスタンス起動 •  ブリッジを作成 •  OpenVPNサーバをTAPモードで動作 •  ip  route  add  224.0.0.0/4  dev  br0 !   クライアントインスタンスを起動 •  OpenVPNクライアントでサーバに接続。同時にTAP作成。 •  ip  route  add  224.0.0.0/4  dev  tap0 ! pimd  start
  21. 21. ⼿手順全体図 /dev/tap0 10.8.0.50 /dev/eth0 10.3.8.118 /dev/eth0 10.3.8.119 10.3.8.x PIMD PIMD Multicast Enable (224.0.0.0/4) Open VPN Open VPN /dev/tap0 /dev/br0 10.8.0.4
  22. 22. Multicastの疎通を試す root@ip-‐‑‒10-‐‑‒3-‐‑‒8-‐‑‒118:/etc/openvpn#  ping  224.0.0.1 PING  224.0.0.1  (224.0.0.1)  56(84)  bytes  of  data. 64  bytes  from  10.8.0.50:  icmp_̲seq=1  ttl=64  time=0.041  ms 64  bytes  from  10.8.0.4:  icmp_̲seq=1  ttl=64  time=0.870  ms  (DUP!) 64  bytes  from  10.8.0.50:  icmp_̲seq=2  ttl=64  time=0.062  ms 64  bytes  from  10.8.0.4:  icmp_̲seq=2  ttl=64  time=0.834  ms  (DUP!)
  23. 23. 参考 !   Tunnels,  Reference  Guide,  Vyatta  System

×