"Open vSwitch"의 두 판 사이의 차이

오픈소스 비즈니스 컨설팅
둘러보기로 가기 검색하러 가기
잔글
잔글
108번째 줄: 108번째 줄:
  
 
=== VLAN 설정 ===
 
=== VLAN 설정 ===
 
+
<pre><span style="color: rgb(68, 68, 68); font-family: monospace; font-size: 14px; line-height: 21px;">ovs-vsctl add-port br0 tap0 tag=100</span></pre>
 
참고 문헌
 
참고 문헌
  

2015년 10월 21일 (수) 20:28 판

Distributed Virtual Switch인 OVS (Open vSwitch)를 정리 합니다.

OVS 개요

Linux의 상단에서 가상의 L2 Switch를 생성합니다. 정교한 패킷 제어 기능을 제공하는 OpenFlow 프로토콜을 지원 합니다.

  • NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag 지원

Open vSwitch 설치

Source로 설치

  • RPM 생성을 위한 환경 구성
yum install -y rpm-build
yum groupinstall -y "Development Tools"

yum install -y openssl-devel
yum install kernel-devel

mkdir -p $HOME/rpmbuild/SOURCES
$HOME/rpmbuild/SOURCES/
wget http://openvswitch.org/releases/openvswitch-2.3.0.tar.gz
tar xvfz openvswitch-2.3.0.tar.gz
cd openvswitch-2.3.0

vi rhel/openvswitch.spec
 ### Requires: openvswitch-kmod, logrotate, python
 Requires: logrotate, python

rpmbuild -bb -D `uname -r` rhel/openvswitch.spec
### rpmbuild -bb rhel/openvswitch.spec
### rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec

cd $HOME/rpmbuild/RPMS/x86_64
ls -alF

yum localinstall openvswitch-2.3.0-1.x86_64.rpm

RPM으로 설치

wget http://cbs.centos.org/kojifiles/packages/openvswitch/2.3.1/2.el7/x86_64/openvswitch-2.3.1-2.el7.x86_64.rpm                    
rpm -ivh openvswitch-2.3.1-2.el7.x86_64.rpm

OVS 명령어

Bridge와 Port 설정

ovs-vsctl add-br br0                  #--- br0 Bridge 추가
ovs-vsctl del-br br0                  #--- br0 Bridge 삭제
ovs-vsctl list-br
# vi /etc/sysconfig/network-scripts/ifcfg-br0

ovs-vsctl set bridge br0 stp_enable=true     #--- STP 활성화

ovs-vsctl add-port br0 eth0           #--- br0 Bridge에 eth0 NIC 연결
ovs-vsctl del-port br0 eth0
ovs-vsctl list-ports br0
​# ethtool -K eth0 gro off

newview
ovs-vsctl show                        #--- Bridge 상세 조회

GRE 터널 설정

Server A (eth0 : 192.168.0.2)

brctl addbr docker0
ip addr add 10.0.0.1/24 dev docker0   #--- Container의 IP는 10.0.0.nnn 사용

ovs-vsctl add-br br0
ovs-vsctl add-port br0 gre0 -- set interface gre0 type=gre options:remote_ip=192.168.0.3
ovs-vsctl add-port br0 docker0
# brctl addif docker0 br0

Server B (eth0 : 192.168.0.3)

brctl addbr docker0
ip addr add 10.0.0.2/24 dev docker1   #--- Container의 IP는 10.0.0.nnn 사용

ovs-vsctl add-br br0
ovs-vsctl add-port br0 gre0 -- set interface gre0 type=gre options:remote_ip=192.168.0.2
ovs-vsctl add-port br0 docker0
# brctl addif docker0 br0

방화벽 설정

iptables -t nat -A POSTROUTING -s 10.0.0.1/24 ! -d 10.0.0.1/24 -j MASQUERADE         #--- NAT 사용 설정
iptables -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT  #--- Container로 들어오는 트래픽 허용
iptables -A FORWARD -i docker0 ! -o docker0 -j ACCEPT                                #-- Container에서 나가는 트래픽 허용
iptables -A FORWARD -i docker0 -o docker0 -j ACCEPT                                  #--- 나가는 트래픽 모두 허용


참고 문헌

VLAN 설정

<span style="color: rgb(68, 68, 68); font-family: monospace; font-size: 14px; line-height: 21px;">ovs-vsctl add-port br0 tap0 tag=100</span>

참고 문헌

VxLAN 설정

ovs–vsctl add–port br1 vx1 — set interface vx1 type=vxlan options:remote_ip=192.168.1.10
ovs–vsctl add–port br1 vx1 — set interface vx1 type=vxlan options:remote_ip=192.168.1.11

OVN

OVN (Open Virtual Network)

  • L2 segments
  • L3 forwarding
  • Security Group

참고 문헌