티스토리 뷰

안녕하세요~!!

그동안 행사 준비 때문에 너무 바뻐서 강좌를 올릴 시간이 없었네요~!! 
특히 그림이 많은 강좌는 더욱더 작업을 하기가 힘이 드는것 같습니다. 어여어여 모든 강좌를 다 오픈해 드려야 하는데 제가 너무 게을러서 이것도 너무 벅찬것 같습니다. 지난시간에는 Packstack All-in-One을 설치해 보았는데요~!! 이번 시간에는 OpenStack Dashboard에 접속해서 Neutron 네트워크를 추가해 보도록 하겠습니다.

Dashboard 접속

오픈스택 설치가 완료되었으면 데쉬보드에 접속해 보겠습니다.

 

1.     설치가 완료된 후 ls -al 명령을 입력하면 다음과 같이 keystone_admin이라는 파일을 확인할수 있습니다.

$ ls –al

total 44

-rw-------. 1 root  root    181 Jun  9 14:31 keystonerc_admin

-rw-------. 1 stack stack 17729 Jun  9 13:02 my_answers.txt

-rw-------. 1 stack stack 17736 Jun  9 13:44 packstack-answers-20140609-134419.txt

 

2.     cat을 이용해 Keystone_admin 파일에서 USERNAME PASSWORD를 확인합니다.

$ sudo cat keystonerc_admin

export OS_USERNAME=admin

export OS_TENANT_NAME=admin

export OS_PASSWORD=d00e7c546ce744ee

export OS_AUTH_URL=http://10.10.15.11:5000/v2.0/

export PS1='[\u@\h \W(keystone_admin)]\$ '

 

3.     데쉬보드를 접속하고 확인한 USERNAMEPASSWORD를 입력합니다. 


4.     로그인을 하면 다음과 같이 데쉬보드 메인 화면을 확인할 수 있습니다.


 Neutron 네트워크 생성

오픈스택 설치가 완료되었다고 할지라도 Neutron 네트워크를 바로 사용할 수는 없습니다. 그래서, Neutron 네트워크 사용을 위한 네트워크 IP 설정 및 네트워크를 생성해 보도록 하겠습니다.

 

1.     Ifconfig를 해서 보면 br-ex에 우리가 설정하고자 하는 외부 IP가 아닌 전혀 다른 IP가 설정되어 있는 것을 확인할 수 있습니다. IP는 오픈스택 설치 시 기본으로 설정해 주는 IP입니다.

$ ifconfig

br-ex     Link encap:Ethernet  HWaddr 12:B1:9E:BD:52:48 

          inet addr:172.24.4.225  Bcast:0.0.0.0  Mask:255.255.255.240

          inet6 addr: fe80::b025:abff:fe5d:4f9f/64 Scope:Link

          UP BROADCAST RUNNING  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:0

          RX bytes:684 (684.0 b)  TX bytes:468 (468.0 b)

 

br-int    Link encap:Ethernet  HWaddr DA:0B:40:22:9F:47 

          inet6 addr: fe80::8c0:abff:fee9:a049/64 Scope:Link

          UP BROADCAST RUNNING  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:0

          RX bytes:762 (762.0 b)  TX bytes:468 (468.0 b)

 

2.     그럼, /etc/sysconfig/network-scripts/ifcfg-br-ex 파일을 열어 아래와 같이 수정합니다. 이때 DEVICETYPE ovs이며, TypeOVSBridge입니다.

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-br-ex

DEVICE=br-ex

DEVICETYPE=ovs

TYPE=OVSBridge

BOOTPROTO=static

IPADDR=192.168.0.100

NETMASK=255.255.255.0

BROADCAST=192.168.0.255

GATEWAY=192.168.0.1

DNS1=8.8.8.8

NM_CONTROLLED=no

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV5INIT=no

ONBOOT=yes

 

3.     이번에는 /etc/sysconfig/network-scripts/ifcfg-eth1을 열어 아래와 같이 수정합니다. Ifcfg-eth1에서는 TypeOVSPort로 설정하고, OVS_BRIDGE 파라메터를 추가합니다.

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

