SlideShare a Scribd company logo
1 of 37
コンテナのネットワークインターフェース
その実装手法とその応用について
@JTF 2017, 2017/8/27
林 智史
s1061123@gmail.com
id:s1061123, @s1061123
Agenda
×コンテナのネットワークについて
×実際の手法
×コードの解説
×応用
Agenda
×コンテナのネットワークについて
× どんなインターフェイスで通信しているのか?
× どうやって他のコンテナと分離しているのか?
× 実際の手法
×コードの解説
×応用
コンテナで使ってるネットワークインターフェイスって?
tom@kagaribi $ docker run -it --rm centos_test bash
[root@5c747e947ec9 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN qlen 1
link/tunnel6 :: brd ::
3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN qlen 1
link/sit 0.0.0.0 brd 0.0.0.0
32: eth0@if33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 scope global eth0
valid_lft forever preferred_lft forever
[root@5c747e947ec9 /]#
コンテナで使ってるネットワークインターフェイスって?
[root@5c747e947ec9 /]# ip -d a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 promiscuity 0
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN qlen 1
link/tunnel6 :: brd :: promiscuity 0
ip6tnl ip6ip6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000
(flowinfo 0x00000000)
3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN qlen 1
link/sit 0.0.0.0 brd 0.0.0.0 promiscuity 0
sit remote any local any ttl 64 nopmtudisc 6rd-prefix 2002::/16
32: eth0@if33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 promiscuity 0
veth
inet 172.17.0.2/16 scope global eth0
valid_lft forever preferred_lft forever
‘-d’ / ‘-details’
オプションを追加
コンテナで使ってるネットワークインターフェイスって?
32: eth0@if33: <BROADCAST,
link/ether 02:42:ac:11
veth
inet 172.17.0.2/16 sco
valid_lft forever p
コンテナで使ってるネットワークインターフェイスって?
32: eth0@if33: <BROADCAST,
link/ether 02:42:ac:11
veth
inet 172.17.0.2/16 sco
valid_lft forever p
ifi_index
= IFインデックス
IFLA_IFNAME
= 名前
対面のインターフェースの
ifi_index or 対面の名前
veth
= カーネルが提供する仮想
L2インターフェース
vethとは?
× カーネルが提供するL2仮想インターフェース
× OpenVZから由来
× Linuxカーネル内では <kernel>/drivers/net/veth.c で実装
× P2P (Point-to-point)での接続形態
× つまり相手(接続先)は一つ
× 接続先はIFLA_LINK_NETNSIDで確認
× ‘ip link add’コマンドで作成可能
× 例: “ ip link add veth1 type veth peer name veth2”
Agenda
×コンテナのネットワークについて
× どんなインターフェイスで通信しているのか?
× どうやって他のコンテナと分離しているのか?
× 実際の手法
×コードの解説
×応用
コンテナのネットワークの分離
namespace (名前空間)というものでネットワークを
含む各種リソースを分離
× PID_NS: pid空間を分離
× NET_NS: ネットワークを分離 (← これ!)
× USER_NS: ユーザ権限を分離
× IPC_NS: メッセージキュー・shmemの分離
× UTS_NS: ホストネームの分離
コンテナのネットワークの分離
NET_NS:
×<kernel>/include/net/net_namespace.h に定義
× IPv4 (arp/ルーティング 含む)
× IPv6 (neighbor/ルーティング 含む)
× Unixドメインソケット
× netfilter (例: iptables)
× conntrack (NATテーブル)
× その他(MPLS, sctp等)
これらをNET_NS毎
に分離
コンテナ毎に分離
コンテナのネットワークの分離
ホスト
NET_NS1 (ホストのNET_NS) NET_NS2 (dockerで作成)
em1
192.168.1.1
bash bash
eth0
192.168.1.1
同じアドレスで
も競合しない!
コンテナのネットワークの分離
'docker run --net host ...’
‘docker run --net bridge …’
‘docker run --net none ...’
ホスト
NET_NS1 (ホストのNET_NS)
em1
192.168.1.1
bash
‘docker run --net host … bash’ の場合
dockerで作成
'--net host': NET_NSを作成せずにホストのものをそのまま流用 (pidは分離)
‘docker run --net bridge … bash’ の場合
ホスト
NET_NS1 (ホストのNET_NS)
em1
192.168.1.1
Bridge
(docker0)
NET_NS2 (dockerで作成)
bash
dockerで作成
veth
veth
'--net bridge':
NET_NSを作成して、ホストのNET_NSにあるブリッジ(docker0)とvethで接続
lo
‘docker run --net none … bash’ の場合
ホスト
NET_NS1 (ホストのNET_NS) NET_NS2 (dockerで作成)
em1
192.168.1.1
bash bash
'--net none: NET_NSを作成して、他に何も行なわない
lo
しかしlo等のデバイスはNET_NS
作成時にカーネルが自動的に作
成
<kernel>/net/core/net_namespace.c:
setup_net()
Agenda
×コンテナのネットワークについて
×実際の手法
×dockerがどのように提供しているのか?
×k8sがどのように提供しているのか?
×コードの解説
×応用
Agenda
×コンテナのネットワークについて
×実際の手法
×dockerがどのように提供しているのか?
×k8sがどのように提供しているのか?
×コードの解説
×応用
dockerの場合
× Docker自身はネットワークを作成しない
× libnetworkを使用して作成
× libnetworkはドライバでどのようなネットワークを指
定可能
× ドライバでは以下のAPIを実装している
× Config
× {Create,Delete}Network
× {Create,Delete}Endpoint
× Join, Leave
例
$ docker inspect test | jq .[]."NetworkSettings"
{
"Bridge": "",
"SandboxID": "be01b37c006ad9139c1f3b648dbf02d29761f630c33e9620d60fcd401aae0b5b",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "/var/run/docker/netns/be01b37c006a",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "118e24eb9ef5727d3d43814866597b07c4429bc9b055b941285b6d7b6e300388",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:02",
"Networks": {
"bridge": {
"IPAMConfig": null,
Agenda
×コンテナのネットワークについて
×実際の手法
×dockerがどのように提供しているのか?
×K8sがどのように提供しているのか?
× コンテナランタイム: docker
× ネットワーク: CNI (Calico)
×コードの解説
×応用
例
$ docker inspect k8s_test1-node1_centos1-2797499804-fdqd1_default_018173b3-8247-11e7-b2d6-
525400075920_0 | jq .[]."NetworkSettings"
{
"Bridge": "",
"SandboxID": "",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": null,
"SandboxKey": "",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": null
例
$ kubectl get -o wide pod
NAME READY STATUS RESTARTS AGE IP NODE
centos1-2797499804-fdqd1 1/1 Running 0 9m 192.168.58.193 k8s-node02
$ docker exec -it k8s_test1-node1_centos1-2797499804-fdqd1_default_018173b3-8247-11e7-b2d6-525400075920_0 bash
[root@centos1-2797499804-fdqd1 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN qlen 1
link/ipip 0.0.0.0 brd 0.0.0.0
4: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 22:e6:c3:21:5f:a7 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 192.168.58.193/32 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20e6:c3ff:fe21:5fa7/64 scope link
valid_lft forever preferred_lft forever
k8sの場合
k8sの場合は?
× コンテナランタイム: docker
× ネットワーク: CNI (Calico)
結果
× docker側はネットワークが無いという
× k8sから見るとネットワークはあるという
→ 実際コンテナにはネットワークが見える
k8sのコンテナとネットワークの関係
1. kubectlでコンテナの起動命令
2. kubeletがdockerでコンテナを"--net none"で起動
実際にはdocker API経由なので NetworkMode = "none"
1. コンテナはネットワーク無しで起動
→なのでdockerから見るとネットワークはなしで起動している
1. kubeletがCNIを起動してコンテナにネットワークを追加
→なのでk8sはネットワークを認識している&
ネットワークが実際に存在する
Agenda
×コンテナのネットワークについて
×実際の手法
×コードの解説 (超簡略版)
× CNIがどのようにインターフェースをコンテナに関連付けしているのか?
× CNIプロジェクト本家のbridgeプラグイン
× github.com/containernetworking/plugins/main/bridge/bridge.g
o
× 500行程度
×応用
bridge.go
489 func main() {
490 skel.PluginMain(cmdAdd, cmdDel, version.All)
491 }
× https://github.com/containernetworking/cni に仕様書
× CNIは単体で実行できるものならなんでもOK (shell scriptも可)
× 実装するものはADDとDELとVERSIONの3命令
× 必要な情報はSTDINと環境変数で提供
× STDIN: ネットワークの情報 (/etc/cni/net.d)
× 環境変数: コマンド(ADD/DEL/VERSION)とコンテナの情報
bridge.go
310 func cmdAdd(args *skel.CmdArgs) error {
//略
324 br, brInterface, err := setupBridge(n)
//略
329 netns, err := ns.GetNS(args.Netns)
//略
335 hostInterface, containerInterface, err := setupVeth(netns, br, args.IfName,
n.MTU, n.HairpinMode)
//略
365 if err := netns.Do(func(_ ns.NetNS) error {
//略
375 if err := ipam.ConfigureIface(args.IfName, result); err != nil {
ブリッジを見つけて
コンテナのNET_NSを
取得
Vethの作成とブリッ
ジへの接続
コンテナのNET_NSに
移動して
IPアドレスを設定
bridge.go
コードから分かること:
× vethはnetlink (kernelの機能)で作成可能
× netlinkのIFLA_NET_NS_FDでインターフェースを他のNET_NSに移動
× setns()システムコールを使うことでプログラム内で希望したNET_NSに移動
× Go言語ではnetlink, netns等のライブラリがgithubに存在すること
→ これらを使えばコンテナのネットワークを自由に変更可能?
Agenda
×コンテナのネットワークについて
×実際の手法
×コードの解説 (超簡略版)
×応用
× ここまでの知見からツールを作ってみました
× ツールの解説
× デモ
koko (Container Connector)
https://github.com/redhat-nfvpe/koko
netns, netlinkを使ってコンテナをp2pで接続するコマンド
コンテナ:
docker, netns, PID
インターフェース:
veth, vxlan, vlan, macvlan
Port-mirroring (network tapping)
ingress, egress, both
demo1
× dockerとnetns間をvethで接続してping
koko -d test1,eth0,192.168.1.1/24 -d test2,eth0,192.168.1.2/24
demo2
× dockerのコンテナにveth3を作成
× veth2が受信するパケットをミラーして、vxlanにして他のホストに送信
koko -d node1,mirror1,mirror:ingress:eth0 -x eth1,10.10.10.2,100
Agenda
×コンテナのネットワークについて
×実際の手法
×コードの解説
×応用
Thanks!
Any questions?
You can find me at
@s1061123
&
s1061123@gmail.com
SlidesCarnival icons are editable shapes.
This means that you can:
● Resize them without losing quality.
● Change fill color and opacity.
● Change line color, width and style.
Isn’t that nice? :)
Examples:
Now you can use any emoji as an icon!
And of course it resizes without losing quality and you can change the color.
How? Follow Google instructions
https://twitter.com/googledocs/status/730087240156643328
✋👆👉👍👤👦👧👨👩👪💃🏃💑❤😂
😉😋😒😭👶😸🐟🍒🍔💣📌📖🔨🎃🎈
🎨🏈🏰🌏🔌🔑 and many more...
😉

More Related Content

What's hot

Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Panda Yamaki
 
Richard high performance fuzzing ja
Richard  high performance fuzzing jaRichard  high performance fuzzing ja
Richard high performance fuzzing jaPacSecJP
 
import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28th0x0472
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発slankdev
 
Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)ashigirl ZareGoto
 
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御動的ネットワークパス構築と連携したエッジオーバレイ帯域制御
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御Ryousei Takano
 
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchOpen flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchMasaru Oki
 
Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)Panda Yamaki
 
hpingで作るパケット
hpingで作るパケットhpingで作るパケット
hpingで作るパケットTakaaki Hoyo
 
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみようHokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみようPanda Yamaki
 
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Panda Yamaki
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch UsecasesSakiko Kawai
 
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Panda Yamaki
 
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料Etsuji Nakai
 
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)Panda Yamaki
 
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。(^-^) togakushi
 
Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Shinichi Hirauchi
 
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)Panda Yamaki
 
クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!Etsuji Nakai
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Coreslankdev
 

What's hot (20)

Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
 
Richard high performance fuzzing ja
Richard  high performance fuzzing jaRichard  high performance fuzzing ja
Richard high performance fuzzing ja
 
import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発
 
Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)
 
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御動的ネットワークパス構築と連携したエッジオーバレイ帯域制御
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御
 
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchOpen flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitch
 
Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)
 
hpingで作るパケット
hpingで作るパケットhpingで作るパケット
hpingで作るパケット
 
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみようHokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
 
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
 
Lagopus Switch Usecases
Lagopus Switch UsecasesLagopus Switch Usecases
Lagopus Switch Usecases
 
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
 
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
 
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
 
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
 
Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Windowsのパケットモニタ作成
Windowsのパケットモニタ作成
 
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
 
クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Core
 

Viewers also liked

標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのかabend_cve_9999_0001
 
博士学生が語る、4K/8K/VR配信基盤の最先端とコンテンツ配信の未来
博士学生が語る、4K/8K/VR配信基盤の最先端とコンテンツ配信の未来博士学生が語る、4K/8K/VR配信基盤の最先端とコンテンツ配信の未来
博士学生が語る、4K/8K/VR配信基盤の最先端とコンテンツ配信の未来Takuma Nakajima
 
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見Mitsutoshi Kiuchi
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説貴仁 大和屋
 
Light and shadow of microservices
Light and shadow of microservicesLight and shadow of microservices
Light and shadow of microservicesNobuhiro Sue
 
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~Masataka Tsukamoto
 
情シスのひみつ
情シスのひみつ情シスのひみつ
情シスのひみつcloretsblack
 
「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考えるEtsuji Nakai
 
Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題
Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題
Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題Yasushi Hara
 
強化学習による 「Montezuma's Revenge」への挑戦
強化学習による 「Montezuma's Revenge」への挑戦強化学習による 「Montezuma's Revenge」への挑戦
強化学習による 「Montezuma's Revenge」への挑戦孝好 飯塚
 
Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実J-Stream Inc.
 

Viewers also liked (13)

標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
 
博士学生が語る、4K/8K/VR配信基盤の最先端とコンテンツ配信の未来
博士学生が語る、4K/8K/VR配信基盤の最先端とコンテンツ配信の未来博士学生が語る、4K/8K/VR配信基盤の最先端とコンテンツ配信の未来
博士学生が語る、4K/8K/VR配信基盤の最先端とコンテンツ配信の未来
 
Ansible101
Ansible101Ansible101
Ansible101
 
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見
(2017.8.27) Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 
Light and shadow of microservices
Light and shadow of microservicesLight and shadow of microservices
Light and shadow of microservices
 
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
 
情シスのひみつ
情シスのひみつ情シスのひみつ
情シスのひみつ
 
「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える
 
Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題
Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題
Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題
 
強化学習による 「Montezuma's Revenge」への挑戦
強化学習による 「Montezuma's Revenge」への挑戦強化学習による 「Montezuma's Revenge」への挑戦
強化学習による 「Montezuma's Revenge」への挑戦
 
170827 jtf garafana
170827 jtf garafana170827 jtf garafana
170827 jtf garafana
 
Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実
 

Similar to コンテナのネットワークインターフェース その実装手法とその応用について

FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始めtetsusat
 
VPP事始め
VPP事始めVPP事始め
VPP事始めnpsg
 
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成Takashi Kanai
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門Etsuji Nakai
 
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419エイシュン コンドウ
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1Etsuji Nakai
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境yut148atgmaildotcom
 
OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!ksk_ha
 
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) VirtualTech Japan Inc.
 
「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例SAKURA Internet Inc.
 
自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介Kentaro Mitsuyasu
 
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編Amazon Web Services Japan
 
Security workshop 20131213
Security workshop 20131213Security workshop 20131213
Security workshop 20131213Yuuki Takano
 
TCP connectionの保存と復元
TCP connectionの保存と復元TCP connectionの保存と復元
TCP connectionの保存と復元mittyorz
 
30分でRHEL6 High Availability Add-Onを超絶的に理解しよう!
30分でRHEL6 High Availability Add-Onを超絶的に理解しよう!30分でRHEL6 High Availability Add-Onを超絶的に理解しよう!
30分でRHEL6 High Availability Add-Onを超絶的に理解しよう!Etsuji Nakai
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~Preferred Networks
 
RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料
RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料
RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料VirtualTech Japan Inc.
 

Similar to コンテナのネットワークインターフェース その実装手法とその応用について (20)

Docker入門 OSC 2018 Tokyo/Spring
Docker入門 OSC 2018 Tokyo/SpringDocker入門 OSC 2018 Tokyo/Spring
Docker入門 OSC 2018 Tokyo/Spring
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
KubernetesとFlannelでWindows上にPod間VXLAN Overlayネットワークを構成
 
Lxc on cloud
Lxc on cloudLxc on cloud
Lxc on cloud
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門
 
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
 
OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!
 
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
 
「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例「さくらのクラウド」におけるVyattaの活用事例
「さくらのクラウド」におけるVyattaの活用事例
 
自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介
 
計算機理論入門08
計算機理論入門08計算機理論入門08
計算機理論入門08
 
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
 
Security workshop 20131213
Security workshop 20131213Security workshop 20131213
Security workshop 20131213
 
TCP connectionの保存と復元
TCP connectionの保存と復元TCP connectionの保存と復元
TCP connectionの保存と復元
 
30分でRHEL6 High Availability Add-Onを超絶的に理解しよう!
30分でRHEL6 High Availability Add-Onを超絶的に理解しよう!30分でRHEL6 High Availability Add-Onを超絶的に理解しよう!
30分でRHEL6 High Availability Add-Onを超絶的に理解しよう!
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
 
RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料
RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料
RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料
 

More from Tomofumi Hayashi

CNIふぉーびぎなーず
CNIふぉーびぎなーずCNIふぉーびぎなーず
CNIふぉーびぎなーずTomofumi Hayashi
 
Opnfv primer how to get into opnfv
Opnfv primer  how to get into opnfv Opnfv primer  how to get into opnfv
Opnfv primer how to get into opnfv Tomofumi Hayashi
 
OpenStack Summit Boston DMA Appendix
OpenStack Summit Boston DMA AppendixOpenStack Summit Boston DMA Appendix
OpenStack Summit Boston DMA AppendixTomofumi Hayashi
 
OPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects SummaryOPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects SummaryTomofumi Hayashi
 
nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in LinuxTomofumi Hayashi
 
Ocaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axshOcaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axshTomofumi Hayashi
 

More from Tomofumi Hayashi (9)

CNIふぉーびぎなーず
CNIふぉーびぎなーずCNIふぉーびぎなーず
CNIふぉーびぎなーず
 
4 rhtn tohayash-multus
4 rhtn tohayash-multus4 rhtn tohayash-multus
4 rhtn tohayash-multus
 
Opnfv primer how to get into opnfv
Opnfv primer  how to get into opnfv Opnfv primer  how to get into opnfv
Opnfv primer how to get into opnfv
 
Opnfv handson apex intro
Opnfv handson apex introOpnfv handson apex intro
Opnfv handson apex intro
 
OpenStack Summit Boston DMA Appendix
OpenStack Summit Boston DMA AppendixOpenStack Summit Boston DMA Appendix
OpenStack Summit Boston DMA Appendix
 
Software forwarding path
Software forwarding pathSoftware forwarding path
Software forwarding path
 
OPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects SummaryOPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects Summary
 
nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linux
 
Ocaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axshOcaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axsh
 

コンテナのネットワークインターフェース その実装手法とその応用について

Editor's Notes

  1. http://www.slidescarnival.com/ja/%E3%82%A2%E3%82%A4%E3%82%A2%E3%83%A9%E3%82%B9%E3%81%AE%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88/1681