23
Contiv on Vagrant/VirtualBox Takao Setaka @twtko Feb 24, 2016

Contiv on vagrant_20160224

Embed Size (px)

Citation preview

Contiv on Vagrant/VirtualBox

Takao Setaka

@twtko

Feb 24, 2016

What is Contiv?

Infrastructure Policy for Containerized Applications

• 2015年のDockerCon EuropeにてCiscoが発表したオープンソースプロジェクト

Source Code - Githubhttps://github.com/contiv

Documentshttp://docs.contiv.io/

Today’s demo

ContivのNetpluginをACIを使わずに試してみる

Demo environment

Linux (CentOS 7.2)

VirtualBox 5.0Vagrant 1.8.1

netplugin-node1(Ubuntu 15.04)

netplugin-node2(Ubuntu 15.04)

Docker Engine1.9.0

ContivNetplugin

Git

ContivNetmaster

Docker Engine1.9.0

ContivNetplugin

Contiv Netplugin - Architecture

Contiv Netplugin – Object Model

Netplugin

Volplugin

Contiv Netplugin – Keywords

キーワード 概要

Tenant マルチテナントを実現するための Object 構造におけるトップ階層。テナント間では完全にネットワーク通信は分離される。

Network VRFに相当。

Endpoint Group (EPG) 同じポリシーを適用するエンドポイントの集合体。

Policy Endpoint Group間の通信に対して適用されるルールの集合体。

Rule 識別子(IPアドレス、ポート番号、接続ネットワーク、EPGなど)とアクション(許可もしくは拒否)の組み合わせによって定義されるルール。

Contiv Netplugin – Deploy demo

git clone https://github.com/contiv/netplugin

cd netplugin

make demo

vagrant status

vagrant ssh netplugin-node1

vagrant ssh netplugin-node2

Contiv Netplugin – Create Tenant

netctl tenant create <Tenant Name>

ex)

netctl tenant create contiv-demo1

netctl tenant list

Contiv Netplugin – Create Tenant

Tenant

Contiv Netplugin – Create Network

netctl net create <Network Name> --tenant=xxxx--subnet=x.x.x.x/xx --gateway=x.x.x.254--pkt-tag=xxxx

ex)

netctl net create contiv-net1 --tenant=contiv-demo1--subnet=192.168.1.0/24 --gateway=192.168.1.254--pkt-tag=1001

netctl net list --tenant=xxxx

Contiv Netplugin – Create Network

Tenant - contiv-demo1

Network - net1 192.168.1.0/24 Network - net2192.168.2.0/24

Contiv Netplugin – Create Policy

netctl policy create --tenant=xxxx <Policy Name>

ex)

netctl policy create --tenant=contiv-demo1 web_policy

netctl policy list --tenant=xxxx

Contiv Netplugin – Create Network

Tenant - contiv-demo1

Network - net1 192.168.1.0/24 Network - net2192.168.2.0/24

Policy - policy1

Contiv Netplugin – Create/Add Rule

netctl policy rule-add <Options> <Policy Name> <Rule ID>

ex)

netctl policy rule-add --tenant=contiv-demo1--priority=1 --protocol=icmp --action=allow web_policy 1

netctl policy rule-ls --tenant=xxxx <Policy Name>

Contiv Netplugin – Create/Add Rule

Tenant - contiv-demo1

Network - net1 192.168.1.0/24 Network - net2192.168.2.0/24

Policy - policy1

Rule.1 - tcp/80 allow Rule.2 - icmp allow

Contiv Netplugin – Create Group

netctl group create <Options> <Network Name> <Group Name>

ex)

netctl group create --tenant=contiv-demo1--policy=web_policy contiv-net1 group1

netctl group list --tenant=xxxx

Contiv Netplugin – Create/Add Rule

Tenant - contiv-demo1

Network - net1 192.168.1.0/24 Network - net2192.168.2.0/24

Policy - policy1

Rule.1 - tcp/80 in allow Rule.2 - icmp allow

Group - Group1 Group - Group2

Contiv Netplugin – Docker network

docker network ls

Contiv Netplugin – Docker run!

docker run -itd --name=xx --hostname=xx --net=xx <image> <exec>

ex)

docker run -itd --name=web1 --hostname=web1--net=group1.net1/contiv-demo1 Ubuntu /bin/bash

Contiv Netplugin – Create/Add Rule

Tenant - contiv-demo1

Network - net1 192.168.1.0/24 Network - net2192.168.2.0/24

Policy - policy1

Rule.1 - icmp deny

Group - Group1 Group - Group2

vm1 vm2

Contiv Netplugin – Create/Add Rule

Tenant - contiv-demo1

Network - net1 192.168.1.0/24 Network - net2192.168.2.0/24

Policy - policy1

Rule.1 - icmp allow

Group - Group1 Group - Group2

vm1 vm2