PackStack Mitaka 패키지와 PackStack 설치


네트워크 IP 설정를 완료하면 SSH 클라이언트 툴 또는 명령어를 이용해서 해당 네트워크 IP로 접속합니다. 앞에서 192.168.56.102로 할당 받았으므로 SSH 접속 시 192.168.56.102로 접속합니다. 접속한 후 PackStack을 설치를 위해 설치할 버전의 레파지토리 rpm을 받아와야 합니다. 우리는 Mitaka를 설치할 예정이므로 Mitaka 패키지를 받아오겠습니다.



1.     레드햇에서 제공하는 RDO공식 문서(https://www.rdoproject.org/install/quickstart/)를 참조하여 아래와 같이 레파지토리 RPM을 설치합니다.

[root@centos ~]# yum install -y https://www.rdoproject.org/repos/rdo-release.rpm

Loaded plugins: fastestmirror

rdo-release.rpm                                                                  | 5.3 kB  00:00:00    

Examining /var/tmp/yum-root-mFGmE5/rdo-release.rpm: rdo-release-mitaka-2.noarch

Marking /var/tmp/yum-root-mFGmE5/rdo-release.rpm to be installed

Resolving Dependencies

--> Running transaction check

---> Package rdo-release.noarch 0:mitaka-2 will be installed

--> Finished Dependency Resolution

                                                          1/1

Installed:

  rdo-release.noarch 0:mitaka-2                                                                        

 

Complete!

[root@centos ~]#

 

Tip===

[Q&A] Packstack을 이용하여 다른 버전의 오픈스택은 어떻게 설치하나요?

RDO PackStack은 레드햇에서 제공하는 공식 사이트(https://www.rdoproject.org/install/quickstart/)에 방문하여 설치 문서를 확인하고 설치하면 가장 최신의 오픈스택을 설치할 수 있습니다.


만일 설치하고자 하는 오픈스택 버전이 RDO 공식 설치 문서에 안내되어 있는 경우와 다른 때는 아래와 같이 패도라 오픈스택 레파지토리 사이트(https://repos.fedorapeople.org/repos/openstack/)에 방문하면, 현재 설치가능한 오픈스택 버전을 모두 확인할 수 있습니다.


설치하고자 하는 오픈스택의 버전을 선택하고 들어가면 아래와 같이 업데이트 된 PRM 목록을 확인할 수 있습니다. 이때 가장 최근에 업데이트 된 버전에서 마우스 오른쪽 버튼을 클릭하면 아래와 같이 서브 메뉴가 나옵니다. 이때, [다른 이름으로 링크 저장]을 클릭합니다.

 

복사한 URL은 아래와 같이 붙여넣고 실행을 하면 해당 레파지토리가 설치됩니다.

[root@centos ~]# yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-mitaka/rdo-release-mitaka-3.noarch.rpm

Loaded plugins: fastestmirror

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast

rdo-release-mitaka-3.noarch.rpm                                                      | 5.4 kB  00:00:00    

Examining /var/tmp/yum-root-SW9UDz/rdo-release-mitaka-3.noarch.rpm: rdo-release-mitaka-3.noarch

Marking /var/tmp/yum-root-SW9UDz/rdo-release-mitaka-3.noarch.rpm to be installed

Resolving Dependencies

--> Running transaction check

---> Package rdo-release.noarch 0:mitaka-3 will be installed

--> Finished Dependency Resolution

Installed:

  rdo-release.noarch 0:mitaka-3                                                                             

 

Complete!

[root@centos ~]#

 

====

 

2.     레파지토리 설치가 완료되었으면 이번에는 yum update 명령어를 이용하여 시스템 업데이트를 합니다.

[root@centos ~]# yum update -y

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: ftp.daumkakao.com

 * extras: mirror.oasis.onnetcorp.com

 * updates: centos.mirror.cdnetworks.com

Resolving Dependencies

--> Running transaction check

---> Package NetworkManager.x86_64 1:1.0.0-14.git20150121.b4ea599c.el7 will be updated

---> Package NetworkManager.x86_64 1:1.0.6-29.el7_2 will be an update

---> Package NetworkManager-libnm.x86_64 1:1.0.0-14.git20150121.b4ea599c.el7 will be updated

---> Package NetworkManager-libnm.x86_64 1:1.0.6-29.el7_2 will be an update

---> Package NetworkManager-team.x86_64 1:1.0.0-14.git20150121.b4ea599c.el7 will be updated

---> Package NetworkManager-team.x86_64 1:1.0.6-29.el7_2 will be an update

---> Package NetworkManager-tui.x86_64 1:1.0.0-14.git20150121.b4ea599c.el7 will be updated

---> Package NetworkManager-tui.x86_64 1:1.0.6-29.el7_2 will be an update

  yum.noarch 0:3.4.3-132.el7.centos.0.1                                                                

  yum-plugin-fastestmirror.noarch 0:1.1.31-34.el7                                                      

  zlib.x86_64 0:1.2.7-15.el7                                                                           

 

Complete!

 

3.     업데이트까지 완료했으면 아래와 같이 Packstack을 설치합니다.

[root@centos ~]# yum install -y openstack-packstack

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: ftp.daumkakao.com

 * extras: mirror.oasis.onnetcorp.com

 * updates: centos.mirror.cdnetworks.com

Resolving Dependencies

--> Running transaction check

---> Package openstack-packstack.noarch 0:8.0.0-1.el7 will be installed

--> Processing Dependency: openstack-packstack-puppet = 8.0.0-1.el7 for package: openstack-packstack-8.0.0-1.el7.noarch

Dependency Installed:

  PyYAML.x86_64 0:3.10-11.el7                           jbigkit-libs.x86_64 0:2.0-11.el7              

  libtiff.x86_64 0:4.0.3-14.el7                         libwebp.x86_64 0:0.3.0-3.el7                  

  libyaml.x86_64 0:0.1.4-11.el7_0                       openstack-packstack-puppet.noarch 0:8.0.0-1.el7

  openstack-puppet-modules.noarch 1:8.0.4-1.el7         pyOpenSSL.noarch 0:0.15.1-1.el7               

  python-docutils.noarch 0:0.11-0.2.20130715svn7687.el7 python-enum34.noarch 0:1.0.4-1.el7            

  python-idna.noarch 0:2.0-1.el7                        python-ipaddress.noarch 0:1.0.7-4.el7         

  python-netaddr.noarch 0:0.7.18-1.el7                  python-pillow.x86_64 0:2.0.0-19.gitd1c6db8.el7

  python-ply.noarch 0:3.4-10.el7                        python-pycparser.noarch 0:2.14-1.el7           

  python2-cffi.x86_64 0:1.5.2-1.el7                     python2-cryptography.x86_64 0:1.2.1-3.el7     

  python2-pyasn1.noarch 0:0.1.9-6.el7.1                 ruby.x86_64 0:2.0.0.598-25.el7_1              

  ruby-irb.noarch 0:2.0.0.598-25.el7_1                  ruby-libs.x86_64 0:2.0.0.598-25.el7_1         

  rubygem-bigdecimal.x86_64 0:1.2.0-25.el7_1            rubygem-io-console.x86_64 0:0.4.2-25.el7_1    

  rubygem-json.x86_64 0:1.7.7-25.el7_1                  rubygem-psych.x86_64 0:2.0.0-25.el7_1         

  rubygem-rdoc.noarch 0:4.0.0-25.el7_1                  rubygems.noarch 0:2.0.14-25.el7_1             

 

Complete!

[root@centos ~]#

 

4.     Packstack 설치가 완료되면 아래와 같은 명령어로 설치가 정상적으로 이루어졌는지 확인할 수 있습니다. 또한 어떤 종류의 옵션들이 있는지 해당 옵션들의 설명도 함께 확인할 수 있습니다.

[root@centos ~]# packstack -h | less

Usage: packstack [options] [--help]

 

Options:

  --version             show program's version number and exit

  -h, --help            show this help message and exit

  --gen-answer-file=GEN_ANSWER_FILE

                        Generate a template of an answer file.

  --answer-file=ANSWER_FILE

                        Runs the configuration in non-interactive mode,

                        extracting all information from theconfiguration file.

                        using this option excludes all other options

  --install-hosts=INSTALL_HOSTS

                        Install on a set of hosts in a single step. The format

                        should be a comma separated list of hosts, the first

                        is setup as a controller, and the others are setup as

                        compute nodes.if only a single host is supplied then

                        it is setup as an all in one installation. An

                        answerfile will also be generated and should be used

                        if Packstack needs to be run a second time

  --allinone            Shorthand for --install-hosts=<local ipaddr>

                        --novanetwork-pubif=<dev> --novacompute-privif=lo

                        --novanetwork-privif=lo --os-swift-install=y --nagios-

                        install=y , this option can be used to install an all

                        in one OpenStack on this host

  -t TIMEOUT, --timeout=TIMEOUT

                        The timeout for puppet Exec calls

 

5.     이번에는 오픈스택 설치시 환경설정을 하기 위한 환경파일을 만들어 보도록 하겠습니다. Packstack에는 위에서 확인했던 것처럼 다양한 옵션들이 있는데 그 중에 --gen-answer-file 옵션을 이용하면 아래와 같이 환경설정 파일을 만들수 있습니다. 환경설정 파일명은 본인의 취향대로 다른 이름으로 사용할 수 있으며, 여기서는 answers.txt 라는 이름을 사용하였습니다.

[root@centos ~]# packstack --gen-answer-file ~/answers.txt

Packstack changed given value  to required value /root/.ssh/id_rsa.pub

[root@centos ~]# ll

합계 52

-rw-------. 1 root root  1312  5 18 15:42 anaconda-ks.cfg

-rw-------. 1 root root 49061  5 19 18:05 answers.txt

[root@centos ~]#

 

6.     이번에는 환경설정을 한번 해 보도록 하겠습니다. 위에서 생성된 환경설정 파일 answers.txt 파일을 vi 편집기를 이용해 아래 나열되어 있는 항목들의 값을 변경해 줍니다. 독자분들의 편의를 위하여 원 환경설정 파일에 영문으로 설명되어 있는 주석을 한글로 쉽게 설명하였습니다.

[root@centos ~]# vi answers.txt

 

# 기본으로 설정되는 패스워드입니다. 여기서는 openstack을 사용해 보도록 하겠습니다.

CONFIG_DEFAULT_PASSWORD=openstack

 

# 여기서는 오브젝트 스토리지 서비스인 Swift는 설치하지 않겠습니다. 그러므로, 값을 n으로 설정합니다.

CONFIG_SWIFT_INSTALL=n

 

# 오케스트레이션 서비스는 설치할 예정입니다. 값을 y로 설정합니다.

CONFIG_HEAT_INSTALL=y

 

# 컨트롤러 호스트 IP는 관리용 IP를 설정합니다.

# 따라서, VirtualBox에서 가상서버 생성시 설정했던 호스트 전용 네트워크인 enp0s8IP를 입력합니다.

CONFIG_CONTROLLER_HOST=192.168.56.102

 

# 컴퓨트 서비스를 설치할 노드의 IP를 나열합니다.

# 여기서는 설치할 노드가 한대뿐이 없으므로, 하나만 입력합니다.

CONFIG_COMPUTE_HOSTS=192.168.56.102

 

# 기존 네트워크 서비스인 nava networkSDN이 가능한 네트워크 서비스인

# neutron 서비스를 설치할 노드의 IP를 입력합니다.

CONFIG_NETWORK_HOSTS=192.168.56.102

 

# 이미지나 블록 스토리지 서비스와 같은 스토리지 서버 IP를 입력합니다.

CONFIG_STORAGE_HOST=192.168.56.102

 

# 데이터 프로세싱 서비스인 Sahara 노드 IP를 입력합니다.

# 우리가 설치할 노드는 한대뿐이 없으므로 여기서는 동일한 IP를 입력합니다.

CONFIG_SAHARA_HOST=192.168.56.102

 

# 메시지 서비스를 할 노드의 IP를 입력합니다.

CONFIG_AMQP_HOST=192.168.56.102

 

# 마리아 DB를 설치할 노드의 IP를 입력합니다. 이때 만일 CONFIG_MARIADB_INSTALL

# y로 설정하지 않았다면 마리아 DB가 설치되어 있는 데이터베이스 서버 IP를 입력합니다.

CONFIG_MARIADB_HOST=192.168.56.102

 

# ‘Admin’ 사용자의 패스워드를 입력합니다. 원래는 랜덤한 값이 들어가 있으나,

# 사용하기 편리하게 하기 위해서 쉬운 패스워드로 변경해 줍니다. 여기서는 openstack이라고 변경했습니다.

CONFIG_KEYSTONE_ADMIN_PW=openstack

 

# 'Demo' 사용자의 패스워드 역시 사용하기 쉬운 패스워드로 입력합니다.

CONFIG_KEYSTONE_DEMO_PW=openstack

 

# LDAP를 사용할 예정이라면 해당 URL을 입력해 줍니다. 여기서는 모든 IP를 관리용 IP로 변경해 주었습니다.

CONFIG_KEYSTONE_LDAP_URL=ldap://192.168.56.102

 

# 외부 통신을 위한 L3 에이전트와 연결할 Open vSwitch의 브리지명을 입력합니다.

CONFIG_NEUTRON_L3_EXT_BRIDGE=br-enp0s3

 

# 로드 밸런싱 서비스를 설치할지 여부를 설정합니다. 여기서는 y로 변경해 줍니다.

CONFIG_LBAAS_INSTALL=y

 

# 방화벽 서비스 설치 여부를 설정합니다. 여기서는 y로 설정했습니다.

CONFIG_NEUTRON_FWAAS=y

 

# ML2 드라이버 타입을 설정합니다. 다음에 나오는 타입 중 하나를 입력하면 됩니다.

# 여기서는 vlan을 사용하도록 하겠습니다. ['local', 'flat', 'vlan', 'gre', 'vxlan']

CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vlan

 

# 네트워크 타입을 설정합니다. 다음에 나오는 타입 중 하나를 입력하면 됩니다.

# 여기서는 위에서 설정한 ML2 드라이버 타입와 같은 타입을 설정합니다. ['local', 'vlan', 'gre', 'vxlan']

CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vlan

 

# 테넌트 네트워크로 제공할 물리 네트워크의 이름과 VLAN 태크 범위를 입력합니다.

# <physical_network>:<vlan_min>:<vlan_max>

CONFIG_NEUTRON_ML2_VLAN_RANGES=physnet1:1:1000

 

# 물리 네트워크와 연결할 Open vSwitch 브리지명을 입력합니다.

# <physical_network>:<ovs_bridge>

# Example: physnet1:br-eth1,physnet2:br-eth2,physnet3:br-eth3

CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-enp0s3

 

# Open vSwitch의 브리지와 연결할 인터페이스 명을 입력합니다.

# 만일 이때 매핑을 잘못 했다면, 다음 명령어를 이용하여 수정할 수 있습니다.

# packstack --allinone --os-neutron-ovs-bridge-mappings=ext-net:br-ex --os-neutron-ovs-bridge-interfaces

# =br-ex:eth0

CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-enp0s3:enp0s3

 

# 오케스트레이션 클라우드포메이션 설치 여부를 설정합니다.

CONFIG_HEAT_CFN_INSTALL=y

 

# 플로팅 IP 범위를 입력합니다.

# 이때 입력하는 플로팅 IP 범위는 enp0s3 IP와 같은 대역의 IP 범위를 입력합니다.

CONFIG_PROVISION_DEMO_FLOATRANGE=192.168.0.0/24

 

# MongoDB를 설치할 노드 IP를 입력합니다.

CONFIG_MONGODB_HOST=192.168.56.102

 

# REDIS를 설치할 마스터 노드 IP를 입력합니다.

CONFIG_REDIS_MASTER_HOST=192.168.56.102

 

7.     환경설정이 완료되었으면 새로 설정한 환경설정 파일을 이용해 아래와 같이 PackStack을 실행합니다. 그리고, 3~40분 정도 기다립니다. 설치 완료가 되면 아래와 같이 오픈스택 데쉬보드 접속정보, Nagios 접속정보 및 설치 로그 파일 경로 등을 확인할 수 있습니다.

[root@centos ~]# packstack --answer-file ./answers.txt

Welcome to the Packstack setup utility

 

The installation log file is available at: /var/tmp/packstack/20160519-182327-iJWRlx/openstack-setup.log

 

Installing:

Clean Up                                             [ DONE ]

Discovering ip protocol version                      [ DONE ]

Setting up ssh keys                                  [ DONE ]

Preparing servers                                    [ DONE ]

Applying 192.168.56.102_nagios.pp

Applying 192.168.56.102_nagios_nrpe.pp

192.168.56.102_nagios.pp:                            [ DONE ]           

192.168.56.102_nagios_nrpe.pp:                       [ DONE ]           

Applying Puppet manifests                            [ DONE ]

Finalizing                                           [ DONE ]

 

 **** Installation completed successfully ******

 

Additional information:

 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.

 * Warning: NetworkManager is active on 192.168.56.102. OpenStack networking currently does not work on systems that have the Network Manager service enabled.

 * File /root/keystonerc_admin has been created on OpenStack client host 192.168.56.102. To use the command line tools you need to source the file.

 * To access the OpenStack Dashboard browse to http://192.168.56.102/dashboard .

Please, find your login credentials stored in the keystonerc_admin in your home directory.

 * To use Nagios, browse to http://192.168.56.102/nagios username: nagiosadmin, password: 8b30b217dca54f01

 * Because of the kernel update the host 192.168.56.102 requires reboot.

 * The installation log file is available at: /var/tmp/packstack/20160520-162729-MMdzYo/openstack-setup.log

 * The generated manifests are available at: /var/tmp/packstack/20160520-162729-MMdzYo/manifests

[root@centos ~]#

 

TIP===

[Q&A] 경고(Warning) 메시지가 뜨는데 괜찮은건가요?

설치가 완료된 후 마지막에 경고(Warning) 메시지가 뜹니다. 내용을 보니 오픈스택 네트워크 서비스는 네트워크 매니저(Network Manager)가 활성화된 시스템에서는 동작을 하지 않는다고 나와 있습니다. 그럼, 네트워크 매니저 서비스가 실행되고 있는지 확인해 보겠습니다.


1.     우선, 실행 중인 프로세스 중에 네트워크 매니저(NetworkManager)가 실행되고 있는지 ps -ef 명령어를 이용하여 grep으로 프로세스 실행 상태를 확인합니다. 이때 만일 아래와 같이 네트워크 매니저가 실행되고 있다면 해당 서비스를 중단시켜야 합니다.

[root@centos ~]# ps -ef | grep NetworkManager

root       854     1  0 08:48 ?        00:00:02 /usr/sbin/NetworkManager --no-daemon

root     13256 12505  0 14:48 pts/0    00:00:00 grep --color=auto NetworkManager

root     20972   854  0 09:33 ?        00:00:00 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-enp0s8.pid -lf /var/lib/NetworkManager/dhclient-1dca40ee-3e58-4ce9-8dd7-3c26e1727e9e-enp0s8.lease -cf /var/lib/NetworkManager/dhclient-enp0s8.conf enp0s8

 

2.     systemctl 명령어를 이용하여 네트워크 매니저 실행을 중단합니다.

[root@centos ~]# systemctl stop NetworkManager

 

3.     네트워크 매니저가 제대로 중단되었는지 확인하려면 ps –ef 명령어를 이용하여 다시 프로세스 실행을 확인하면 됩니다.

[root@centos ~]# ps -ef | grep NetworkManager

root     13502 12505  0 14:49 pts/0    00:00:00 grep --color=auto NetworkManager

root     20972     1  0 09:33 ?        00:00:00 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-enp0s8.pid -lf /var/lib/NetworkManager/dhclient-1dca40ee-3e58-4ce9-8dd7-3c26e1727e9e-enp0s8.lease -cf /var/lib/NetworkManager/dhclient-enp0s8.conf enp0s8

[root@centos ~]#

 

===

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
블로그 이미지

naleejang

내가 알고 있는 것들, 살아가면서 느낀것들을 표현해 보고 싶다.


All-in-One으로 오픈스택을 설치해 보자

앞에서 우분투를 설치하고 데브스택을 이용해 오픈스택을 설치했다면 이번에는 레드햇 계열인 CentOS를 설치하고 RDO PackStack을 이용해서 오픈스택을 설치하겠습니다. PackStack은 쉘 스크립트를 이용해서 설치하는 데브스택과 달리 Puppet 기반의 인스톨 유틸리티를 사용합니다.

 

시스템 구성도를 그려보자

Single Node에 오픈스택을 설치할 때는 테스트나 스터디를 위한 설치이므로 사용하고 있는 컴퓨터에 VirtualBoxVMWare로 생성한 가상서버를 주로 이용합니다. 이때 생성한 가상서버에 CentOS를 설치합니다. 레드햇에서 서비스하는 RDO PackStack을 이용해서 그림 6-1과 같은 네트워크 구성으로 설치하겠습니다.



IP 공유기의 게이트웨이 IP192.168.0.1이고 서브넷 마스크는 255.255.255.0이라고 가정합니다. Neutron을 이용해 오픈스택을 설치할 예정이므로 인터넷이 되는 맥이나 윈도우 PC의 네트워크 카드를 외부 인터넷과 연결되는 가상서버의 브리지 네트워크로 설정하고 br-enp0s3 네트워크 IP192.168.0.25로 사용합니다. 관리 및 모니터링 IP는 호스트전용네트워크를 이용하는데 호스트전용네트워크의 게이트웨이 IP192.168.56.1이고 CentOS가 설치된 가상서버의 IP192.168..56.102를 사용합니다. Fixed IP Range10.0.0.0/24를 사용하고 Floating IP Range는 인터넷이 되는 192.168.0.0/24를 사용할 것입니다. 그리고 Floating IP Pool을 사용한다면, 192.168.0.100에서 192.168.0.200을 사용하겠습니다.



Network IP 설정

VirtualBox에서 생성한 가상서버에 CentOS 설치가 완료되면 로그인한 후 먼저 Network IP를 설정합니다. IP 설정이 완료되면 그 다음부터는 SSH 클라이언트 툴을 이용해 좀 더 쉽게 오픈스택을 설치할 수 있습니다. 이때 설정할 네트워크 IP는 시스템 구성도에서 미리 그려본 IP를 설정합니다. 만일, 어떤 IP로 구성을 해야할 지 잘 모르겠다면, 공유기의 DHCP에서 자동으로 할당받은 IP 주소를 그대로 사용하면 됩니다.

 

1.     CentOS 7를 설치하고 ifconfig 명령어를 실행하면 아래와 같이 command not found라고 명령어를 찾을 수 없다는 메시가 뜹니다. CentOS 7에서는 이전버전때와는 다르게 ifconfig 명령어를 사용할 수가 없습니다. 그래서, ip addr 또는 ip addr show와 같은 명령어를 이용하여 IP 정보를 확인하여야 합니다.

[root@centos ~]$ ifconfig

-bash: ifconfig: command not found

[root@centos ~]$ ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 08:00:27:31:fb:8d brd ff:ff:ff:ff:ff:ff

    inet 192.168.0.25/24 brd 192.168.0.255 scope global dynamic enp0s3

       valid_lft 3320sec preferred_lft 3320sec

    inet6 fe80::a00:27ff:fe31:fb8d/64 scope link

       valid_lft forever preferred_lft forever

3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 08:00:27:a1:ec:77 brd ff:ff:ff:ff:ff:ff

[root@centos ~]$

 

2.     Ifconfig 명령어를 사용하고 싶다면 아래와 같이 net-tools를 설치하면 CentOS 7에서도 ifconfig 명령어를 사용하여 IP를 확인할 수 있습니다. yum install 명령어를 이용하여 아래와 같이 net-tools를 설치합니다.

[root@centos ~]# yum install –y net-tools

Loaded plugins: fastestmirror

base                                                                             | 3.6 kB  00:00:00    

extras                                                                           | 3.4 kB  00:00:00    

updates                                                                          | 3.4 kB  00:00:00    

extras/7/x86_64/primary_db                                                       | 131 kB  00:00:05    

Loading mirror speeds from cached hostfile

 * base: ftp.daumkakao.com

 * extras: mirror.oasis.onnetcorp.com

 * updates: centos.mirror.cdnetworks.com

Installed:

  net-tools.x86_64 0:2.0-0.17.20131004git.el7                                                          

 

Complete!

[root@localhost ~]#

 

3.     Net-tools 설치가 완료되었으면 이번에는 ifconfig 명령어가 실행이 되는지 확인을 해 봅니다. 이번에는 명령어가 잘 실행됩니다.

[root@centos ~]# ifconfig

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.0.25  netmask 255.255.255.0  broadcast 192.168.0.255

        inet6 fe80::a00:27ff:fe31:fb8d  prefixlen 64  scopeid 0x20<link>

        ether 08:00:27:31:fb:8d  txqueuelen 1000  (Ethernet)

        RX packets 597  bytes 510529 (498.5 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 333  bytes 36530 (35.6 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        ether 08:00:27:a1:ec:77  txqueuelen 1000  (Ethernet)

        RX packets 3  bytes 276 (276.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 0  (Local Loopback)

        RX packets 140  bytes 12304 (12.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 140  bytes 12304 (12.0 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

[root@centos ~]#

 

4.     이번에는 enp0s8IP 정보를 설정해 보도록 하겠습니다. Cd 명령어를 이용하여 /etc/sysconfig/network-scripts/ 디렉토리로 이동합니다. 그리고 ls 명령어를 이용하여 파일 목록을 확인해 보면 ifcfg라고 시작하는 파일이 3개가 보일것입니다. 해당 파일은 설치하는 운영체제의 환경에 따라 보이는 파일명과 파일 갯수가 달라질 수 있습니다.

[root@centos ~]# cd /etc/sysconfig/network-scripts/

[root@centos network-scripts]# ls

ifcfg-enp0s3     ifdown-eth   ifdown-routes  ifup-bnep  ifup-plusb     init.ipv6-global

ifcfg-enp0s8     ifdown-ib    ifdown-sit     ifup-eth   ifup-post      network-functions

ifcfg-lo         ifdown-ippp  ifdown-tunnel  ifup-ib    ifup-ppp       network-functions-ipv6

ifdown           ifdown-ipv6  ifup           ifup-ippp  ifup-routes

ifdown-Team      ifdown-isdn  ifup-Team      ifup-ipv6  ifup-sit

ifdown-TeamPort  ifdown-post  ifup-TeamPort  ifup-isdn  ifup-tunnel

ifdown-bnep      ifdown-ppp   ifup-aliases   ifup-plip  ifup-wireless

[root@centos network-scripts]#

 

5.     vi 명령어를 이용해 ifcfg-enp0s8 파일을 열어 가장 하단의 ONBOOT=noONBOOT=yes로 변경시켜 줍니다.

[root@centos network-scripts]# vi ifcfg-enp0s8

TYPE=Ethernet

BOOTPROTO=dhcp

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

NAME=enp0s8

UUID=e6bb059d-1dd0-48e3-9016-3d7b0c3efd41

DEVICE=enp0s8

ONBOOT=yes

 

6.     그리고, 아래와 같은 명령어로 네트워크 서비스를 재시작시켜 줍니다. 여기서는 service network restart 라는 명령어를 사용하였지만, CentOS 7에서는 systemctl restart network.service 라는 명령어를 이용하여 재시작할 수도 있습니다.

[root@centos network-scripts]# service network restart

Restarting network (via systemctl):                        [  OK  ]

[root@centos network-scripts]#

 

7.     이번에는 ifconfig를 이용하여 enp0s8IP 설정이 제대로 되었는지 확인해 봅니다. 그러면, enp0s8IP가 잘 설정된 것을 확인할 수 있습니다.

[root@centos network-scripts]# ifconfig

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.0.25  netmask 255.255.255.0  broadcast 192.168.0.255

        inet6 fe80::a00:27ff:fe31:fb8d  prefixlen 64  scopeid 0x20<link>

        ether 08:00:27:31:fb:8d  txqueuelen 1000  (Ethernet)

        RX packets 935  bytes 539382 (526.7 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 529  bytes 67395 (65.8 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.56.102  netmask 255.255.255.0  broadcast 192.168.56.255

        inet6 fe80::a00:27ff:fea1:ec77  prefixlen 64  scopeid 0x20<link>

        ether 08:00:27:a1:ec:77  txqueuelen 1000  (Ethernet)

        RX packets 7  bytes 2636 (2.5 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 16  bytes 2292 (2.2 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 0  (Local Loopback)

        RX packets 156  bytes 13904 (13.5 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 156  bytes 13904 (13.5 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

[root@centos network-scripts]#

 

8.     이제 설정된 IPSSH를 통해 접속을 한번 해 보도록 하겠습니다. HOST PC의 터미널을 열어 ssh로 오픈스택을 설치할 가상 서버에 접속해 보도록 하겠습니다. 윈도우에서는 PUTTY와 같은 SSH Client 툴을 이용하면 쉽게 접속을 할수 있습니다. 여기서는 맥의 터미널을 이용하여 ssh 명령어로 해당 서버에 접속하였습니다.

naleejangui-MacBook-Pro:~ naleejang$ ssh root@192.168.56.102

The authenticity of host '192.168.56.102 (192.168.56.102)' can't be established.

ECDSA key fingerprint is SHA256:KjV0ilLibPzobLuRPKpjKp6R1AOg9sN6O23FI0R+CLs.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.56.102' (ECDSA) to the list of known hosts.

root@192.168.56.102's password: ************

Last login: Wed May 18 21:14:44 2016 from 192.168.0.17

[root@centos ~]$

 

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
블로그 이미지

naleejang

내가 알고 있는 것들, 살아가면서 느낀것들을 표현해 보고 싶다.


CentOS에서 오픈스택 구축하기!

예전에는 오픈스택의 기본 운영체제가 우분투였지만, 지금은 다양한 종류의 리눅스에서 오픈스택을 설치하는 방법들을 지원합니다. 우분투 외에 데비안, 오픈수세와 수세, 레드햇 엔터프라이즈 리눅스, CentOS 그리고 페도라에서도 설치를 할 수 있습니다.

이들 리눅스 운영체제 중에서 서버용으로 가장 많이 쓰이는 것이 레드햇입니다. 그러나 레드햇은 라이선스 비용이 들기 때문에 이와 유사한 커널이 있는 CentOS에서 오픈스택을 설치하겠습니다. 그리고 테스트 및 스터디를 위해 Single Node 설치와 기본 서비스로 구성되는 Multi Node 오픈스택을 설치하겠습니다.



설치 환경을 만들어 보자

오픈스택을 구축할 서버가 있다면 서버를 이용해서 직접 설치할 수도 있지만 설치해본 경험이 없다면 가상서버를 준비해서 오픈스택을 한번 정도 설치해보는 것이 좋습니다. 앞에서 오픈스택을 설치할 때 VirtualBox를 이용해서 설치한 것처럼, 이번에도 VirtualBox를 이용해서 설치 환경을 만들어 보겠습니다.

 

CentOS 다운로드

CentOS 사이트(http://www.centos.org/download/) 사이트에 방문해서 최신 CentOS를 받습니다. 아래 그림에서 [DVD ISO]를 클릭하여 CentOS를 내려 받을 수 있는 페이지로 이동합니다. 그때 목록에 있는 CentOS 하나를 클릭해서 받습니다.


 

CentOS 설치를 위한 VirtualBox 가상서버 준비

VirtualBox를 설치하는 과정은 이미 앞에서 다루었으므로 이번에는 CentOS를 설치하기 위해 반드시 체크해야 하는 부분만 살펴보겠습니다.

 

1.     VirtualBox를 실행하고 [새로 만들기]를 클릭하면 다음과 같은 가상 머신 만들기 창이 열립니다. 이때 가상 머신의 이름을 입력하고, 종류는 Linux, 버전은 Red Hat(64 bit)로 선택하고 [다음(N)]을 클릭합니다. 여기서는 나중에 찾기 쉽게 “packstack” 이라는 이름을 사용하였습니다.

 

2.     가상 하드 드라이브 만들기 창이 나오면 생성할 디스크 사이즈를 입력하고 [만들기]를 클릭해서 가상 하드 드라이브를 만듭니다.


3.     가상 하드 드라이브가 만들어지면 VisualBox 메인 창에서 생성된 드라이브를 선택하고 [설정] 을 클릭합니다. 다음과 같은 설정 창이 열리면 왼쪽에서 [저장소]를 선택하고 속성에서 [CD/DVD 드라이브(D)]를 클릭한 후 CentOS를 선택합니다.

 

4.     [네트워크]를 클릭하고 [어댑터 1] 탭에서 [브리지 어댑터]를 선택합니다. 그리고 하단의 고급을 클릭하고 무작위 모드를 [모두 허용]으로 선택합니다.


5.     이번에는 [어댑터 2] 탭을 클릭하고 [호스트 전용 어댑터]를 선택합니다. 그리고 하단의 고급을 클릭하여 무작위 모드를 [모두 허용]으로 선택합니다.

 

6.     설정을 모두 완료했으면 VirtualBox 메인 창에서 [시작]을 클릭합니다. CentOS 7 설치 화면이 열리면 [Install CentOS 7]을 선택합니다.


7.     WELCOME TO CENTOS 7이라는 문구와 함께 언어를 선택하라는 화면이 뜨면, 기본 설정값인 English로 두고, 하단의 [Continue] 버튼을 클릭합니다.

 

8.     CentOS 7CentOS 6 버전때와는 다르게 운영체제의 속성값을 한 화면에서 한번에 설정을 할 수 있습니다. 아래 보이는 화면이 바로 환경설정을 할 수 있는 화면입니다.

 

9.     환경설정 화면에서 가장 먼저 [NETWORK & HOST NAME] 선택합니다.아래와 같은 네트워크를 설정할 수 있는 화면이 뜨면 좌측의 [ON/OFF] 토글 버튼을 [ON]으로 가게 설정합니다. 그러면 아래와 같이 IP가 자동으로 설정되는 것을 확인할 수 있습니다. 또한 하단의 [Host name]을 다른 이름으로 수정하면 수정된 이름으로 호스트명을 변경할 수 있습니다. 네트워크 설정을 하고 상단의 [Done] 버튼을 클릭해 다시 환경설정 화면으로 돌아갑니다.

 

10.  이번에는 환경설정 화면에서 [INSTALLATION DESTINATION]을 선택합니다. 그러면 아래와 같이 CentOS를 설치할 하드디스크를 선택하라는 화면이 나옵니다. 선택할 수 있는 하드디스크는 하나밖에 없으므로 [ATA VBOX HARDDISK]를 선택하고 상단의 [Done] 버튼을 클릭합니다.


11.  운영체제를 설치할 하드디스크 설정이 완료되었으면 이번에는 [SOFTWARE SELECTION]을 선택하고 들어와 우측의 Base Environment에서 [Minimal Install]을 선택하고 좌측의 Add-Ons for Selected Environment에서 [Debugging Tools], [Compatibility Libraries], [Development Tools], [Security Tools]를 선택하고 상단의 [Done]를 클릭합니다.

 

12.  이번에는 환경설정 화면에서 [DATE & TIME]을 선택하고 들어오면 아래와 같이 세계 지도가 보입니다. 이때 대한민국을 찾아 마우스로 클릭합니다. 그러면 자동으로 상단의 Region Asia/Seoul로 설정이 됩니다. 설정을 완료했으면, 상단의 [Done] 버튼을 클릭하고 빠져나갑니다.


13.  모든 설정이 끝나고 나면 아래와 같이 경고 표시가 없는 화면으로 바뀝니다. 설치를 하기 위해서 하단의 [Begin Installation] 버튼을 클릭합니다.

 

14.  설치가 시작이 되면서 패스워드를 설정하는 화면이 아래와 같이 뜹니다. 그러면 우측의 [ROOT PASSWORD]를 선택합니다.

 

15.  ROOT PASSWORD 설정창으로 전환되면 패스워드를 입력하고 상단의 [Done]을 클릭합니다.

 


16.  패스워드 설정을 완료했으면 설치가 완료될때까지 잠시 기다립니다.

 

 

17.  드디어 CentOS 7 설치가 완료되었습니다. 하단의 [Rootboot] 버튼을 클릭합니다.

 

18.  시스템이 재부팅되면 다음과 같이 로그인을 할 수 있는 화면으로 전환됩니다.


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
블로그 이미지

naleejang

내가 알고 있는 것들, 살아가면서 느낀것들을 표현해 보고 싶다.


Neutron 네트워크 구성하기

앞에서 그린 구성도를 참고해서 이미 구성된 네트워크를 확인하고, 새로 생성할 네트워크를 구성하겠습니다. Tenant1에 해당하는 네트워크는 데브스택이 설치될 때 자동으로 설치됩니다. 그러나 Tenant2에 해당하는 네트워크는 설치되지 않습니다. 여기서는 Tenant2에 해당하는 네트워크를 만들겠습니다.

 

1.     DevStack 설치가 완료되었으면, ifconfig 명령어를 이용해 네트워크가 어떻게 설정되었는지를 먼저 확인합니다. br-enp0s8이라는 브리지 네트워크가 생성된 것을 확인할 수 있으며, enp0s8에 설정되어 있던 IPbr-enp0s8IP로 설정되어 있는것을 확인할 수 있습니다.

stack@devstack:~$ ifconfig

br-enp0s8 Link encap:Ethernet  HWaddr 08:00:27:9f:df:14 

          inet addr:192.168.0.22  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::246a:1aff:feb1:5e49/64 Scope:Link

          inet6 addr: 2001:db8::2/64 Scope:Global

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:4838 errors:0 dropped:0 overruns:0 frame:0

          TX packets:3358 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:10523621 (10.5 MB)  TX bytes:248255 (248.2 KB)

 

enp0s3    Link encap:Ethernet  HWaddr 08:00:27:b6:2d:a7 

          inet addr:192.168.56.103  Bcast:192.168.56.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:feb6:2da7/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:28414 errors:0 dropped:0 overruns:0 frame:0

          TX packets:28309 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1907489 (1.9 MB)  TX bytes:5859080 (5.8 MB)

 

enp0s8    Link encap:Ethernet  HWaddr 08:00:27:9f:df:14 

          inet6 addr: fe80::a00:27ff:fe9f:df14/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:372037 errors:0 dropped:0 overruns:0 frame:0

          TX packets:123745 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:543530375 (543.5 MB)  TX bytes:8759310 (8.7 MB)

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:168953 errors:0 dropped:0 overruns:0 frame:0

          TX packets:168953 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:74520199 (74.5 MB)  TX bytes:74520199 (74.5 MB)

 

virbr0    Link encap:Ethernet  HWaddr 52:54:00:53:cc:40 

          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0

          UP BROADCAST MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

2.     이번에는 ovs-vsctl show 명령어를 이용하여 Open vSwitch의 가상 네트워크 현황을 확인해 보겠습니다. br-int 라는 내부용 가상 브리지와 컴퓨트 노드의 인스턴스 간 통신을 위한 br-tun 이라는 브리지, 그리고 외부 통신을 위한 br-enp0s8 이라는 브리지가 생성되어 있는것을 확인할 수 있습니다. 또한 br-enp0s8에는 외부 통신을 할때 실제로 사용되는 네트워크 디바이스인 enp0s8이 추가되어 있는 것을 확인할 수 있습니다.

stack@devstack:~$ sudo ovs-vsctl show

3f70ad60-a2f9-4123-8d2a-d98f64b19a48

    Bridge br-int

        fail_mode: secure

        Port br-int

            Interface br-int

                type: internal

        Port patch-tun

            Interface patch-tun

                type: patch

                options: {peer=patch-int}

        Port "qr-9ac11f5c-18"

            tag: 1

            Interface "qr-9ac11f5c-18"

                type: internal

        Port "qr-82d915df-63"

            tag: 1

            Interface "qr-82d915df-63"

                type: internal

        Port "qg-b9c70e65-2e"

            tag: 2

            Interface "qg-b9c70e65-2e"

                type: internal

        Port "tapb34cbe12-5d"

            tag: 1

            Interface "tapb34cbe12-5d"

                type: internal

        Port "int-br-enp0s8"

            Interface "int-br-enp0s8"

                type: patch

                options: {peer="phy-br-enp0s8"}

    Bridge br-tun

        fail_mode: secure

        Port patch-int

            Interface patch-int

                type: patch

                options: {peer=patch-tun}

        Port br-tun

            Interface br-tun

                type: internal

    Bridge "br-enp0s8"

        Port "br-enp0s8"

            Interface "br-enp0s8"

                type: internal

        Port "enp0s8"

            Interface "enp0s8"

        Port "phy-br-enp0s8"

            Interface "phy-br-enp0s8"

                type: patch

                options: {peer="int-br-enp0s8"}

    ovs_version: "2.5.0"

stack@devstack:~$

 

3.     통신을 하기 위해서는 게이트웨이를 서로 연결시켜주는 라우터가 필요합니다. 그리고, IP를 자동으로 할당해 주기 위해서는 DHCP 서버도 필요합니다. 오픈스택 Neutron에서도 이런 네트워크 디바이스들을 필요로 합니다. Open vSwitch를 이용하여 가상 네트워크를 만들었으니 가상 라우터와 가상 DHCP 서버가 필요한 건 당연한 일입니다. Ip netns show 명령어를 이용하여 가상으로 만들어진 라우터와 DHCP 서버를 확인할 수 있습니다.

stack@devstack:~$ sudo ip netns show

qrouter-2def024e-298f-40a2-ab4f-2c74052872ab

qdhcp-b2203d5b-f33c-4509-b717-3c0769705013

stack@devstack:~$

 

4.     그럼, 가상 라우터에 어떤 IP들이 매핑되었는지 확인해 보도록 하겠습니다. 아래와 같이 sudo ip netns exec 입력하고 위에서 확인한 가상 라우터 ID를 복사한 후 붙여넣기를 한 뒤 ifconfig 라는 명령어를 추가하면 가상 라우터에 할당된 가상 네트워크와 IP를 확인할 수 있습니다.

stack@devstack:~$ sudo ip netns exec qrouter-2def024e-298f-40a2-ab4f-2c74052872ab ifconfig

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

qg-b9c70e65-2e Link encap:Ethernet  HWaddr fa:16:3e:1f:f7:70 

          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::f816:3eff:fe1f:f770/64 Scope:Link

          inet6 addr: 2001:db8::1/64 Scope:Global

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:276 errors:0 dropped:0 overruns:0 frame:0

          TX packets:22 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:46743 (46.7 KB)  TX bytes:1704 (1.7 KB)

 

qr-82d915df-63 Link encap:Ethernet  HWaddr fa:16:3e:9a:78:77 

          inet6 addr: fd3c:62f4:60dc::1/64 Scope:Global

          inet6 addr: fe80::f816:3eff:fe9a:7877/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1

          RX packets:2 errors:0 dropped:0 overruns:0 frame:0

          TX packets:23 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:92 (92.0 B)  TX bytes:2658 (2.6 KB)

 

qr-9ac11f5c-18 Link encap:Ethernet  HWaddr fa:16:3e:ed:e1:79 

          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0

          inet6 addr: fe80::f816:3eff:feed:e179/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1

          RX packets:19 errors:0 dropped:0 overruns:0 frame:0

          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:1944 (1.9 KB)  TX bytes:864 (864.0 B)

 

stack@devstack:~$

 

5.     이번에는 가상 라우터를 확인한 방법과 같은 방법으로 DHCP 설정을 확인해 보겠습니다. Tapb34cbe12-5d 라는 가상 네트워크가 생성되었고, IP 10.0.0.2가 매핑되어 있는 것을 확인할 수 있습니다.

stack@devstack:~$ sudo ip netns exec qdhcp-b2203d5b-f33c-4509-b717-3c0769705013 ifconfig

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

tapb34cbe12-5d Link encap:Ethernet  HWaddr fa:16:3e:f8:24:40 

          inet addr:10.0.0.2  Bcast:10.0.0.255  Mask:255.255.255.0

          inet6 addr: fd3c:62f4:60dc:0:f816:3eff:fef8:2440/64 Scope:Global

          inet6 addr: fe80::f816:3eff:fef8:2440/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1

          RX packets:22 errors:0 dropped:0 overruns:0 frame:0

          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:2204 (2.2 KB)  TX bytes:726 (726.0 B)

 

stack@devstack:~$

 

6.     오픈스택을 설치한 우분투 서버에 생성된 가상 네트워크를 모두 확인해 봤습니다. 이번에는 데쉬보드에 접속해 가상 네트워크를 확인해 보겠습니다. 웹브라우저를 열어 Devstack 설치시 안내되었던 URL로 접속합니다. 그리고, 관리자용 사용자 이름과 암호를 입력하고 하단의 [연결]버튼을 클릭합니다.


7.     로그인이 되면 우측 메뉴에서 [관리자] > [시스템] > [네트워크]를 선택합니다. 그러면 아래와 같이 네트워크 목록을 확인할 수 있는 페이지로 이동합니다. 인스턴스에 고정(Fixed) IP를 할당해 줄 private 네트워크와 외부통신용(Floating) IP를 할당해 줄 public 네트워크가 생성되어 있는 것을 확인할 수 있습니다. IPv4에 해당하는 IP CIDR(Classless Inter-Domain Routing)IPv6에 해당하는 IP CIDR가 함께 할당되어 있는 것을 확인할 수 있습니다.

 

8.     네트워크 목록에서 private 를 클릭해 상세정보를 확인해 보겠습니다. 네트워크 개요와 서브넷, 그리고 포트 정보를 확인할 수 있습니다.

 

9.     좌측의 스크롤바를 아래로 내리면 DHCP 에이전트 현황도 함께 확인할 수 있습니다. 서브넷에는 private 네트워크의 고정(Fixed) IP 범위와 게이트웨이 IP 정보를 IPv4IPv6로 확인해 볼 수 있으며, 포트 목록에서는 라우터와 연결된 게이트웨이 IP 정보를 확인할 수 있습니다. 또한 DHCP로 설정된 IP 정보도 함께 확인할 수 있습니다.  

 

10.  다시 네트워크 목록으로 돌아가 이번에는 public 네트워크를 선택합니다. 그러면, public 네트워크의 상세정보를 확인할 수 있습니다. Public 네트워크 정보 역시 private 네트워크와 마찬가지로 외부통신용(Floating) IP 대역과 게이트웨이 IP 주소를 IPv4IPv6로 확인할 수 있습니다.

 

11.  public 네트워크의 상세화면 좌측 스크롤바를 아래로 내리면 private 네트워크에서처럼 DHCP 에이전트가 활성화 되어 있는 것을 확인하실 수 있습니다. 그러나, private 네트워크와는 다르게 포트 정보에 DHCP로 설정된 IP 정보는 보이지 않습니다.

 

12.  이번에는 라우터를 살펴보겠습니다. 데쉬보드의 우측 메뉴에서 [관리자] > [시스템] > [라우터]를 선택합니다. 라우터 목록에는 이미 router1이라는 라우터가 하나 생성되어 있는 것을 확인할 수 있습니다. 이 라우터는 DevStack을 설치할때 미리 생성된 라우터입니다.

 

13.  라우터 목록에서 router1를 클릭하면 아래와 같이 상세 정보를 확인할 수 있습니다. 개요 탭에서는 라우터 이름, ID 등 기본 정보와 외부 게이트웨이 정보를 확인할 수 있습니다.

 

14.  인터페이스 탭에서는 private 네트워크의 게이트웨이 IPpublic 네트워크의 게이트웨이 IP를 목록으로 확인할 수 있습니다.

 

15.  이번에는 네트워크 토폴로지를 확인해 보겠습니다. Admin 계정으로 로그인되어 있는 데쉬보드를 로그아웃하고 Demo 계정으로 다시 로그인을 합니다. 그리고, 우측 메뉴에서 [프로젝트] > [네트워크] > [네트워크 토폴로지]를 클릭합니다. 그러면 아래와 같이 지금 생성되어 연결되어 있는 네트워크 토폴로지 현황을 그래픽으로 확인할 수 있습니다. 아래 보이는 이미지는 Small 탭의 네트워크 이미지로 가장 최소정보만을 보여줍니다.

 

16.  [기본]탭을 클릭하면 아래와 같이 라우터 이미지가 좀 더 구체적으로 표현이 됩니다. 

 

17.  기본 네트워크 토폴로지를 확인했으면 이번에는 Graph로 확인을 해보겠습니다. 상단의 [Graph] 탭을 클릭하면 아래와 같은 이미지로 네트워크 정보를 확인할 수 있습니다.

 

18.  이번에는 네트워크 탭을 한번 클릭해보겠습니다. 우측 메뉴에서 [프로젝트] > [네트워크] > [네트워크]를 클릭합니다. 그러면 아래와 같이 네트워크 목록을 확인할 수 있습니다. Admin 계정의 네트워크 목록과는 다르게 public 네트워크 정보에서 관련 서브넷 정보가 보이지 않는다는것을 확인할 수 있습니다. 그럼, 지금부터 위에서 그려면 네트워크 구성도대로 새로운 가상 라우터와 가상 네트워크를 만들어 보겠습니다. 네트워크 화면 좌측 상단의 [+네트워크 생성] 버튼을 클릭합니다.

19.  그러면, 네트워크 생성창이 팝업됩니다. 그러면 생성하고자 하는 네트워크 이름을 입력합니다. 앞에서 미리 그려본 네트워크 구성도에서처럼 네트워크 이름을 private2 라고 입력하고 [다음]을 클릭합니다.

 

20.  서브넷 이름은 알기 쉽게 private2_subnet이라고 입력하고 네트워크 주소에 인스턴스에 할당할 고정 IP 범위를 CIDR로 입력합니다. 여기서 IP 범위는 앞에서 미리 그려본 네트워크 구성도에 따라 10.0.1.0/24로 입력하였습니다. 게이트웨이 IP 10.0.1.1을 입력합니다. 그리고, 하단의 [다음] 버튼을 클릭합니다.

 

21.  서브넷 세부 정보 창이 나오면 DHCP 사용에 체크를 하고 하단의 [생성] 버튼을 클릭합니다.

 

22.  네트워크 목록에 방금전에 생성한 private2 네트워크가 생성되었습니다.

 

23.  이번에는 라우터를 생성해 보겠습니다. 우측 메뉴에서 [프로젝트] > [네트워크] > [라우터]를 클릭합니다. 라우터 목록이 나오면 좌측 상단에 [+라우터 생성] 버튼을 클릭합니다.

 

24.  라우터 생성창이 팝업되면 라우터 이름에 router2라고 입력하고 외부 네트워크에서 public 네트워크를 선택한 후 하단의 [라우터 생성] 버튼을 클릭합니다.

 

25.  라우터가 잘 생성이 되었습니다.


26.  생성된 라우터 router2를 클릭하여 상세 정보를 확인합니다. 라우터 기본 정보와 외부 게이트웨이 정보를 확인할 수 있습니다.

 

27.   그러나 인터페이스 탭을 클릭하면 인터페이스 목록에 아무런 정보도 보이지 않습니다. 그럼, 지금부터 인터페이스를 추가해보겠습니다. 좌측 상단에 [+인터페이스 추가] 버튼을 클릭합니다.

 

28.  인터페이스 추가 창이 팝업되면 조금 전에 생성한 private2 네트워크를 서브넷에서 선택합니다.

 

29.  그러면 아래와 같이 private2 네트워크의 게이트웨이가 인터페이스로 추가됩니다.

 

30.  앞에서 생성한 라우터와 private2 네트워크의 DHCP 설정은 터미널에서 ip netns show 명령어로 아래와 같이 확인할 수 있습니다.

stack@devstack:~$ sudo ip netns show

qrouter-aa332b06-210c-4e9b-9961-657119f53742

qdhcp-dddd20f6-c9b4-4d5a-9497-96d9cf1cff44

qrouter-2def024e-298f-40a2-ab4f-2c74052872ab

qdhcp-b2203d5b-f33c-4509-b717-3c0769705013

stack@devstack:~$

 

31.  그럼, 새로 생성된 가상 라우터를 확인해 보겠습니다. Ip netns exec 명령어 뒤에 앞에서 확인한 라우터 ID를 복사해 붙여넣기를 합니다. 그리고 그 뒤에 ifconfig를 하면 가상 라우터의 인터페이스를 확인할 수 있습니다.

stack@devstack:~$ sudo ip netns exec qrouter-aa332b06-210c-4e9b-9961-657119f53742 ifconfig

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

qg-d4ee5068-93 Link encap:Ethernet  HWaddr fa:16:3e:20:db:d4 

          inet addr:192.168.0.101  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::f816:3eff:fe20:dbd4/64 Scope:Link

          inet6 addr: 2001:db8::3/64 Scope:Global

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:1892 errors:0 dropped:0 overruns:0 frame:0

          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:318837 (318.8 KB)  TX bytes:1368 (1.3 KB)

 

qr-6d6278e7-7f Link encap:Ethernet  HWaddr fa:16:3e:82:37:3d 

          inet addr:10.0.1.1  Bcast:10.0.1.255  Mask:255.255.255.0

          inet6 addr: fe80::f816:3eff:fe82:373d/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1

          RX packets:1 errors:0 dropped:0 overruns:0 frame:0

          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:28 (28.0 B)  TX bytes:864 (864.0 B)

 

stack@devstack:~$

 

32.  가상 DHCP 설정 확인 역시 ip netns exec 명령어 뒤에 앞에서 확인한 DHCP ID를 복사해 붙여넣고 ifconfig를 붙이면 DHCP 에이전트용 IP를 확인할 수 있습니다.

stack@devstack:~$ sudo ip netns exec qdhcp-dddd20f6-c9b4-4d5a-9497-96d9cf1cff44 ifconfig

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

tap37cfd8b4-88 Link encap:Ethernet  HWaddr fa:16:3e:2f:c4:cb 

          inet addr:10.0.1.2  Bcast:10.0.1.255  Mask:255.255.255.0

          inet6 addr: fe80::f816:3eff:fe2f:c4cb/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1

          RX packets:5 errors:0 dropped:0 overruns:0 frame:0

          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:412 (412.0 B)  TX bytes:648 (648.0 B)

 

stack@devstack:~$

 

33.  새로 생성한 가상 네트워크와 라우터는 네트워크 토폴로지에서도 확인할 수 있습니다. Demo 계정으로 데쉬보드를 로그인 한 뒤 우측 메뉴에서 [프로젝트] > [네트워크] > [네트워크 토폴로지]를 선택하면 아래와 같이 router2라는 가상 네트워크가 생성된 것을 토폴로지로 확인할 수 있습니다.

 

34.  이번에는 Graph 탭을 클릭해 봅니다. 아래와 같은 아이콘 형태의 네트워크 토폴로지를 확인할 수 있습니다.

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License