SlideShare a Scribd company logo
VTI の中身
浅間 正和 @ 有限会社 銀座堂
VTI とは?


•   Virtual Tunnel Interface の略で Vyatta ( Network
    OS | Core ) 6.5R1 から実装された中身が暗号化
    される IP-IP tunnel のようなモノ
Benefits

•   They are capable of having traffic routed to them 
•   They are capable of passing routing protocols over 
    them 
•   They do not require local or remote subnets to be 
    specified 
•   They operate as if the peer interfaces are directly 
    connected 

(Vyatta VPN Reference Guide 6.5R1 v01 より引用)
Vyatta configuration の違い
                                    interfaces {
                                      vti vti0 {
                                      }
                                    }
vpn {
                                    protocols {
  ipsec {
                                      static
    site-to-site {
                                        interface-route 192.168.2.0/24 {
      peer 172.16.1.2 {
                                          next-hop-interface vti0 {
        default-esp-group ESP-G
                                          }
        ike-group IKE-G
                                        }
        local-address 172.16.1.1
                                      }
        tunnel 1 {
                                    }
          local {
                                    vpn {
            prefix 192.168.1.0/24
                                      ipsec {
          }
                                        site-to-site {
          remote {
                                          peer 172.16.1.2 {
            prefix 192.168.2.0/24
                                             ike-group IKE-G
          }
                                             local-address 172.16.1.1
        }
                                            vti {
      }
                                               bind vti0
    }
                                               esp-group ESP-G
  }
                                            }
}
                                          }
                                        }
                                      }
                                    }
                 従来                                   VTI
/etc/ipsec.conf の違い

                                     conn peer-172.16.1.2-tunnel-vti
conn peer-172.16.1.2-tunnel-1                left=172.16.1.1
        left=172.16.1.1                      right=172.16.1.2
        right=172.16.1.2                     leftsubnet=0.0.0.0/0
        leftsubnet=192.168.1.0/24            rightsubnet=0.0.0.0/0
        rightsubnet=192.168.2.0/24           ike=aes256-sha1!
        leftsourceip=192.168.1.1             ikelifetime=28800s
        ike=aes256-sha1!                     esp=aes256-sha1!
        ikelifetime=28800s                   keylife=3600s
        esp=aes256-sha1!                     rekeymargin=540s
        keylife=3600s                        type=tunnel
        rekeymargin=540s                     pfs=yes
        type=tunnel                          compress=no
        pfs=yes                              authby=secret
        compress=no                          mark=2415919105
        authby=secret                        leftupdown="/usr/lib/ipsec/vti-
        auto=start                   up-down.sh vti0"
        keyingtries=%forever                 auto=start
                                             keyingtries=%forever




                 従来                                    VTI
ip xfrm policy list 実行結果の違い


                                        src 0.0.0.0/0 dst 0.0.0.0/0
                                          dir out priority 2051
src 192.168.1.0/24 dst 192.168.2.0/24
                                          mark -1879048191/0xffffffff
  dir out priority 1859
                                          tmpl src 172.16.1.1 dst 172.16.1.2
  tmpl src 172.16.1.1 dst 172.16.1.2
                                            proto esp reqid 16384 mode tunnel
    proto esp reqid 16384 mode tunnel
                                        src 0.0.0.0/0 dst 0.0.0.0/0
src 192.168.2.0/24 dst 192.168.1.0/24
                                          dir fwd priority 2051
  dir fwd priority 1859
                                          mark -1879048191/0xffffffff
  tmpl src 172.16.1.2 dst 172.16.1.1
                                          tmpl src 172.16.1.2 dst 172.16.1.1
    proto esp reqid 16384 mode tunnel
                                            proto esp reqid 16384 mode tunnel
