본문 바로가기

Cloud Native/Research_OpenStack

OpenStack with networking-sfc (devstack)

OpenStack SFC 서비스


OpenStack 환경에서 여러가지 서비스를 제공할 수 있는데 대표적인 것이 Firewall As A Service(FaaS)이다.


최근 NFV(Network Function Virtualization)가 각광을 받으면서 당연히 OpenStack이 더욱 주목을 받고 있다.


쉽게 말하면 OpenStack을 사용하여 Cloud 환경을 구축하고 NFV 개념이 포함된 VM을 생성하여 네트워킹 서비스를 제공하는 것이다.


네트워킹 서비스를 제공하는데 있어 NFV VM들을 묶어 끊임없는 네트워크 서비스를 제공하는 것이 SFC의 골자인데 SFC라고 함은 Service Function Chaining의 약자이다.


SDN | Open Source | Software Defined Networking | MWC | Mobile World Congress | ETSI | NFV Orchestration | Network Automation | Network Functions Virtualization

<Service Function Chaining 대표도, 참고: http://getcloudify.org/2016/02/24/sdn-mwc-open-source-network-cloud-etsi-vnf-nfv-orchestration-automation.html>


위 대표도에서 굉장히 광범위하게 설명하자면 Firewall, Malware Detection, Parental Controls, Video Optimizer 등이 OpenStack에서 구성한 VM(NFV 기능)이라고 할때 사용자들은 하나의 서비스를 받기위하여 Firewall 등의 서비스를 거칠 수 있게 하는 것이다.


즉 사용자가 Video 서비스를 제공받는다고 하는 경우 별도의 Firewall, Video Optimizer 없이 해당 기능이 포함된 VM을 통하여 네트워킹 될 수 있도록 하는 서비스이다.


OpenStack에서는 networking-sfc 라는 프로젝트로 시작이 되고 있으며 아래 내용은 networking-sfc wiki 페이지를 참조한 implementation 방법이다.


참조사이트: https://wiki.openstack.org/wiki/Neutron/ServiceInsertionAndChaining



devstack & networking-sfc Basic Setup




1. 기본 설정


1-1. VirtualBox

  • ubuntu 14.0.4 이미지 활용
  • VM 2개 생성: devstack all-in-one / compute
  • VM 인터페이스는 어댑터1: NAT, 어댑터2: 호스트전용어댑터
    • 각자의 환경에 맞도록 설정

###### VirtualBox All-in-One VM  ######


$ sudo vi /etc/network/interfaces


# Public Network

auto eth0

iface eth0 inet static

      address 10.0.2.5

      gateway 10.0.2.2

      netmask 255.255.255.0

      dns-nameservers 8.8.8.8


# Management Network

auto eth1

iface eth1 inet static

      address 192.168.56.5

      netmask 255.255.255.0


################################


###### VirtualBox Compute VM  ######


$ sudo vi /etc/network/interfaces


# Public Network

auto eth0

iface eth0 inet static

      address 10.0.2.10

      gateway 10.0.2.2

      netmask 255.255.255.0

      dns-nameservers 8.8.8.8


# Management Network

auto eth1

iface eth1 inet static

      address 192.168.56.10

      netmask 255.255.255.0


################################


1-2. 업데이트 & 업그레이드 / 필수 프로그램 설치


$ sudo apt-get update

$ sudo apt-get -y upgrade


1-3. OpenStack liberty Repository 설정


sudo apt-get install software-properties-common

$ sudo add-apt-repository cloud-archive:liberty


1-4. devstack 및 networking-sfc 설치 디렉토리


$ sudo mkdir /opt/stack

sudo chown stack.stack /opt/stack



2. networking-sfc setup


2-1. networking-sfc download (All_in_one & Compute)


sudo apt-get install -y git

$ cd /opt/stack

$ git clone git://git.openstack.org/openstack/networking-sfc.git -b stable/liberty



3. devstack setup


3-1. devstack download (All_in_one & Compute)


$ cd /opt/stack

git clone git://git.openstack.org/openstack-dev/devstack.git -b stable/liberty



4. devstack 실행