TYPE=OVSPort

DEVICETYPE=ovs

OVS_BRIDGE=br-ex

NM_CONTROLLED=no

IPV6INIT=no

ONBOOT=yes

 

4.     IP 설정이 완료되었으면 네트워크 서비스를 재 시작합니다.

$ sudo service network restart

Shutting down interface br-ex:                             [  OK  ]

Shutting down interface eth0:                              [  OK  ]

Shutting down interface eth1:                              [  OK  ]

Shutting down loopback interface:                          [  OK  ]

Bringing up loopback interface:                            [  OK  ]

Bringing up interface br-ex:  Determining if ip address 192.168.0.100 is already in use for device br-ex...

                                                           [  OK  ]

Bringing up interface eth0:  Determining if ip address 10.10.15.11 is already in use for device eth0...

                                                           [  OK  ]

Bringing up interface eth1:  RTNETLINK answers: File exists

                                                           [  OK  ]

 

 

5.     다시 ifconfig를 해서 보면 br-exIP가 수정된 것을 확인 할 수 있습니다.

$ ifconfig

br-ex     Link encap:Ethernet  HWaddr 08:00:27:04:A8:B0 

          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::e403:28ff:fe45:a85c/64 Scope:Link

          UP BROADCAST RUNNING  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:0

          RX bytes:3442 (3.3 KiB)  TX bytes:972 (972.0 b)

 

br-int    Link encap:Ethernet  HWaddr DA:0B:40:22:9F:47 

          inet6 addr: fe80::8c0:abff:fee9:a049/64 Scope:Link

          UP BROADCAST RUNNING  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:0

          RX bytes:762 (762.0 b)  TX bytes:468 (468.0 b)

 

6.     IP가 수정된 것은 ifconfig 뿐만 아니라 OpenvSwitch에서도 확인할 수 있습니다. 아래와 같이 sudo ovs-vsctl show 명령어를 실행하면 br-exeth1이 포트로 추가되어 있는 것을 확인할 수 있습니다.

$ sudo ovs-vsctl show

aac730c8-4099-4c7d-8ff6-7f251d9e8e46

    Bridge br-int

        Port br-int

            Interface br-int

                type: internal

        Port "qr-5f49aafd-5f"

            tag: 1

            Interface "qr-5f49aafd-5f"

                type: internal

    Bridge br-ex

        Port "eth1"

            Interface "eth1"

        Port br-ex

            Interface br-ex

                type: internal

    ovs_version: "1.11.0"

 

7.     이제 admin 계정으로 데쉬보드를 접속하여 좌측의 관리자 > 시스템 패널 > 라우터 메뉴를 들어갑니다. 그리고, 기존에 생성되어 있던 라우터를 삭제합니다. 

8.     라우터 삭제 버튼을 클릭하면 아래와 같은 확인 메시지가 뜨는데 이때 라우터 삭제 버튼을 클릭합니다.

 

9.     그러면 아래와 같이 라우터가 삭제됩니다.

 

10.     이제 관리자 > 시스템 패널 > 네트워크 메뉴로 들어갑니다. 그리고, public을 네트워크를 삭제합니다.


11.     Public을 선택하고 상단의 빨간 네트워크 삭제 버튼을 클릭하면 아래와 같은 확인 메시지가 나옵니다. 메시지를 확인하고 파란 네트워크 삭제 버튼을 클릭합니다.

 

12.     그러면 네트워크 목록에서 public 네트워크가 삭제된 것을 확인할 수 있습니다.

 

13.     이제 우리가 설정한 IPpublic 네트워크를 다시 생성해야 합니다. 네트워크 목록 화면의 상단에 “+ 네트워크 생성버튼을 클릭하면 아래와 같은 네트워크 생성 창이 뜹니다. 이때 이름은 public-subnet이라고 하고, 프로젝트는 admin을 선택합니다. 그리고, 외부 네트워크에 체크를 한 후 하단의 네트워크 생성 버튼을 클릭합니다.

 

