"Open vSwitch"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
잔글 |
잔글 |
||
108번째 줄: | 108번째 줄: | ||
=== VLAN 설정 === | === VLAN 설정 === | ||
− | <pre | + | <pre>ovs-vsctl add-port br0 tap0 tag=100</pre> |
참고 문헌 | 참고 문헌 | ||
2015년 10월 21일 (수) 20:28 판
Distributed Virtual Switch인 OVS (Open vSwitch)를 정리 합니다.
- 홈페이지 : http://openvswitch.org/
- 다운로드 : http://openvswitch.org/download/
- 라이선스 : Apache 2 License
- 플랫폼 :
목차
OVS 개요
Linux의 상단에서 가상의 L2 Switch를 생성합니다. 정교한 패킷 제어 기능을 제공하는 OpenFlow 프로토콜을 지원 합니다.
- NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag 지원
Open vSwitch 설치
Source로 설치
- RPM 생성을 위한 환경 구성
- 참고 : CentOS 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
- CentOS 7에서 Open vSwitch 설치
$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 #--- 나가는 트래픽 모두 허용
참고 문헌
- http://openvswitch.org/support/config-cookbooks/port-tunneling/
- http://www.yongbok.net/blog/tag/open-vswitch-gre-tunnel/
VLAN 설정
ovs-vsctl add-port br0 tap0 tag=100
참고 문헌
- http://openvswitch.org/support/config-cookbooks/vlan-configuration-cookbook/
- http://blog.scottlowe.org/2014/11/21/removing-ovs-configuration-settings/
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