src 192.168.2.0/24 dst 192.168.1.0/24
                                        src 0.0.0.0/0 dst 0.0.0.0/0
  dir in priority 1859
                                          dir in priority 2051
  tmpl src 172.16.1.2 dst 172.16.1.1
                                          mark -1879048191/0xffffffff
    proto esp reqid 16384 mode tunnel
                                          tmpl src 172.16.1.2 dst 172.16.1.1
                                            proto esp reqid 16384 mode tunnel




                 従来                                       VTI
設定時の流れ
•   /opt/vyatta/sbin/vpn-config.pl が実行される
    •   /etc/ipsec.conf の生成と ipsec start の実行
•   /opt/vyatta/sbin/vyatta-vti-config.pl が実行される
    •   sudo /opt/vyatta/sbin/cfgvti add name $tunName  
        key $mark remote $remote local $local の実行
    •   sudo iptables -t mangle -D PREROUTING -s  
        $remote -d $local ( -p esp | -p udp --dport 4500 ) 
        -j MARK --set-mark $mark の実行
/opt/vyatta/sbin/cfgvti
•   git repo の build-iso/pkgs/vyatta-cfg-vpn/src/cfgvti.c 
•   … C で書かれたプログラム…なぜ…?
•   なななんと実は VTI は net/ipv4/ipip.ko ではなく
    net/ipv4/ip_vti.ko だった…。

    commit 1181412c1a671ed4e8fb1736f17e6ec617c68059
    Author: Saurabh <saurabh.mohan@vyatta.com>
    Date:   Tue Jul 17 09:44:54 2012 +0000

        net/ipv4: VTI support new module for ip_vti.

        New VTI tunnel kernel module, Kconfig and Makefile changes.

        Signed-off-by: Saurabh Mohan <saurabh.mohan@vyatta.com>
        Reviewed-by: Stephen Hemminger <shemminger@vyatta.com>
        Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_vti.ko

•   Linux kernel の main line には v3.6 から merge
•   (Vyatta 6.5R1 は v3.3 なので backport?)
•   net/ipv4/ipip.ko を元にしているが xfrm の esp
    が処理してくれる encap/decap は省かれている
•   一番重要な違いは xmit 時に mark を付けるこ
    とで xfrm policy に引っ掛けるようにしている
    こと
送受信時の流れ
•   送信時の流れ
    •   net/ipv4/ip_vti.ko の vti_tunnel_xmit が呼ば
        れる
    •   VTI を一意に表す mark を付け xfrm に流す
    •   xfrm が encap し暗号化
•   受信時の流れ
    •   Netfilter が mask を付ける
    •   mark から xfrm policy が判明し復号化と
        decap 処理
まとめ
•   Dynamic routing や QoS と組み合わせて使え
    るのはかなり便利?
•   もとは Cisco さんが最初にやった方式?
    Vyatta VPN Reference にも compatible with 3rd
    party VTI/route-based VPN connections と書か
    れているので相互接続性もバッチリ?
•   ちなみに … and is sometimes required for
    connectivity with pubic cloud offerings だそう
    です…

More Related Content

What's hot

講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
NGINX, Inc.
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
 
[AWSマイスターシリーズ] リザーブドインスタンス&スポットインスタンス
[AWSマイスターシリーズ] リザーブドインスタンス&スポットインスタンス[AWSマイスターシリーズ] リザーブドインスタンス&スポットインスタンス
[AWSマイスターシリーズ] リザーブドインスタンス&スポットインスタンスAmazon Web Services Japan
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
0円でできる自宅InfiniBandプログラム
0円でできる自宅InfiniBandプログラム0円でできる自宅InfiniBandプログラム
0円でできる自宅InfiniBandプログラム
Minoru Nakamura
 
SD-WANって何だろう。使い方を知ってみよう(AWS分)
SD-WANって何だろう。使い方を知ってみよう(AWS分)SD-WANって何だろう。使い方を知ってみよう(AWS分)
SD-WANって何だろう。使い方を知ってみよう(AWS分)
Yukihiro Kikuchi
 
AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開
ToruKubota4
 
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
 
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについてCentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
Nobuyuki Sasaki
 
