Stein 오픈스택 클라우드 서버 구축(16) - Neutron 기반 Service Function Chaining (SFC) 기능 추가하기

blog post 

 

오픈스택에서 네트워킹 기능을 전담하는 컴포넌트로 Neutron이 있습니다. Public & Private 네트워크 구성부터 서브네팅, 라우터, DHCP, 패킷 포워딩 등, 다양한 기능을 수행하죠. 하지만 Neutron의 기능은 이게 끝이 아닙니다. 기본 기능에서 확장하여 추가 기능들을 사용할 수 있습니다. 아래 링크에서 보시면 어떠한 추가 기능들이 있는지 대략적으로 살펴볼 수 있습니다.

 

OpenStack Docs: Configuration

 

docs.openstack.org

 

이번 포스트에서는 Neutron을 확장하여 Service Function Chaining(이하 SFC)으로 불리는 기능을 추가해 보도록 하겠습니다. 참고로, 오픈스택 클라우드 시스템을 운영하는 과정에 있어 반드시 필요한 기능은 아니기 때문에 꼭 설치할 필요는 없는 기능입니다.

 

SFC의 개념 및 활용 방법에 관해서는 별도의 포스트로 다루도록 하고, 이번 포스트에서는 설치와 세팅에 집중하도록 하겠습니다.

 

* 참고: 현재 아래 설정을 토대로 Stein 버전에서 sfc를 시도해 본 결과, 체이닝 룰이 제대로 적용되지 않는 것으로 보입니다. 실행 테스트를 진행 중에 있으며, 결과에 대해 추후에 다시 포스팅하도록 하겠습니다. 아래 설정은 오픈스택 공식 문서를 바탕으로 작성하였으며, 참고만 바랍니다.

 

 

컨트롤러 노드

 

 

컨트롤러 노드에서 우선 패키지를 설치합니다.

 

[root@Controller ~]# yum install https://cbs.centos.org/kojifiles/packages/python-networking-sfc/8.0.0/1.el7/noarch/python2-networking-sfc-8.0.0-1.el7.noarch.rpm

 


 

neutron.conf에서 아래와 같이 설정해 줍니다.

[root@Controller ~]# vim /etc/neutron/neutron.conf
[DEFAULT]

//아래 옵션에서 2개의 플러그인 추가
service_plugins = flow_classifier,sfc

...기타 옵션 생략...

// 아래 항목 전체 추가
[sfc]
drivers = ovs

[flowclassifier]
drivers = ovs

 

서비스를 재시작 해 줍니다.

 

[root@Controller ~]# systemctl restart neutron-server

 

DB 데이터도 동기화해 줍니다.

 

[root@Controller ~]# neutron-db-manage --subproject networking-sfc upgrade head

 

 

컴퓨트 노드 설정

 

 

 아래와 같이 ml2에서 확장 agent로 sfc를 추가해 줍니다.

 

[root@Compute0 ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini
[agent]
extensions = sfc

 

다음으로 openvswitch 서비스를 재시작해줍니다.

 

[root@Compute0 ~]# systemctl restart neutron-openvswitch-agent

 

 SFC 설정은 여기까지 입니다. 

 

TAGS.

Comments