본문

VirtualBox위에 OpenStack Liberty 설치하기 #3. 네트워크 설정

글쓰게 된 계기도 설명하고 VirtualBox를 비롯한 소소한 팁도 공유하고 Liberty 네트워크 구조도 설명했으니 본격적으로 VirtualBox위에 오픈스택 설치를 진행하고자 한다. 이전글('VirtualBox위에 OpenStack Liberty 설치하기 #2. Liberty 네트워크구조')에서 언급한대로 Self-Service Networks 구조를 바탕으로 진행하려고 하며, 이를 위해 VirtualBox로 구현된 네트워크 구조는 다음과 같다.

[그림 1,2,3] OpenStack Install Guide의 Private project network, Host networking그림과 이를 VirtualBox에서 구현한 네트워크 구조


세가지 그림이 약간씩 다른데, 공통적인 사항은 컴퓨트와 컨트롤러 노드 두개의 노드로 오픈스택이 구성되어있다는 점이다. 이때Management Network는 10.0.0.0/24 대역을 사용한다. Public 대역은 두개의 오픈스택 가이드에서는 203.0.113.0/24로, 이번에 VirtualBox로 구성하는 네트워크에서는 10.0.2.0/24로 구성되어 있다. 사실 [그림 1,3]은 서로 매핑이 잘 되는데 [그림 2]는 약간 혼동을 일으킬 수 있어서 넣지 않으려 했는데, 그래도 비슷한 의미를 담고있는것 같아서 넣어보았다.


VirtualBox에서는 두개의 가상머신(Controller 노드, Compute 노드)을 만들고 인터페이스를 다음과같이 설정해준다.


[그림 4,5,6] VirtualBox에서 어댑터 1,2,3 (eth0,1,2) 설정하기

  • 어댑터 1에서는 외부 네트워크와 격리된 관리 네트워크를 위하여 '내부 네트워크'로 설정하였다. 모든 노드가 동일한 '이름'값을 갖는지 확인하면 된다(따로 설정하지 않으면 모두 intnet으로 설정됨)
  • 어댑터 2는 NAT 네트워크로, 이에 관련한 설명은 이전게시물('VirtualBox의 NAT, 내부 네트워크, NAT 네트워크')에서 다루었으므로 참고할 수 있다. 기본적으로는 '이름'값이 정의되지 않아 네트워크를 사용할 수 없으므로 VirtualBox 메인화면에서 파일 -> 환경설정 -> 네트워크 -> (+)버튼을 눌러서 새로운 NatNetwork를 추가할 수 있다. 새로운 NatNetwork는 기본적으로 10.0.2.0/24대역을 가지므로 추가로 설정할 것은 없다.
  • 어댑터 3은 NAT으로 관리의 편의를 위하여 (apt-get으로 인터넷을 통해 프로그램을 설치한다든가) 임시적으로 추가한것으로, 설치가 완료되면 어댑터를 사용하지 않아도 된다. 큰 문제 없으면 남겨놓는게 편하긴 하다.


두개의 가상머신에서 네트워크를 위와같이 설정해주고 각각 우분투를 설치한 후 /etc/hosts에 다음을 추가한다. 별도의 dns를 사용하지 않고 그냥 controller를 호출하면 10.0.0.11으로 접속하게, compute1을 호출하면 10.0.0.31로 접속하게 하는것이다. 마치 localhost라고 입력하면 127.0.0.1으로 접속하는것과 동일한 원리이다. comptute뒤에 숫자를 붙인것은 다수의 compute를 지원하기 위해서이며, compute2의 경우 10.0.0.32, compute3의경우 10.0.0.33등으로 확장하려고 한것같다.


# controller
10.0.0.11       controller

# compute1
10.0.0.31       compute1


이후 /etc/network/interface파일을 열어 다음과 같이 설정해준다. 단, 아래는 Controller노드에 해당하는것이고 Compute노드1일경우 10.0.0.11을 10.0.0.31로 바꿔서 설정해야 한다. 첫번째 eth0항목은 'ifconfig eth0 10.0.0.11 netmask 255.255.255.0'을 실행한것과 동일한 효과를 낸다. (단 명령은 일회성이므로 재부팅하면 초기화된다) 두번째 eth1항목은 누군가는 promiscuous 모드 활성화를 시키기 위해서라고 하는데 그러려면 'up ip link set $IFACE promisc on'라고 써야하고, 따라서 이항목은 그냥 ip를 지정하지않은 상태로 인터페이스를 활성화 하기 위한것으로 이해해야 한다. (16/02/17 수정: 댓글에서 언급한대로 gateway 부분 삭제함)


auto eth0
iface eth0 inet static
address 10.0.0.11
netmask 255.255.255.0


auto eth1
iface eth1 inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down


auto eth2
iface eth2 inet dhcp


위와같이 입력하고 재부팅하면 관련 네트워크 설정은 끝난다. 이제 네트워크 인프라 구성이 끝났으니 다음글부터는 본격적으로 오픈스택 서비스 설치를 진행하면 된다. 참고로 위의 /etc/hosts 파일과 /etc/network/interfaces파일은 루트권한으로 아래를 실행해주면 된다. (우분투 14.04기준)


curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/_etc_hosts" > /etc/hosts

  • Controller 노드에서: curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/Ctrl|_etc_network_interfaces" > /etc/network/interfaces
  • Compute 노드에서: curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/Compute|_etc_network_interfaces" > /etc/network/interfaces


저작자 표시 비영리 변경 금지
신고

댓글 9

  • 게스트 썸네일
    뱅준~
    2015.11.22 22:48 신고

    네트워크를 설정하였는데
    curl 부분부터 안넘어갑니다.
    계속 인터넷 연결이 안되는데 인터페이스1번이 외부인터넷망하고 연결되야하는데 버추얼박스에서 추가적으로 해줘야하는 작업이 있는지요? 인터페이스 1번이 외부망하고 연결이 안됩니다. 컴퓨터 노드 컨트롤 노드에서 구글로 각각 핑을 날려도 응답이 없습니다.

    • 게스트 썸네일
      2015.11.23 09:49 신고

      인터페이스1이 eth1, 어댑터 2 말씀하시는거지요?
      /etc/network/interface 에서 설정을 저렇게 해놓은 바람에(어댑터2에 IP할당안함) 인터넷과의 연결이 진행이 안되실거에요. 어댑터 3(NAT)이 여기서 위력을발휘합니다~

  • 게스트 썸네일
    뱅준~
    2015.11.29 22:54 신고

    아무래도 우분투에서 어뎁터3을 못잡는거 같습니다.
    ifconfig 확인해봤는데 어뎁터 1하고 2는 잡는데 3은 안나오더군요
    윈도우 10을 써서 그런가.. 내부 방화벽도 다 껏고 어댑터 3을 못잡내요
    compute와 controll 자기들 끼리는 핑이 또 됩니다.
    무엇을 확인해보면 좋을까요?

    • 게스트 썸네일
      2015.12.08 17:58 신고

      윈도우 문제는 아닌것같구 아무래도 /etc/network/interface 파일에 귀찮아서 eth2를 적지않아서 그런것 같아요, (저는 안적어도 잘됐는데..)
      방화벽 문제는 아닙니다. 그리고 Compute/Controller간에는 이미 내부네트워크/NAT 네트워크로 직접연결되어있어서 통신이 잘되실거에요

  • 게스트 썸네일
    오픈스택 네트워크 설정 중
    2016.01.08 15:19 신고

    설명에 나와 있는데로 네트워크 설정 하였는데,
    네트워크 설정 후 인터넷이 안됩니다(구글, 우분투 업데이트 등에 핑을 날리면 unkown host 라고 나와요 ). 최초에 네트워크 설정 전에는 인터넷이 잘 되었구요.

    auto eth2
    iface eth2 inet dhcp

    <---------------- 이 설정을 해주건 안해주건 인터넷이 안되는건 마찬가지입니다.

    혹여 다른 설정이 필요한 것은 아닌지 확인바랍니다.

    • 게스트 썸네일
      오픈스택 네트워크 설정 중
      2016.01.08 15:54 신고

      auto eth0
      iface eth0 inet static
      address 10.0.0.11
      netmask 255.255.255.0
      gateway 10.0.0.1


      설정에서 "gateway 10.0.0.1" 을 삭제하니 인터넷이 됩니다.
      다른 분들 참고하세요

    • 게스트 썸네일
      2016.02.18 09:03 신고

      지적 감사합니다. 우선 글을 전체적으로 다시 검토하여 문제점을 파악해 보겠습니다.

  • 게스트 썸네일
    궁금
    2016.02.25 16:27 신고

    오픈스택에 관심있어서 이렇게 포스팅을 보게되었습니다.

    만약 위의 구성을 버추얼 박스가 아닌

    실제 물리적인 서버 2대에 설치한다면 어떻게 네트워크를 구성해야할까요?

    실제 물리적인 서버에다가 사설IP 10.0.0.11을 주고 eth1에다가는 위와같이 줘버리면, 사실상 공인은 접속이 아에안되는것이 되는데,

    실제 서비스를 위해 운영용 설치를 하려고합니다. 그래서 물리적인 서버에다가 설치를 하려고하는데요 (일반적으로 실제 운영을 위해 오픈스택을 설치하면 가상화가아닌 실제 물리서버에 설치하는것이맞지요?) 네트워크를 어떻게 주어야하는지요??

    위의 경우는 사설하나만 주어도 가상화이기때문에 사설ip가 nat가 되어 인터넷이 되는것으로 보이는데 물리적인 서버에 설치한다면 어떻게해야할지요 ㅎㅎ

    • 게스트 썸네일
      2016.02.25 18:07 신고

      안녕하세요, 반갑습니다~
      제가 eth0과 eth1 모두에 10 대역을 사용해서 혼동하신것 같습니다.
      [그림 1,2]에 나와있는대로, eth0(Management Network)는 사설IP를 사용하고, eth1(Public Network)는 공인IP를 사용하시면 되세요
      대신 제가 IP 설정부분을 다 환경설정 파일에 입력해놓고 이를 긁어오는 형식으로(curl) 가이드를 작성했는데요 설치시에는 이런 부분들을 확인하셔야 합니다

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.

티스토리 툴바