30分でわかる! コンピュータネットワーク
30分でわかる! コンピュータネットワーク30分でわかる! コンピュータネットワーク
30分でわかる! コンピュータネットワーク
Trainocate Japan, Ltd.
 
JAWS-UG 横浜 re:Invent re:Cap week1 EC2ストレージパフォーマンスの進化
JAWS-UG 横浜 re:Invent re:Cap week1 EC2ストレージパフォーマンスの進化JAWS-UG 横浜 re:Invent re:Cap week1 EC2ストレージパフォーマンスの進化
JAWS-UG 横浜 re:Invent re:Cap week1 EC2ストレージパフォーマンスの進化
Shuji Kikuchi
 
AWS Black Belt Online Seminar 2016 Amazon WorkSpaces
AWS Black Belt Online Seminar 2016 Amazon WorkSpacesAWS Black Belt Online Seminar 2016 Amazon WorkSpaces
AWS Black Belt Online Seminar 2016 Amazon WorkSpaces
Amazon Web Services Japan
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
tetsusat
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
 
AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策
Amazon Web Services Japan
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
Takuya ASADA
 
Azure Infrastructure as Code 体験入隊
Azure Infrastructure as Code 体験入隊Azure Infrastructure as Code 体験入隊
Azure Infrastructure as Code 体験入隊
Toru Makabe
 
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
Yuta Imai
 
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
Nobuto Murata
 
AWS CURのデータを安く楽に可視化して共有したい
AWS CURのデータを安く楽に可視化して共有したいAWS CURのデータを安く楽に可視化して共有したい
AWS CURのデータを安く楽に可視化して共有したい
Takayuki Ishikawa
 

What's hot (20)

講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
[AWSマイスターシリーズ] リザーブドインスタンス&スポットインスタンス
[AWSマイスターシリーズ] リザーブドインスタンス&スポットインスタンス[AWSマイスターシリーズ] リザーブドインスタンス&スポットインスタンス
[AWSマイスターシリーズ] リザーブドインスタンス&スポットインスタンス
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
0円でできる自宅InfiniBandプログラム
0円でできる自宅InfiniBandプログラム0円でできる自宅InfiniBandプログラム
0円でできる自宅InfiniBandプログラム
 
SD-WANって何だろう。使い方を知ってみよう(AWS分)
SD-WANって何だろう。使い方を知ってみよう(AWS分)SD-WANって何だろう。使い方を知ってみよう(AWS分)
SD-WANって何だろう。使い方を知ってみよう(AWS分)
 
AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開
 
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
 
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについてCentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
 
30分でわかる! コンピュータネットワーク
30分でわかる! コンピュータネットワーク30分でわかる! コンピュータネットワーク
30分でわかる! コンピュータネットワーク
 
JAWS-UG 横浜 re:Invent re:Cap week1 EC2ストレージパフォーマンスの進化
JAWS-UG 横浜 re:Invent re:Cap week1 EC2ストレージパフォーマンスの進化JAWS-UG 横浜 re:Invent re:Cap week1 EC2ストレージパフォーマンスの進化
JAWS-UG 横浜 re:Invent re:Cap week1 EC2ストレージパフォーマンスの進化
 
AWS Black Belt Online Seminar 2016 Amazon WorkSpaces
AWS Black Belt Online Seminar 2016 Amazon WorkSpacesAWS Black Belt Online Seminar 2016 Amazon WorkSpaces
AWS Black Belt Online Seminar 2016 Amazon WorkSpaces
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
 
AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
 
Azure Infrastructure as Code 体験入隊
Azure Infrastructure as Code 体験入隊Azure Infrastructure as Code 体験入隊
Azure Infrastructure as Code 体験入隊
 
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
 
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
 
AWS CURのデータを安く楽に可視化して共有したい
AWS CURのデータを安く楽に可視化して共有したいAWS CURのデータを安く楽に可視化して共有したい
AWS CURのデータを安く楽に可視化して共有したい
 

Viewers also liked

Hydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違いHydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違い
Masakazu Asama
 
AndroidStudioのインストールをゼロからしてみる
AndroidStudioのインストールをゼロからしてみるAndroidStudioのインストールをゼロからしてみる
AndroidStudioのインストールをゼロからしてみる
Shigeo Ueda
 
VTI presentation
VTI presentationVTI presentation
VTI presentation
jleui
 
MRAI, BGP Widthdrawn and Packet Loss
MRAI, BGP Widthdrawn and Packet LossMRAI, BGP Widthdrawn and Packet Loss
MRAI, BGP Widthdrawn and Packet Loss
Shintaro Kojima
 
中高生向けUnity講座
中高生向けUnity講座中高生向けUnity講座
中高生向けUnity講座
MakotoItoh
 
Unity恐くないよ!!
Unity恐くないよ!!Unity恐くないよ!!
Unity恐くないよ!!
nakamura001
 
さくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみたさくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみた
SAKURA Internet Inc.
 
ASAMAP 開発秘話
ASAMAP 開発秘話ASAMAP 開発秘話
ASAMAP 開発秘話
Masakazu Asama
 
Variable Valve Timing
Variable Valve TimingVariable Valve Timing
Variable Valve Timing
Sourav Bagchi
 
Variable Valve Timing (VVT)
Variable Valve Timing (VVT)Variable Valve Timing (VVT)
Variable Valve Timing (VVT)
Kaustubh Gaonkar
 

Viewers also liked (10)

Hydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違いHydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違い
 
AndroidStudioのインストールをゼロからしてみる
AndroidStudioのインストールをゼロからしてみるAndroidStudioのインストールをゼロからしてみる
AndroidStudioのインストールをゼロからしてみる
 
VTI presentation
VTI presentationVTI presentation
VTI presentation
 
MRAI, BGP Widthdrawn and Packet Loss
MRAI, BGP Widthdrawn and Packet LossMRAI, BGP Widthdrawn and Packet Loss
MRAI, BGP Widthdrawn and Packet Loss
 
中高生向けUnity講座
中高生向けUnity講座中高生向けUnity講座
中高生向けUnity講座
 
Unity恐くないよ!!
Unity恐くないよ!!Unity恐くないよ!!
Unity恐くないよ!!
 
さくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみたさくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみた
 
ASAMAP 開発秘話
ASAMAP 開発秘話ASAMAP 開発秘話
ASAMAP 開発秘話
 
Variable Valve Timing
Variable Valve TimingVariable Valve Timing
Variable Valve Timing
 
Variable Valve Timing (VVT)
Variable Valve Timing (VVT)Variable Valve Timing (VVT)
Variable Valve Timing (VVT)
 

Similar to VTI の中身

Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
Hirofumi Ichihara
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
npsg
 
Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Daisuke Nakajima
 
SCUGJ第19回勉強会:RASGWとなにかでつないでみた
SCUGJ第19回勉強会:RASGWとなにかでつないでみたSCUGJ第19回勉強会:RASGWとなにかでつないでみた
SCUGJ第19回勉強会:RASGWとなにかでつないでみた
wind06106
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt AffinityについてTakuya ASADA
 
「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例SAKURA Internet Inc.
 
自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介Kentaro Mitsuyasu
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
Tomoya Hibi
 
SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用Toshiki Tsuboi
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)Kazuyuki Sato
 
VYATTA USERS MEETING Autumn 2013_idcf
VYATTA USERS MEETING Autumn 2013_idcfVYATTA USERS MEETING Autumn 2013_idcf
VYATTA USERS MEETING Autumn 2013_idcf
IDC Frontier
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングKiwamu Okabe
 
FreeBSDでおうちのルーター
FreeBSDでおうちのルーターFreeBSDでおうちのルーター
FreeBSDでおうちのルーター
hoo0005
 
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
Takashi Sogabe
 
