안녕하세요. 최근 OpenStack을 처음 접하게 된 엔지니어 입니다.
현재 사용이 가능한 Ocata 버전으로 OpenStack을 구성했습니다.
다름이 아니오라 문제가 있어 문의 드립니다. 웹 사이트 검색했지만, 정확한 문제점을 찾을 수 없습니다.
*# 환경 정보*
서버 구성 : 실제 물리 서버 2 대(Controller Node 1대, Compute Node 1대).
설치 참조 URL : https://docs.openstack.org/ocata/install-guide-rdo/
운영체제 정보 : Centos 7.3
오픈스택 버전 : Ocata
오픈스택 Neutron 구성 정보 : Self-Service Network
*# 문제점*
현재 제가 겪고 있는 문제점은 Controller Node에 방화벽(Firewall)을 Enable을 시킬 경우 인스턴스 실행 시
DHCP로부터 인스턴스가 IP를 할당 받을 수 없습니다.
반면, 방화벽(Firewall)을 Disable 할 때에는 문제 없이 IP를 할당 받을 수 있습니다.
서로 Controller Node와 Compute Node 간 방화벽은 아래 명령어로 구성하여 접근이 가능하도록 설정했습니다.
- Controller Node
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source
address='<*Compute Node IP*>' accept"
- Compute Node
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source
address='<*Controller Node IP*>' accept"
*# 예상되는 절차*
일단은 패킷을 확인했을 때 정상적으로는 다음과 같이 진행되어야 합니다. [ 아래는 패킷으로 확인한 것이라 정확한 순서가 아닐 수
있습니다. ]
1. [Discover] 생성된 인스턴스가 브로드 캐스트를 통하여 OpenStack의 DHCP를 찾는다.
2. [Offen] OpenStack의 DHCP은 메시지를 받고 할당 할 수 있는 IP를 제안합니다.
3. [Request] 제안을 받은 인스턴스는 해당 아이피를 요청합니다.
4. [ACK] OpenStack의 DHCP은 요청된 아이피를 응답하여 할당합니다.
하지만, 현재 Controller Node의 방화벽을 Enable 했을 때 1번에서 머물고 있습니다.
확인해본 결과 DHCP 트래픽은 UDP를 사용하고 클라이언트는 서버에 68에서 67으로 보내는 것으로 알고 있어, 방화벽 규칙을
적용했지만 제대로 되지 않네요.
다음을 추측해보고 있지만, OpenStack 방화벽 규칙 적용도 간단한게 아니라 이것도 확인 중입니다.
1. [이미 언급] Compute Node에 동작하는 인스턴스가 브로드 캐스트를 날렸지만, Controller Node의
Self-Service Network까지 전달이 되지 않음.
2. [이건 정확히 모르겠습니다.] Ocata 버전부터 dhcp_release6 지원으로 기존에 있던 것보다 추가 구성이 필요함.
이 문제를 어떻게 해결 할 수 있을까요 ?
의견을 주시면 감사하겠습니다. 좋은 하루 되세요.
ᐧ