14.     그러면, 네트워크 목록에서 public 네트워크가 생성된 것을 확인할 수 있습니다. 그런데, private 네트워크에는 관련 서브넷이 있는데, public 네트워크에는 보이지 않습니다. 이제부터 public 네트워크의 서브넷을 만들어 보겠습니다. 목록에서 public 네트워크를 클릭합니다.


15.     네트워크 세부 정보와 함께 서브넷 정보도 함께 확인할 수 있는 상세화면으로 전환되었습니다. 그럼, 서브넷 생성 버튼을 클릭합니다.

 

16.  아래와 같이 서브넷 생성 팝업이 뜨면, 서브넷 이름, 네트워크 주소, 게이트웨이 IP를 입력합니다. 서브넷 이름은 public_subnet으로 하고, 네트워크 주소는 미리 설정한 IP 범위를 입력하면 됩니다.


17.  다음 버튼을 클릭하면 할당 서브넷 세부정보를 입력하라는 창으로 전환합니다. 이때 Pools 할당에는 public IP 중 할당 가능한 IP 범위를 입력하면 됩니다. 그리고, DNS 네임 서버가 있으면 네임 서버를 입력하고 생성 버튼을 클릭합니다.

 

18.  그러면 네트워크 목록에서 public 네트워크의 관련 서브넷 정보가 생성된 것을 확인 하실 수 있습니다.


19.  네트워크 생성이 완료되면 라우터 생성을 해야 합니다. 라우터 생성은 demo 계정에서 생성해야 하므로, admin 계정을 로그아웃하고 demo 계정으로 로그인합니다. 그리고, 좌측의 프로젝트 > 네트워크 > 라우터 메뉴를 선택합니다.

 

20.  라우터 생성 버튼을 클릭하면 아래와 같은 라우터 생성 팝업이 뜨는데, 라우터 이름에 생성하고자 하는 라우터 명을 입력하고 라우터 생성 버튼을 클릭합니다.

 

21.  라우터가 생성이 되면 라우터의 게이트웨이와 인터페이스를 설정해야 합니다. 우선, 게이트웨이 먼저 설정해 보도록 하겠습니다. 생성한 라우터의 게이트웨이 설정 버튼을 클릭합니다.

 

22.  게이트웨이 설정 창이 뜨면 외부 네트워크를 아까 생성한 public으로 선택한 후 게이트웨이 설정 버튼을 클릭합니다.


23.  라우터의 게이트웨이가 public 네트워크로 설정되었습니다. 이제 인터페이스를 설정해 보겠습니다. 라우터 이름을 클릭하여 세부 정보로 들어갑니다.

 

24.  라우터 세부 정보에서는 라우터 기본 정보, 인터페이스를 확인 할 수 있습니다. 인터페이스 추가 버튼을 클릭합니다.


25.  인터페이스 추가 창에서는 아래와 같이 서브넷을 선택하고 인터페이스 추가 버튼을 클릭합니다.


26.  아래와 같이 인터페이스가 추가되었습니다. 



인스턴스 생성하기

네트워크 설정이 끝났으면 이제 인스턴스를 생성할 수 있습니다. 인스턴스 생성은 demo 계정으로 로그인하여 진행하면 됩니다.

 

1.     Demo 계정으로 데쉬보드를 로그인 한 후 좌측 메뉴에서 프로젝트 > Compute > 인스턴스 메뉴를 선택합니다.

 

2.     인스턴스 화면 우측 상단의 +인스턴스 시작 버튼을 클릭하면 아래와 같이 인스턴스를 생성할 수 있는 화면이 뜹니다. 그러면, 인스턴스 이름, 이미지를 선택합니다.

 

3.     이번에는 네트워킹 탭에 들어가서 네트워크가 선택되었는지 확인하고 Launch 버튼을 클릭합니다.

 

4.     이제 몇 분만 기다리면 인스턴스가 생성이 됩니다.


이렇게 해서 CentOS에서 설치해보는 오픈스택 All-in-One 편을 모두 마쳤습니다. 