Technical report for IPv6 Routing w/ bgp4+
Technical report for IPv6 Routing w/ bgp4+Technical report for IPv6 Routing w/ bgp4+
Technical report for IPv6 Routing w/ bgp4+
Toshiki Tsuboi
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0Kiwamu Okabe
 
ほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Dive
ほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Diveほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Dive
ほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Dive
Yasuhiro Araki, Ph.D
 
Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
Masakazu Asama
 

Similar to VTI の中身 (20)

Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
Openvswitch vps 20120429資料
Openvswitch vps 20120429資料Openvswitch vps 20120429資料
Openvswitch vps 20120429資料
 
SCUGJ第19回勉強会:RASGWとなにかでつないでみた
SCUGJ第19回勉強会:RASGWとなにかでつないでみたSCUGJ第19回勉強会:RASGWとなにかでつないでみた
SCUGJ第19回勉強会:RASGWとなにかでつないでみた
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt Affinityについて
 
「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例
 
自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
 
SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
 
VYATTA USERS MEETING Autumn 2013_idcf
VYATTA USERS MEETING Autumn 2013_idcfVYATTA USERS MEETING Autumn 2013_idcf
VYATTA USERS MEETING Autumn 2013_idcf
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミング
 
FreeBSDでおうちのルーター
FreeBSDでおうちのルーターFreeBSDでおうちのルーター
FreeBSDでおうちのルーター
 
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
OpenStack + OpenContrailで実現するマルチテナントIaaSのご紹介
 
Technical report for IPv6 Routing w/ bgp4+
Technical report for IPv6 Routing w/ bgp4+Technical report for IPv6 Routing w/ bgp4+
Technical report for IPv6 Routing w/ bgp4+
 
Inside winnyp
Inside winnypInside winnyp
Inside winnyp
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
ほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Dive
ほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Diveほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Dive
ほしいプロトコルはトンネルすればいいじゃない at JAWS DAYS 2014 Tech Deep Dive
 
Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
 

Recently uploaded

【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
atsushi061452
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 

Recently uploaded (15)

【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 

