SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
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 だそう
    です…

Contenu connexe

Tendances

コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
 
GitLab CI/CD パイプライン
GitLab CI/CD パイプラインGitLab CI/CD パイプライン
GitLab CI/CD パイプラインTetsurou Yano
 
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...VirtualTech Japan Inc.
 
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-HidekiNishizawa
 
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfesレベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfesTokoroten Nakayama
 
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザインMasayuki Kobayashi
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
地理分散DBについて
地理分散DBについて地理分散DBについて
地理分散DBについてKumazaki Hiroki
 
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす Akihiro Suda
 
インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造Taiji Tsuchiya
 
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeVyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeKLab Inc. / Tech
 
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみたLinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみたHiraku Toyooka
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていることonozaty
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルMasahito Zembutsu
 

Tendances (20)

コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
GitLab CI/CD パイプライン
GitLab CI/CD パイプラインGitLab CI/CD パイプライン
GitLab CI/CD パイプライン
 
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...君にもできる! にゅーとろん君になってみよー!!  「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
君にもできる! にゅーとろん君になってみよー!! 「Neutronになって理解するOpenStack Net - OpenStack最新情報セミナー ...
 
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
 
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfesレベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
 
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザイン
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
 
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
地理分散DBについて
地理分散DBについて地理分散DBについて
地理分散DBについて
 
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす
 
インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造インターネットの仕組みとISPの構造
インターネットの仕組みとISPの構造
 
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeVyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
 
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみたLinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
あなたのところに専用線が届くまで
あなたのところに専用線が届くまであなたのところに専用線が届くまで
あなたのところに専用線が届くまで
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 

En vedette

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 presentationjleui
 
MRAI, BGP Widthdrawn and Packet Loss
MRAI, BGP Widthdrawn and Packet LossMRAI, BGP Widthdrawn and Packet Loss
MRAI, BGP Widthdrawn and Packet LossShintaro Kojima
 
中高生向けUnity講座
中高生向けUnity講座中高生向けUnity講座
中高生向けUnity講座MakotoItoh
 
Unity恐くないよ!!
Unity恐くないよ!!Unity恐くないよ!!
Unity恐くないよ!!nakamura001
 
さくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみたさくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみたSAKURA Internet Inc.
 
Variable Valve Timing
Variable Valve TimingVariable Valve Timing
Variable Valve TimingSourav Bagchi
 
Variable Valve Timing (VVT)
Variable Valve Timing (VVT)Variable Valve Timing (VVT)
Variable Valve Timing (VVT)Kaustubh Gaonkar
 

En vedette (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)
 

Similaire à VTI の中身

Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep DiveHirofumi Ichihara
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始めtetsusat
 
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_netTomoya 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_idcfIDC 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 DiveYasuhiro Araki, Ph.D
 

Similaire à VTI の中身 (20)

Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
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
 

Dernier

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Dernier (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

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 だそう です…