다음 포스팅에서는 Multi node로 오픈스택을 설치해 보도록 하겠습니다.

댓글
  • 프로필사진 stack Neutron 네트워크 생성 이부분에서 분명히 ifconfig 치면 br-ex / br-int / br-tun이 버츄얼머신에서 보이는데
    /etc/sysconfig/network-scripts/ifcfg-br-ex 이 파일이 없습니다
    어떻게 해야 하나여? 난감하네요
    2015.03.06 16:14
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 그럼, 생성을 해 보는건 어떨까요? 2015.03.09 10:33 신고
  • 프로필사진 kk 단일노드로 설치후 멀티노드로 변경할수는 없나요? 있다면 노드를 추가하면 되는건가요?
    어떠한 방법이있나요?
    2015.03.31 16:15
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 단일 노드 설치 후 멀티 노드로 변경할 수 있습니다.

    모든 서비스를 서버 한대에 설치하시고, 추가를 원하실 경우 컴퓨터 노드를 추가하는 방법으로 하면 됩니다.
    2015.04.01 00:49 신고
  • 프로필사진 dreamer83 안녕하세요 ~ All-in-One을 설치하고 인스턴스를 생성했는데 외부에서 인스턴스 접속 방법에 대해서 질문하고 싶어서 덧글을 남깁니다.

    일단 전체적인 설치과정과 인스턴스 생성방식은 올려주신 과정과 동일하구요.
    외부 접속을 위한 룰 추가 (SSH, ICMP) , 유동 아이피 탭에서 프로젝트에 ip 할당후 인스턴스에 연결해 주었습니다.

    현재 사용하는 네트워크가 교내 네트워크로 각각의 네트워크 카드에 아이피를 할당 받아서 사용하는 방식이라 인터넷 연결이 가능한 포트를 앞의 그림처럼 여러 개를 할당 받아 사용하기는 힘이 듭니다.

    이 경우에는 네트워크를 어떻게 구성해야 외부에서 접속이 가능한 시스템을 구현 할 수 있을까요?

    그러니까 정리를 하자면..

    실제 210.125.146.xxx /24 로 할당된 서버 한대에 Allinone으로 설치
    Fixed IP는 210.125.146.xxx 로 설정 (실제 외부 인터넷에 접속이 가능한)
    Floating 부분은 192.168.0.0/24
    가상 인스턴스는 10.0.0.0/24
    으로 설정된 상태입니다.

    앞의 포스팅에 나와있는 그림과는 다르게 외부 인터넷과 연결된 부분이 Fixed 부분이고
    Floating 부분인 br-ex 의 ip, 게이트웨이 등이 실제 인터넷이 가능한 대역과는 다릅니다.

    아마 이 부분 때문에 외부에서 접속이 되지 않는 것 같은데

    저와 같은 환경에서 시스템을 구성하여 외부에서 인스턴스에 직접 접속이 가능하게 하려면
    어떤 방식으로 네트워크를 설정해야 할까요?

    외부와 연결되는 공유기 등을 사용하여 별도의 네트워크를 구성한 뒤 시스템을 구성해야 할까요?


    작성해주신 메뉴얼 들을 보고 참고를 하고 있긴 하지만 어떻게 해야 할지 감이 잘 오지 않아서 질문 드렸습니다.
    2015.04.26 19:03
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 흠... 설명을 어떻게 드려야 좋을까요?
    혹시 그림으로 네트워크 구성도를 그려볼 수 있을까요?
    그리고 저한테 보내주세요~!! 제 메일 주소는 nalee999@gmail.com 입니다.
    2015.04.28 10:41 신고
  • 프로필사진 spica 위의 dreamer83님의 질문과 비슷한데요, naleejang님의 말씀대로 설치해보면,
    OpenStack 서버의 IP는 eth0:10.10.15.11, eth1:196.168.0.100 이지요?
    OpenStack에서 생성된 demo계정으로 생성된 라우터는 10.0.0.1이고, 처음으로 생성한 VM은 10.0.0.3 IP를 가지게 됩니다.
    그럼, OpenStack서버(196.168.0.100)에서 10.0.0.1 또는 10.0.0.3으로 ping이나 네트웍이 되질 않습니다.
    어떻게 하면 가능한지 알려주시면 감사하겠습니다.
    2015.07.04 10:34
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 라우터를 만들고 외부 네트워크(196.168.0.100와 내부 네트워크(10.0.0.1)를 연결해야지요~!! 오픈스택 데쉬보드에 보면 네트워크에 라우터라는 메뉴를 클릭하여 라우터를 만들어야겠지요~!! 위의 19번부터 26번까지의 과정이라고 볼 수 있을 것 같습니다. 2015.07.08 15:36 신고
  • 프로필사진 승부사 안녕하세요 블로그를 많이 구독하는 애독(?)자 입니다 ㅎㅎ
    openstack에 많은 부분을 알려주셔서 정말 감사합니다^^

    openstack을 설치하면서 어려운 부분이 있어 글을 남깁니다.

    packstack을 이용하는 방법과 controller, network, compute 나눠서 설치하는 방법을 진행하였습니다.

    인스턴스를 생성할때 나타나는 메세지입니다.

    오류:Neutron에 접속할 수 없습니다.
    오류: 인스턴스 "test1"를 구동하는데 실패했습니다.: 다음에 다시 시도하십시오 [오류: No valid host was found. ].

    packstack으로 자동설치할때도 나타나서 난감한 경우인데요...

    이런 현상은 어떻게 해결해야 되는지 궁금합니다.

    ggs5563@gmail.com 시간이 되시면 답변부탁드리겠습니다.

    감사합니다^^
    2015.10.02 19:12
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 안녕하세요~!!
    답글이 너무 늦었네요~!!

    우선, 로그를 먼저 보세요~!
    그리고, 에러 로그를 구글링으로 찾아서 어떤 부분에서 에러가 발생하는지 확인해 보세요~!!

    nova-manage service list 로 서비스가 정상적으로 실행되고 있는지 확인하세요~!!
    Neutron 서비스를 확인하시고, 물리 IP와 Neutron IP가 정상적으로 매칭되었는지 확인하세요~!!
    2015.10.22 10:06 신고
  • 프로필사진 클라우드의 꿈나무 여기까지 완료했다면 생성된 인스턴스로 아피치서버를 통한 웹서비스도 가능한것인가요? 2015.10.08 00:24
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 당연하지요~!! ^^ 2015.10.22 10:07 신고
  • 프로필사진 김경준 안녕하세요! allinone 설치 후, 차례대로 진행 하는데 기존의 public 네트워크를 삭제 후, public 네트워크를 외부 네트워크를 활성화 하고나서 생성하려고 하니, 네트워크를 생성하는데 실패했다고 출력이 되는데, 이유를 알 수 있을까요?
    패키지는 rocky 입니다.
    2019.10.12 11:32
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 음... 질문의 요지가 실패했는데 왜 실패했는지 어떻게 분석하느냐? 뭐 그런거죠?

    우선, 왜 실패했는지 실패 사유가 로그로 뜰것 같은데,... Neutron 관련 로그를 먼저 봐야겠죠!! 로그를 보면 영어로 왜 실패가 되었는지 사유가 나와요!! 그러니 Neutron 관련 로그를 확인하세요!
    2019.10.14 16:49 신고
  • 프로필사진 Favicon of http://not-to-be-reset.tistory.com BlogIcon 김경준 안녕하세요!! 댓글 달았던 문제는 해결하였씁니다!! (아주 간단한 거였는데 슬프네요...)
    하나 더 문제가 있는데, openstack에서 생성한 가상머신에서 외부 네트워크 (예를들어 ping 8.8.8.8)가 되지를 않습니다. 유동아이피가 172.24.4.153인데, 핑이 되는 주소는 172.24.4.1 192.168.0.2(host) 입니다. 혹시 무엇이 문제인지, 살펴보아야 할 곳이 어딘지 알 수 있을까요???
    2019.10.17 22:49
댓글쓰기 폼