VTI の中身

  • 1. VTI の中身 浅間 正和 @ 有限会社 銀座堂
  • 2. VTI とは? • Virtual Tunnel Interface の略で Vyatta ( Network OS | Core ) 6.5R1 から実装された中身が暗号化 される IP-IP tunnel のようなモノ
  • 3. Benefits • They are capable of having traffic routed to them  • They are capable of passing routing protocols over  them  • They do not require local or remote subnets to be  specified  • They operate as if the peer interfaces are directly  connected  (Vyatta VPN Reference Guide 6.5R1 v01 より引用)
  • 4. Vyatta configuration の違い interfaces { vti vti0 { } } vpn { protocols { ipsec { static site-to-site { interface-route 192.168.2.0/24 { peer 172.16.1.2 { next-hop-interface vti0 { default-esp-group ESP-G } ike-group IKE-G } local-address 172.16.1.1 } tunnel 1 { } local { vpn { prefix 192.168.1.0/24 ipsec { } site-to-site { remote { peer 172.16.1.2 { prefix 192.168.2.0/24 ike-group IKE-G } local-address 172.16.1.1 } vti { } bind vti0 } esp-group ESP-G } } } } } } } 従来 VTI
  • 5. /etc/ipsec.conf の違い conn peer-172.16.1.2-tunnel-vti conn peer-172.16.1.2-tunnel-1 left=172.16.1.1 left=172.16.1.1 right=172.16.1.2 right=172.16.1.2 leftsubnet=0.0.0.0/0 leftsubnet=192.168.1.0/24 rightsubnet=0.0.0.0/0 rightsubnet=192.168.2.0/24 ike=aes256-sha1! leftsourceip=192.168.1.1 ikelifetime=28800s ike=aes256-sha1! esp=aes256-sha1! ikelifetime=28800s keylife=3600s esp=aes256-sha1! rekeymargin=540s keylife=3600s type=tunnel rekeymargin=540s pfs=yes type=tunnel compress=no pfs=yes authby=secret compress=no mark=2415919105 authby=secret leftupdown="/usr/lib/ipsec/vti- auto=start up-down.sh vti0" keyingtries=%forever auto=start keyingtries=%forever 従来 VTI
  • 6. ip xfrm policy list 実行結果の違い src 0.0.0.0/0 dst 0.0.0.0/0 dir out priority 2051 src 192.168.1.0/24 dst 192.168.2.0/24 mark -1879048191/0xffffffff dir out priority 1859 tmpl src 172.16.1.1 dst 172.16.1.2 tmpl src 172.16.1.1 dst 172.16.1.2 proto esp reqid 16384 mode tunnel proto esp reqid 16384 mode tunnel src 0.0.0.0/0 dst 0.0.0.0/0 src 192.168.2.0/24 dst 192.168.1.0/24 dir fwd priority 2051 dir fwd priority 1859 mark -1879048191/0xffffffff tmpl src 172.16.1.2 dst 172.16.1.1 tmpl src 172.16.1.2 dst 172.16.1.1 proto esp reqid 16384 mode tunnel proto esp reqid 16384 mode tunnel src 192.168.2.0/24 dst 192.168.1.0/24 src 0.0.0.0/0 dst 0.0.0.0/0 dir in priority 1859 dir in priority 2051 tmpl src 172.16.1.2 dst 172.16.1.1 mark -1879048191/0xffffffff proto esp reqid 16384 mode tunnel tmpl src 172.16.1.2 dst 172.16.1.1 proto esp reqid 16384 mode tunnel 従来 VTI
  • 7. 設定時の流れ • /opt/vyatta/sbin/vpn-config.pl が実行される • /etc/ipsec.conf の生成と ipsec start の実行 • /opt/vyatta/sbin/vyatta-vti-config.pl が実行される • sudo /opt/vyatta/sbin/cfgvti add name $tunName   key $mark remote $remote local $local の実行 • sudo iptables -t mangle -D PREROUTING -s   $remote -d $local ( -p esp | -p udp --dport 4500 )  -j MARK --set-mark $mark の実行
  • 8. /opt/vyatta/sbin/cfgvti • git repo の build-iso/pkgs/vyatta-cfg-vpn/src/cfgvti.c  • … C で書かれたプログラム…なぜ…? • なななんと実は VTI は net/ipv4/ipip.ko ではなく net/ipv4/ip_vti.ko だった…。 commit 1181412c1a671ed4e8fb1736f17e6ec617c68059 Author: Saurabh <saurabh.mohan@vyatta.com> Date: Tue Jul 17 09:44:54 2012 +0000 net/ipv4: VTI support new module for ip_vti. New VTI tunnel kernel module, Kconfig and Makefile changes. Signed-off-by: Saurabh Mohan <saurabh.mohan@vyatta.com> Reviewed-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
  • 9. net/ipv4/ip_vti.ko • Linux kernel の main line には v3.6 から merge • (Vyatta 6.5R1 は v3.3 なので backport?) • net/ipv4/ipip.ko を元にしているが xfrm の esp が処理してくれる encap/decap は省かれている • 一番重要な違いは xmit 時に mark を付けるこ とで xfrm policy に引っ掛けるようにしている こと
  • 10. 送受信時の流れ • 送信時の流れ • net/ipv4/ip_vti.ko の vti_tunnel_xmit が呼ば れる • VTI を一意に表す mark を付け xfrm に流す • xfrm が encap し暗号化 • 受信時の流れ • Netfilter が mask を付ける • mark から xfrm policy が判明し復号化と decap 処理
  • 11. まとめ • Dynamic routing や QoS と組み合わせて使え るのはかなり便利? • もとは Cisco さんが最初にやった方式? Vyatta VPN Reference にも compatible with 3rd party VTI/route-based VPN connections と書か れているので相互接続性もバッチリ? • ちなみに … and is sometimes required for connectivity with pubic cloud offerings だそう です…