4-1. 버추얼박스 VM01: All-in-One (Controller+Network+Compute)


cd /opt/stack/devstack

$ vi localrc


SERVICE_TOKEN=admin

ADMIN_PASSWORD=admin

MYSQL_PASSWORD=admin

RABBIT_PASSWORD=admin

SERVICE_PASSWORD=$ADMIN_PASSWORD

 

HOST_IP=192.168.56.5 (All-in-One VM의 eth1 IP)

SERVICE_HOST=192.168.56.5 (All-in-One VM의 eth1 IP)

SYSLOG=True

SYSLOG_HOST=$HOST_IP

SYSLOG_PORT=516


LOGFILE=$DEST/logs/stack.sh.log

LOGDAYS=2


disable_service tempest


RECLONE=no

PIP_UPGRADE=False


MULTI_HOST=TRUE


# Disable Nova Networking

disable_service n-net


# Disable Nova Compute

#disable_service n-cpu


# Neutron - Networking Service

enable_service q-svc

enable_service q-agt

enable_service q-dhcp

enable_service q-l3

enable_service q-meta

enable_service neutron


# Cinder

disable_service c-api

disable_service c-sch

disable_service c-vol


# Disable security groups

Q_USE_SECGROUP=False

LIBVIRT_FIREWALL_DRIVER=nova.virt.firewall.NoopFirewallDriver


enable_plugin networking-sfc /opt/stack/networking-sfc


$ ./stack.sh


4-2. 버추얼박스 VM02: Compute


cd /opt/stack/devstack

$ vi localrc


SERVICE_TOKEN=admin

ADMIN_PASSWORD=admin

MYSQL_PASSWORD=admin

RABBIT_PASSWORD=admin

DATABASE_PASSWORD=admin

SERVICE_PASSWORD=$ADMIN_PASSWORD

DATABASE_TYPE=mysql


HOST_IP=192.168.56.10 (Compute VM의 eth1 IP)

SERVICE_HOST=192.168.56.5 (All-in-One VM의 eth1 IP)

SYSLOG=True

SYSLOG_HOST=$HOST_IP

SYSLOG_PORT=516

MYSQL_HOST=$SERVICE_HOST

RABBIT_HOST=$SERVICE_HOST

Q_HOST=$SERVICE_HOST

GLANCE_HOSTPORT=$SERVICE_HOST:9292


NOVA_VNC_ENABLED=True

NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html"

VNCSERVER_LISTEN=$HOST_IP

VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN


LOGFILE=$DEST/logs/stack.sh.log

LOGDAYS=2


disable_service tempest


RECLONE=no

PIP_UPGRADE=False


MULTI_HOST=TRUE


# Disable Nova Networking

disable_service n-net

disable_service neutron


# Neutron - Networking Service

ENABLED_SERVICES=n-cpu,q-agt


# Disable security groups

Q_USE_SECGROUP=False

LIBVIRT_FIREWALL_DRIVER=nova.virt.firewall.NoopFirewallDriver


enable_plugin networking-sfc /opt/stack/networking-sfc


$ ./stack.sh



5. 사용자 UI 접속 및 서비스 사용


horizon url : http://<All-in-One eth1 IP>


user name : admin

password : admin




#############################################################


현재 DevStack 만 지원하는 듯 함...


Multi Node 에 설치하는 경우 설치는 문제 없으나 networking-sfc의 flow가 보이지 않음

(https://ask.openstack.org/en/question/91643/using-networking-sfc-with-liberty-neutron-not-a-devstack/)


WARNING!!!

현재 devstack stable/liberty 와 networking-sfc 사이의 ovs 버전이 매치되지 않아 에러가 발생함...

now a time. devstack ovs and networking-sfc miss-match.

'Cloud Native > Research_OpenStack' 카테고리의 다른 글

OpenStack SFC Flow 분석  (1) 2016.07.06
OpenStack SFC manual Install (Liberty)  (4) 2016.06.11
OpenStack REST 확인  (0) 2015.10.19
OpenStack DVR - SlideShare  (0) 2015.06.29
OpenStack DVR – DNAT Traffic  (0) 2015.06.29