네트워킹 가이드
Red Hat OpenStack Platform Networking에 대한 고급 가이드
초록
머리말 링크 복사링크가 클립보드에 복사되었습니다!
인스턴스를 생성하는 동안에는 RBAC(역할 기반 액세스 제어)-공유 보안 그룹을 인스턴스에 직접 적용할 수 없습니다. RBAC-shared 보안 그룹을 인스턴스에 적용하려면 먼저 포트를 생성하고, 공유 보안 그룹을 해당 포트에 적용한 다음 해당 포트를 인스턴스에 할당해야 합니다. 포트에 보안 그룹 추가를 참조하십시오.
보다 포괄적 수용을 위한 오픈 소스 용어 교체 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
Red Hat 문서에 관한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
문서 개선을 위한 의견을 보내 주십시오. Red Hat이 어떻게 이를 개선하는지 알려주십시오.
DDF(직접 문서 피드백) 기능 사용
특정 문장, 단락 또는 코드 블록에 대한 직접 주석은 피드백 추가 DDF 기능을 사용하십시오.
- 다중 페이지 HTML 형식으로 설명서를 봅니다.
- 문서 오른쪽 상단에 Feedback (피드백) 버튼이 표시되는지 확인합니다.
- 주석 처리하려는 텍스트 부분을 강조 표시합니다.
- 피드백 추가를 클릭합니다.
- 주석을 사용하여 Add Feedback (피드백 추가) 필드를 작성합니다.
- 선택 사항: 설명서 팀이 문제에 대한 자세한 내용을 문의할 수 있도록 이메일 주소를 추가하십시오.
- Submit(제출)을 클릭합니다.
1장. OpenStack 네트워킹 소개 링크 복사링크가 클립보드에 복사되었습니다!
Networking 서비스(neutron)는 RHOSP(Red Hat OpenStack Platform)의 소프트웨어 정의 네트워킹(SDN) 구성 요소입니다. RHOSP 네트워킹 서비스는 가상 머신 인스턴스로의 내부 및 외부 트래픽을 관리하고 라우팅, 분할, DHCP 및 메타데이터와 같은 핵심 서비스를 제공합니다. 가상 네트워킹 기능 및 스위치, 라우터, 포트 및 방화벽 관리를 위한 API를 제공합니다.
1.1. RHOSP 네트워크 관리 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) Networking 서비스(neutron)를 사용하면 사이트의 네트워킹 목표를 효과적으로 충족할 수 있습니다. 다음을 수행할 수 있습니다.
프로젝트 내의 VM 인스턴스에 대한 연결 제공.
프로젝트 네트워크는 주로 일반(권한이 없는) 프로젝트를 통해 관리자 없이 네트워크를 관리할 수 있습니다. 이러한 네트워크는 완전히 가상 네트워크이며 인터넷과 같은 다른 프로젝트 네트워크 및 외부 네트워크와 상호 작용하려면 가상 라우터가 필요합니다. 또한 프로젝트 네트워크는 일반적으로 인스턴스에 DHCP 및 메타데이터 서비스를 제공합니다. RHOSP에서는 플랫, VLAN, VXLAN, GRE, GENEVE의 프로젝트 네트워크 유형을 지원합니다.
자세한 내용은 프로젝트 네트워크 관리를 참조하십시오.
프로젝트 외부의 네트워크에 VM 인스턴스를 연결합니다.
공급자 네트워크는 프로젝트 네트워크와 같은 연결을 제공합니다. 하지만 관리(권한) 사용자만 해당 네트워크를 물리적 네트워크 인프라와 인터페이스하기 때문에 관리할 수 있습니다. RHOSP에서는 플랫 및 VLAN의 공급자 네트워크 유형을 지원합니다.
프로젝트 네트워크 내에서 유동 IP 주소 또는 단일 유동 IP 주소 풀을 사용하여 수신 트래픽을 VM 인스턴스로 보낼 수 있습니다. 브리지 매핑을 사용하면 물리적 네트워크 이름(인터페이스 레이블)을 OVS 또는 OVN으로 생성된 브리지에 연결하여 공급자 네트워크 트래픽이 물리적 네트워크에 도달할 수 있습니다.
자세한 내용은 VM 인스턴스 연결을 물리적 네트워크에 참조하십시오.
에지에 최적화된 네트워크를 만듭니다.
Operator는 에지 배포에서 일반적으로 사용되는 라우팅 공급자 네트워크(RPN)를 생성할 수 있으며 하나의 세그먼트만 있는 기존 네트워크 대신 여러 계층 2 네트워크 세그먼트에 의존합니다.
RPN은 하나의 네트워크만 볼 수 있기 때문에 최종 사용자를 위한 클라우드를 간소화합니다. 클라우드 운영자의 경우 RPN은 확장성과 내결함성을 제공합니다. 예를 들어 주요 오류가 발생하면 전체 네트워크 실패 대신 하나의 세그먼트만 영향을 받습니다.
자세한 내용은 라우팅된 공급자 네트워크 배포를 참조하십시오.
네트워크 리소스를 고가용성으로 만듭니다.
AZ(AZ) 및 VRRP(Virtual Router Redundancy Protocol)를 사용하여 네트워크 리소스를 고가용성으로 유지할 수 있습니다. Operator는 다른 AZ의 다른 전원 소스에 연결된 네트워크 노드를 그룹화합니다. 다음으로 Operator는 DHCP, L3, FW 등의 중요한 서비스를 별도의 AZ에 예약합니다.
RHOSP는 VRRP를 사용하여 프로젝트 라우터 및 유동 IP 주소를 고가용성으로 만듭니다. 중앙 집중식 라우팅인 DVR(Distributed Virtual Routing)은 L3 에이전트를 배포하고 모든 컴퓨팅 노드에 라우터를 예약하는 VRRP를 기반으로 하는 대체 라우팅 설계를 제공합니다.
자세한 내용은 가용성 영역 사용을 참조하여 네트워크 리소스를 고가용성으로 만듭니다.For more information, see Using availability zones to make network resources highly available.
포트 수준에서 네트워크를 보호합니다.
보안 그룹은 인스턴스에 바인딩되는 가상 방화벽 규칙 및 포트 수준에서 수신(인스턴스에서 바인딩) 네트워크 트래픽을 송신하는 컨테이너를 제공합니다. 보안 그룹은 기본 거부 정책을 사용하며 특정 트래픽을 허용하는 규칙만 포함합니다. 각 포트는 추가 방식으로 하나 이상의 보안 그룹을 참조할 수 있습니다. 방화벽 드라이버는 보안 그룹 규칙을 iptables와 같은 기본 패킷 필터링 기술의 구성으로 변환합니다.
자세한 내용은 공유 보안 그룹 구성을 참조하십시오.
포트 트래픽을 관리합니다.
허용되는 주소 쌍을 사용하면 네트워크 트래픽이 서브넷에 관계없이 포트를 통과할 수 있도록 특정 MAC 주소, IP 주소 또는 둘 다를 식별합니다. 허용된 주소 쌍을 정의할 때 빠른 데이터 플레인 페일오버를 활성화하기 위해 두 VM 인스턴스 간에 IP 주소를 복제하는 VRRP(Virtual Router Redundancy Protocol)와 같은 프로토콜을 사용할 수 있습니다.
자세한 내용은 허용되는 주소 쌍 구성을 참조하십시오.
대규모 오버레이 네트워크를 최적화합니다.
L2 인기 드라이버를 사용하면 대규모 오버레이 네트워크에서 브로드캐스트, 멀티 캐스트 및 유니캐스트 트래픽을 활성화할 수 있습니다.
자세한 내용은 L2 채우기 드라이버 구성을 참조하십시오.
VM 인스턴스의 트래픽에 대한 수신 및 송신 제한을 설정합니다.
QoS(Quality of Service) 정책을 사용하여 송신 및 수신 트래픽에 속도 제한을 적용하여 인스턴스에 대해 다양한 서비스 수준을 제공할 수 있습니다. 개별 포트에 QoS 정책을 적용할 수 있습니다. 또한 프로젝트 네트워크에 QoS 정책을 적용할 수 있습니다. 여기서 특정 정책이 연결되지 않은 포트는 정책을 상속합니다.
자세한 내용은 QoS (Quality of Service) 정책 구성을 참조하십시오.
RHOSP 프로젝트에서 생성할 수 있는 네트워크 리소스의 양을 관리합니다.
네트워킹 서비스 할당량 옵션을 사용하면 프로젝트 사용자가 생성할 수 있는 네트워크 리소스 양을 제한할 수 있습니다. 여기에는 포트, 서브넷, 네트워크 등과 같은 리소스가 포함됩니다.
자세한 내용은 프로젝트 할당량 관리를 참조하십시오.
NFV(Network Functions Virtualization)를 위해 VM 인스턴스를 최적화합니다.
인스턴스는 단일 가상 NIC를 통해 VLAN 태그가 지정된 트래픽을 보내고 받을 수 있습니다. 이 기능은 VLAN 태그가 지정된 트래픽을 예상하는 NFV 애플리케이션(VNF)에 특히 유용하므로 단일 가상 NIC가 여러 고객 또는 서비스를 제공할 수 있습니다.
VLAN 투명한 네트워크에서 VM 인스턴스에 VLAN 태그를 설정합니다. VLAN 태그는 네트워크를 통해 전송되고 동일한 VLAN의 VM 인스턴스에서 사용하며 다른 인스턴스 및 장치에서 무시됩니다. VLAN 트렁크는 VLAN을 단일 트렁크 포트에 결합하여 VLAN 인식 인스턴스를 지원합니다.
자세한 내용은 VLAN 인식 인스턴스를 참조하십시오.
인스턴스를 공유 네트워크에 연결할 수 있는 프로젝트를 제어합니다.
클라우드 관리자는 RHOSP 네트워킹 서비스에서 역할 기반 액세스 제어(RBAC) 정책을 사용하여 일부 프로젝트에서 네트워크를 생성하는 기능을 제거하고 대신 프로젝트에 해당하는 기존 네트워크에 연결할 수 있습니다.
자세한 내용은 RBAC 정책 구성을 참조하십시오.
1.2. 네트워킹 서비스 구성 요소 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) Networking 서비스(neutron)에는 다음 구성 요소가 포함되어 있습니다.
API 서버
RHOSP 네트워킹 API에는 계층 2 네트워킹 및 IP 주소 관리(IPAM) 지원뿐만 아니라 계층 2 네트워크와 외부 네트워크로 라우팅할 수 있는 계층 3 라우터 구성의 확장이 포함됩니다. RHOSP 네트워킹에는 라우터, 스위치, 가상 스위치, SDN(소프트웨어 정의 네트워킹) 컨트롤러를 포함한 다양한 상용 및 오픈 소스 네트워크 기술과의 상호 운용성을 지원하는 점점 증가하는 플러그인 목록이 포함되어 있습니다.
모듈형 계층 2(ML2) 플러그인 및 에이전트
ML2 플러그인 및 포트를 연결 해제하고, 네트워크 또는 서브넷을 생성하며 IP 주소 지정을 제공합니다.
메시징 대기열
에이전트 간 RPC 요청을 수락 및 라우팅하여 API 작업을 완료합니다. 메시지 큐는 Open vSwitch 및 Linux 브리지의 ML2 메커니즘 드라이버에서 각 하이퍼바이저에서 실행되는 neutron 서버와 neutron 에이전트 간 ML2 플러그인에서 사용됩니다.
1.3. 모듈형 계층 2(ML2) 네트워킹 링크 복사링크가 클립보드에 복사되었습니다!
ML2(Red Hat OpenStack Platform)는 RHOSP(Red Hat OpenStack Platform) 네트워킹 코어 플러그인입니다. ML2 모듈 설계를 사용하면 메커니즘 드라이버를 통해 혼합 네트워크 기술을 동시에 작동할 수 있습니다. OVN(Open Virtual Network)은 ML2에서 사용되는 기본 메커니즘 드라이버입니다.
ML2 프레임워크는 구성할 수 있는 두 가지 종류의 드라이버를 구분합니다.
- 드라이버 유형
RHOSP 네트워크가 기술적으로 실현되는 방법을 정의합니다.
사용 가능한 각 네트워크 유형은 ML2 유형 드라이버에서 관리하며 필요한 유형별 네트워크 상태를 유지합니다. 공급자 네트워크의 유형 관련 정보를 검증하면 유형 드라이버는 프로젝트 네트워크에서 사용 가능한 세그먼트를 할당해야 합니다. 유형 드라이버의 예로는 GENEVE, GRE, VXLAN 등이 있습니다.
- 메커니즘 드라이버
특정 유형의 RHOSP 네트워크에 액세스하는 메커니즘을 정의합니다.
메커니즘 드라이버는 유형 드라이버에 의해 설정된 정보를 가져와 활성화된 네트워킹 메커니즘에 적용합니다. 메커니즘 드라이버의 예로는 OVN(Open Virtual Networking) 및 OVS(Open vSwitch)입니다.
메커니즘 드라이버는 L2 에이전트를 사용할 수 있으며 RPC를 사용하여 외부 장치 또는 컨트롤러와 직접 상호 작용할 수 있습니다. 여러 메커니즘과 유형 드라이버를 동시에 사용하여 동일한 가상 네트워크의 다른 포트에 액세스할 수 있습니다.
1.4. ML2 네트워크 유형 링크 복사링크가 클립보드에 복사되었습니다!
여러 네트워크 세그먼트를 동시에 작동할 수 있습니다. ML2는 여러 네트워크 세그먼트의 사용 및 상호 연결을 지원합니다. ML2가 포트를 연결과 분리하기 때문에 포트를 네트워크 세그먼트에 바인딩할 필요는 없습니다. ML2는 메커니즘 드라이버에 따라 다음 네트워크 세그먼트 유형을 지원합니다.
- flat
- VLAN
- GENEVE 터널
- VXLAN 및 GRE 터널
- flat
- 모든 VM(가상 머신) 인스턴스는 동일한 네트워크에 있으며, 호스트와 공유할 수도 있습니다. VLAN 태그 지정 또는 기타 네트워크 분리가 수행되지 않습니다.
- VLAN
RHOSP 네트워킹 사용자는 물리적 네트워크에 있는 VLAN ID(802.1Q 태그)를 사용하여 여러 공급자 또는 프로젝트 네트워크를 생성할 수 있습니다. 이렇게 하면 인스턴스가 환경 전반에서 서로 통신할 수 있습니다. 또한 동일한 계층 2 VLAN의 전용 서버, 방화벽, 로드 밸런서 및 기타 네트워크 인프라와 통신할 수 있습니다.
VLAN을 사용하여 동일한 스위치에서 실행되는 컴퓨터의 네트워크 트래픽을 분할할 수 있습니다. 즉, 포트를 다른 네트워크의 구성원으로 구성하여 스위치를 논리적으로 나눌 수 있습니다. 이때 보안상의 이유로 트래픽을 분리하는 데 사용할 수 있는 미니 LAN입니다.
예를 들어 스위치에 총 24개의 포트가 있는 경우 포트 1-6을 VLAN200에 할당하고 포트 7-18을 VLAN201에 할당할 수 있습니다. 결과적으로 VLAN200에 연결된 컴퓨터는 VLAN201의 애플리케이션과 완전히 분리되며, 직접 통신할 수 없으며 원하는 경우 트래픽이 두 개의 물리적 스위치인 것처럼 라우터를 통과해야 합니다. 방화벽은 서로 통신할 수 있는 VLAN을 관리하는 데도 유용할 수 있습니다.
- GENEVE 터널
- GENEVE는 네트워크 가상화에서 변화하는 기능과 다양한 장치의 요구사항을 인식하고 수용합니다. 전체 시스템에 대해 규정되어 있지 않고 터널링을 위한 프레임워크를 제공합니다. Geneve는 캡슐화 중에 추가되는 메타데이터의 콘텐츠를 유연하게 정의하고 다양한 가상화 시나리오에 적응하려고 합니다. UDP를 전송 프로토콜로 사용하며 확장 가능한 옵션 헤더를 사용하여 크기가 동적입니다. Geneve는 유니캐스트, 멀티캐스트 및 브로드캐스트를 지원합니다. GENEVE 유형 드라이버는 ML2/OVN 메커니즘 드라이버와 호환됩니다.
- VXLAN 및 GRE 터널
- VXLAN과 GRE는 네트워크 오버레이를 사용하여 인스턴스 간 개인 통신을 지원합니다. RHOSP 네트워킹 라우터는 GRE 또는 VXLAN 프로젝트 네트워크 외부에서 트래픽을 통과하도록 트래픽을 활성화하는 데 필요합니다. 라우터는 인터넷 등 외부 네트워크를 사용하여 직접 연결된 프로젝트 네트워크를 연결해야 합니다. 라우터는 유동 IP 주소를 사용하여 외부 네트워크에서 직접 인스턴스에 연결할 수 있는 기능을 제공합니다. VXLAN 및 GRE 유형 드라이버는 ML2/OVS 메커니즘 드라이버와 호환됩니다.
1.5. 모듈형 계층 2(ML2) 메커니즘 드라이버 링크 복사링크가 클립보드에 복사되었습니다!
ML2( modular Layer 2) 플러그인은 공통 코드 베이스를 사용하는 메커니즘으로 구현됩니다. 이러한 접근 방식을 통해 코드를 재사용하고 코드 유지 관리 및 테스트와 관련된 복잡성을 없앨 수 있습니다.
Red Hat은 RHOSP 16.0부터 시작하는 모든 새로운 배포의 기본 메커니즘 드라이버로 ML2/OVN을 선택했습니다. 현재 대부분의 고객에게 ML2/OVS 메커니즘 드라이버보다 즉각적인 이점이 있기 때문입니다. 이러한 장점은 ML2/OVN 기능 세트를 계속 향상하고 개선하는 동안 각 릴리스에 대해 두 배가 증가합니다.
기존 RHOSP(Red Hat OpenStack Platform) 배포에서 ML2/OVS 메커니즘 드라이버를 사용하는 경우 OVS 드라이버를 ML2/OVN 메커니즘 드라이버로 교체할 때의 이점과 가능성을 평가해야 합니다. Red Hat은 RHOSP 16.1에서 ML2/OVN으로의 직접 마이그레이션을 지원하지 않습니다. ML2/OVN 메커니즘 드라이버로 마이그레이션하기 전에 최신 RHOSP 16.2 버전으로 업그레이드해야 합니다.
오케스트레이션 서비스(heat) 매개변수인 NeutronMechanismDrivers 를 사용하여 메커니즘 드라이버를 활성화합니다. 다음은 heat 사용자 지정 환경 파일의 예입니다.
parameter_defaults: ... NeutronMechanismDrivers: ansible,ovn,baremetal ...
parameter_defaults:
...
NeutronMechanismDrivers: ansible,ovn,baremetal
...
메커니즘 드라이버를 지정하는 순서는 중요합니다. 이전 예제에서 baremetal 메커니즘 드라이버를 사용하여 포트를 바인딩하려면 ansible 보다 baremetal 을 지정해야 합니다. 그렇지 않으면 NeutronMechanismDrivers 의 값 목록에서 baremetal 앞에 있기 때문에 ansible 드라이버는 포트를 바인딩합니다.
1.6. Open vSwitch 링크 복사링크가 클립보드에 복사되었습니다!
OVS(Open vSwitch)는 Linux 소프트웨어 브릿지와 유사한 소프트웨어 정의 네트워킹(SDN) 가상 스위치입니다. OVS는 업계 표준 OpenFlow 및 sFlow를 지원하는 가상화된 네트워크로 전환 서비스를 제공합니다. OVS는 STP, LACP 및 802.1Q VLAN 태깅과 같은 계층 2 기능을 사용하여 물리적 스위치와 통합할 수도 있습니다. Open vSwitch 버전 1.11.0-1.el6 이상에서는 VXLAN 및 GRE를 사용한 터널링도 지원합니다.
네트워크 인터페이스 본딩에 대한 자세한 내용은 Advanced Overcloud Customization 가이드의 Network Interface Bonding 가이드를 참조하십시오.
지정된 브릿지의 멤버가 될 수 있는 단일 인터페이스 또는 단일 본딩만 OVS에서 네트워크 루프 위험을 완화합니다. 여러 개의 본딩이나 인터페이스가 필요한 경우 여러 브릿지를 설정할 수 있습니다.
1.7. OVN(Open Virtual Network) 링크 복사링크가 클립보드에 복사되었습니다!
OVN(Open Virtual Network)은 가상 머신 및 컨테이너 환경에서 논리적 네트워크 추상화를 지원하는 시스템입니다. Open vSwitch용 오픈 소스 가상 네트워킹이라고 하는 OVN은 OVS의 기존 기능을 보완하여 논리 네트워크 추상화(예: 논리 L2 및 L3 오버레이, DHCP와 같은 보안 그룹 및 서비스)에 대한 기본 지원을 추가합니다.
물리적 네트워크는 물리적 전선, 스위치 및 라우터로 구성됩니다. 가상 네트워크는 물리적 네트워크를 하이퍼바이저 또는 컨테이너 플랫폼으로 확장하여 VM 또는 컨테이너를 물리적 네트워크로 브리징합니다. OVN 논리적 네트워크는 터널 또는 다른 캡슐화를 통해 물리적 네트워크에서 캡슐화된 소프트웨어로 구현된 네트워크입니다. 이를 통해 논리적 네트워크에서 사용되는 IP 및 기타 주소 공간은 충돌없이 물리적 네트워크에서 사용되는 주소와 중복될 수 있습니다. 논리적 네트워크 토폴로지는 실행하는 물리적 네트워크의 토폴로지와 관계없이 정렬할 수 있습니다. 따라서 논리적 네트워크의 일부인 VM은 네트워크 중단 없이 하나의 물리적 시스템에서 다른 시스템으로 마이그레이션할 수 있습니다.
캡슐화 계층은 논리적 네트워크에 연결된 VM과 컨테이너가 물리적 네트워크의 노드와 통신할 수 없도록 합니다. VM 및 컨테이너 클러스터링의 경우 허용 가능하거나 바람직할 수 있지만 대부분의 경우 VM과 컨테이너가 물리적 네트워크에 연결되어 있어야 합니다. OVN은 이러한 목적으로 여러 형태의 게이트웨이를 제공합니다. OVN 배포는 다음과 같은 여러 구성 요소로 구성됩니다.
- Cloud Management System (CMS)
- OVN 논리적 네트워크 요소를 관리하고 OVN 논리적 네트워크 인프라를 물리적 네트워크 요소에 연결하여 OVN을 물리적 네트워크에 통합합니다. 예를 들면 OpenStack 및 OpenShift가 있습니다.
- OVN 데이터베이스
- OVN 논리적 및 물리적 네트워크를 나타내는 데이터를 저장합니다.
- 하이퍼바이저
- Open vSwitch를 실행하고 OVN 논리적 네트워크를 실제 또는 가상 시스템의 OpenFlow로 변환합니다.
- 게이트웨이
- 터널과 물리적 네트워크 인프라 간에 패킷을 전달하여 터널 기반 OVN 논리적 네트워크를 물리적 네트워크로 확장합니다.
1.8. ML2) 모듈 계층 2 유형 및 메커니즘 드라이버 호환성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform 데이터 네트워크를 계획하는 경우 다음 표를 참조하여 각 Modular Layer 2(ML2) 메커니즘 드라이버에서 지원하는 네트워크 유형을 확인합니다.
| 메커니즘 드라이버 | 이러한 유형의 드라이버 지원 | ||||
| flat | GRE | VLAN | VXLAN | GENEVE | |
| OVN(Open Virtual Network) | 예 | 없음 | 예 | 없음 | 예 |
| OVS(Open vSwitch) | 예 | 예 | 예 | 예 | 없음 |
1.9. RHOSP Networking 서비스의 확장 드라이버 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) Networking 서비스(neutron)는 확장 가능합니다. 확장 기능은 두 가지 목적을 제공합니다. 이는 버전을 변경하지 않고도 API에서 새 기능을 도입할 수 있으며 공급 업체별 틈새 기능을 도입할 수 있습니다. 애플리케이션은 /extensions URI에서 GET을 수행하여 사용 가능한 확장을 프로그래밍 방식으로 나열할 수 있습니다. 이는 버전이 지정된 요청입니다. 즉, 하나의 API 버전에서 사용할 수 있는 확장 기능을 다른 API 버전에서 사용하지 못할 수 있습니다.
ML2 플러그인은 또한 다른 플러그형 드라이버를 통해 네트워크 개체용 ML2 플러그인에 구현된 코어 리소스를 확장할 수 있는 확장 드라이버를 지원합니다. 확장 드라이버의 예로는 QoS, 포트 보안 등에 대한 지원이 포함됩니다.
2장. ML2/OVN으로 작업 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 네트워크는 Networking 서비스(neutron)에서 관리합니다. 네트워킹 서비스의 핵심은 Modular Layer 2(ML2) 플러그인이며 RHOSP ML2 플러그인의 기본 메커니즘 드라이버는 OVN(Open Virtual Networking) 메커니즘 드라이버입니다.
이전 RHOSP 버전에서는 기본적으로 OVS(Open vSwitch) 메커니즘 드라이버를 사용했습니다. Red Hat은 RHOSP 16.0부터 시작하는 모든 새로운 배포의 기본 메커니즘 드라이버로 ML2/OVN을 선택했습니다. 현재 대부분의 고객에게 ML2/OVS 메커니즘 드라이버보다 즉각적인 이점이 있기 때문입니다. 이러한 이점은 Red Hat과 커뮤니티가 ML2/OVN 기능 세트를 지속적으로 개선하고 개선하는 동안 각 릴리스와 관련이 있습니다.
기존 RHOSP(Red Hat OpenStack Platform) 배포에서 ML2/OVS 메커니즘 드라이버를 사용하는 경우 OVS 드라이버를 ML2/OVN 메커니즘 드라이버로 교체할 때의 이점과 가능성을 평가해야 합니다. Red Hat은 RHOSP 16.1에서 ML2/OVN으로의 직접 마이그레이션을 지원하지 않습니다. ML2/OVN 메커니즘 드라이버로 마이그레이션하기 전에 최신 RHOSP 16.2 버전으로 업그레이드해야 합니다.
2.1. RHOSP OVN 아키텍처의 구성 요소 목록 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP OVN 아키텍처는 Networking API를 지원하기 위해 OVS Modular Layer 2(ML2) 메커니즘 드라이버를 OVN ML2 메커니즘 드라이버로 대체합니다. OVN은 Red Hat OpenStack 플랫폼을 위한 네트워킹 서비스를 제공합니다.
OVN 아키텍처는 다음 구성 요소 및 서비스로 구성됩니다.
- OVN 메커니즘 드라이버를 사용한 ML2 플러그인
- ML2 플러그인은 OpenStack 관련 네트워킹 구성을 플랫폼 중립 OVN 논리적 네트워킹 구성으로 변환합니다. 일반적으로 컨트롤러 노드에서 실행됩니다.
- OVN Northbound(NB) 데이터베이스(
ovn-nb) -
이 데이터베이스는 OVN ML2 플러그인의 논리적 OVN 네트워킹 구성을 저장합니다. 일반적으로 컨트롤러 노드에서 실행되며 TCP 포트
6641에서 수신 대기합니다. - OVN Northbound 서비스(
ovn-northd) - 이 서비스는 논리적 네트워킹 구성을 OVN NB 데이터베이스에서 논리 데이터 경로 흐름으로 변환하고 OVN Southbound 데이터베이스에서 이러한 구성을 채웁니다. 일반적으로 컨트롤러 노드에서 실행됩니다.
- OVN Southbound(SB) 데이터베이스(
ovn-sb) -
이 데이터베이스는 변환된 논리적 데이터 경로 흐름을 저장합니다. 일반적으로 컨트롤러 노드에서 실행되며 TCP 포트
6642에서 수신 대기합니다. - OVN 컨트롤러(
ovn-controller) -
이 컨트롤러는 OVN SB 데이터베이스에 연결하고 네트워크 트래픽을 제어 및 모니터링하기 위해 open vSwitch 컨트롤러 역할을 합니다.
OS::Tripleo::Services::OVNController가 정의된 모든 Compute 및 게이트웨이 노드에서 실행됩니다. - OVN 메타데이터 에이전트(
ovn-metadata-agent) -
이 에이전트는 메타데이터 API 요청을 프록시하는 데 사용되는 OVS 인터페이스, 네트워크 네임스페이스 및 HAProxy 프로세스를 관리하기 위한
haproxy인스턴스를 생성합니다. 에이전트는OS::TripleO::Services::OVNMetadataAgent가 정의된 모든 컴퓨팅 및 게이트웨이 노드에서 실행됩니다. - OVSDB(OVSDB)
-
OVN Northbound 및 Southbound 데이터베이스를 호스팅합니다. 또한
ovs-vswitchd와 상호 작용하여 OVS 데이터베이스conf.db를 호스트합니다.
NB 데이터베이스의 스키마 파일은 /usr/share/ovn/ovn-nb.ovsschema 에 있으며 SB 데이터베이스 스키마 파일은 /usr/share/ovn/ovn-sb.ovsschema 에 있습니다.
2.2. ML2/OVN 데이터베이스 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform ML2/OVN 배포에서 네트워크 구성 정보는 공유 분산 데이터베이스를 통해 프로세스 간에 전달됩니다. 이러한 데이터베이스를 검사하여 네트워크 상태를 확인하고 문제를 확인할 수 있습니다.
- OVN northbound 데이터베이스
northbound 데이터베이스(
OVN_Northbound)는 OVN과 RHOSP(Red Hat OpenStack Platform)와 같은 클라우드 관리 시스템 간의 인터페이스 역할을 합니다. RHOSP는 northbound 데이터베이스의 콘텐츠를 생성합니다.northbound 데이터베이스에는 현재 원하는 네트워크 상태가 포함되어 있으며 논리 포트, 논리 스위치, 논리 라우터 등의 컬렉션으로 표시됩니다. 모든 RHOSP Networking 서비스(neutron) 오브젝트는 northbound 데이터베이스의 테이블에 표시됩니다.
- OVN southbound 데이터베이스
-
southbound 데이터베이스(
OVN_Southbound)에는 OVN 시스템의 논리적 및 물리적 구성 상태가 가상 네트워크 추상화를 지원합니다.ovn-controller는 이 데이터베이스의 정보를 사용하여 네트워킹 서비스(neutron) 요구 사항을 충족하기 위해 OVS를 구성합니다.
2.3. 컴퓨팅 노드의 ovn-controller 서비스 링크 복사링크가 클립보드에 복사되었습니다!
ovn-controller 서비스는 각 Compute 노드에서 실행되며 OVN southbound(SB) 데이터베이스 서버에 연결하여 논리 흐름을 검색합니다. ovn-controller 는 이러한 논리 흐름을 물리적 OpenFlow 흐름으로 변환하고 OVS 브리지(br-int)에 흐름을 추가합니다. ovs-vswitchd 와 통신하고 OpenFlow 흐름을 설치하기 위해 ovn-controller 는 ovn-controller 가 시작될 때 전달된 UNIX 소켓 경로를 사용하여 로컬 ovsdb-server (예: unix:/var/run/openvswitch/db.sock.sock )에 연결됩니다.
ovn-controller 서비스는 Open_vSwitch 테이블의 external_ids 열에 있는 특정 키-값 쌍을 예상합니다. puppet-ovn 은 puppet-vswitch 를 사용하여 이러한 필드를 채웁니다. 다음 예제에서는 puppet-vswitch 가 external_ids 열에서 구성하는 키-값 쌍을 보여줍니다.
hostname=<HOST NAME> ovn-encap-ip=<IP OF THE NODE> ovn-encap-type=geneve ovn-remote=tcp:OVN_DBS_VIP:6642
hostname=<HOST NAME>
ovn-encap-ip=<IP OF THE NODE>
ovn-encap-type=geneve
ovn-remote=tcp:OVN_DBS_VIP:6642
2.4. 컴퓨팅 노드의 OVN 메타데이터 에이전트 링크 복사링크가 클립보드에 복사되었습니다!
OVN 메타데이터 에이전트는 tripleo-heat-templates/ovn/ovn-metadata-container-puppet.yaml 파일에 구성되며 OS::TripleO::Services::OVNMetadataAgent 를 통해 기본 Compute 역할에 포함됩니다. 따라서 기본 매개 변수가 있는 OVN 메타데이터 에이전트는 OVN 배포의 일부로 배포됩니다.
OpenStack 게스트 인스턴스는 링크-로컬 IP 주소에서 사용 가능한 네트워킹 메타데이터 서비스에 액세스합니다. 169.254.169.254. neutron-ovn-metadata-agent 는 Compute 메타데이터 API가 존재하는 호스트 네트워크에 액세스할 수 있습니다. 각 HAProxy는 적절한 호스트 네트워크에 연결할 수 없는 네트워크 네임스페이스에 있습니다. HAProxy는 필요한 헤더를 메타데이터 API 요청에 추가한 다음, UNIX 도메인 소켓을 통해 neutron-ovn-metadata-agent 에 요청을 전달합니다.
OVN 네트워킹 서비스는 메타데이터 서비스를 활성화하는 각 가상 네트워크에 대해 고유한 네트워크 네임스페이스를 생성합니다. 컴퓨팅 노드의 인스턴스에서 액세스하는 각 네트워크에는 해당 메타데이터 네임스페이스(ovnmeta-<datapath_uuid>)가 있습니다.
2.5. OVN 구성 가능 서비스 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform은 일반적으로 컨트롤러 역할, Compute 역할 및 다양한 스토리지 역할 유형의 노드와 같이 사전 정의된 역할의 노드로 구성됩니다. 이러한 각 기본 역할에는 코어 heat 템플릿 컬렉션에 정의된 서비스 세트가 포함되어 있습니다.
기본 OSP 16.1 배포에서 ML2/OVN 구성 가능 서비스가 컨트롤러 노드에서 실행됩니다. 선택적으로 사용자 지정 Networker 역할을 생성하고 전용 Networker 노드에서 OVN 구성 가능 서비스를 실행할 수 있습니다.
OVN 구성 가능 서비스 ovn-dbs 는 ovn-dbs-bundle이라는 컨테이너에 배포됩니다. 기본 설치 ovn-dbs 는 컨트롤러 역할에 포함되어 컨트롤러 노드에서 실행됩니다. 서비스는 구성 가능이므로 Networker 역할과 같은 다른 역할에 할당할 수 있습니다.
OVN 구성 가능 서비스를 다른 역할에 할당하는 경우 서비스가 pacemaker 서비스와 동일한 노드에 배치되어 OVN 데이터베이스 컨테이너를 제어합니다.
2.6. OVN을 사용한 계층 3 고가용성 링크 복사링크가 클립보드에 복사되었습니다!
OVN은 특별한 구성없이 레이어 3 HA(고가용성)를 지원합니다. OVN은 지정된 외부 네트워크에서 L3 게이트웨이 역할을 할 수 있는 사용 가능한 모든 게이트웨이 노드에 라우터 포트를 자동으로 예약합니다. OVN L3 HA는 OVN Logical_Router_Port 테이블의 gateway_chassis 열을 사용합니다. 대부분의 기능은 함께 제공되는 active_passive 출력이 있는 OpenFlow 규칙에 의해 관리됩니다. ovn-controller 는 ARP(Address Resolution Protocol) 응답자 및 라우터 활성화 및 비활성화를 처리합니다. FIP 및 라우터 외부 주소에 대한 Gratuitous ARP도 ovn-controller 에서 정기적으로 보냅니다.
L3HA는 OVN을 사용하여 라우터를 원래 게이트웨이 노드로 다시 분산하여 노드가 병목 현상이 발생하지 않도록 합니다.
BFD 모니터링
OVN은 BFD(Bidirectional Forwarding Detection) 프로토콜을 사용하여 게이트웨이 노드의 가용성을 모니터링합니다. 이 프로토콜은 노드에서 노드로 설정된 Geneve 터널을 기반으로 캡슐화됩니다.
각 게이트웨이 노드는 배포의 별 토폴로지에 있는 다른 모든 게이트웨이 노드를 모니터링합니다. 또한 게이트웨이 노드는 계산 노드를 모니터링하여 게이트웨이가 패킷 및 ARP 응답 및 알림의 라우팅을 활성화 및 비활성화할 수 있도록 합니다.
각 컴퓨팅 노드는 BFD를 사용하여 각 게이트웨이 노드를 모니터링하고 지정된 라우터에 대한 활성 게이트웨이 노드를 통해 SNAT(Source and destination Network Address Translation)와 같은 외부 트래픽을 자동으로 수행합니다. 컴퓨팅 노드는 다른 compute 노드를 모니터링할 필요가 없습니다.
ML2-OVS 구성에서는 외부 네트워크 오류가 감지되지 않습니다.
OVN용 L3 HA는 다음과 같은 실패 모드를 지원합니다.
- 게이트웨이 노드는 네트워크에서 연결이 끊어집니다(터널링 인터페이스).
-
OVS-vswitchd중지 (ovs-switchd는 BFD 신호를 담당합니다) -
OVN-controller가 중지됨(ovn-controller가 등록된 노드로 제거됨).
이 BFD 모니터링 메커니즘은 라우팅 실패가 아니라 링크 실패에서만 작동합니다.
2.7. ML2/OVN 메커니즘 드라이버의 제한 사항 링크 복사링크가 클립보드에 복사되었습니다!
ML2/OVS 메커니즘 드라이버에서 사용할 수 있는 일부 기능은 ML2/OVN 메커니즘 드라이버에서 아직 지원되지 않습니다.
2.7.1. ML2/OVN에서 아직 지원하지 않는 ML2/OVS 기능 링크 복사링크가 클립보드에 복사되었습니다!
| 기능 | 참고 | 이 기능 추적 |
|---|---|---|
| VLAN 프로젝트(테넌트) 네트워크에서 OVN을 사용하는 배포된 가상 라우팅(DVR). | FIP 트래픽은 ML2/OVN 및 DVR을 사용하여 VLAN 테넌트 네트워크에 전달하지 않습니다. DVR은 새로운 ML2/OVN 배포에서 기본적으로 활성화됩니다. OVN을 사용하여 VLAN 테넌트 네트워크가 필요한 경우 DVR을 비활성화할 수 있습니다. DVR을 비활성화하려면 환경 파일에 다음 행을 포함합니다. parameter_defaults: NeutronEnableDVR: false
| https://bugzilla.redhat.com/show_bug.cgi?id=1704596https://bugzilla.redhat.com/show_bug.cgi?id=1766930 |
| OVN DHCP를 사용하여 베어 메탈 머신 프로비저닝 |
현재 OVN의 기본 제공 DHCP 서버는 베어 메탈 노드를 프로비저닝할 수 없습니다. 프로비저닝 네트워크에 DHCP를 제공할 수 없습니다. 체인부팅 iPXE에는 OVN DHCP 서버에서 지원되지 않는 태그 지정( dnsmasq의 |
2.7.2. 핵심 OVN 제한 사항 링크 복사링크가 클립보드에 복사되었습니다!
외부 포트가 논리 라우터의 게이트웨이 포트와 함께 배치되지 않으므로 VLAN 테넌트 네트워크의 VF(direct) 포트의 North/south 라우팅은 SR-IOV에서 작동하지 않습니다. https://bugs.launchpad.net/neutron/+bug/1875852 참조하십시오.
2.8. ML2/OVN을 사용하는 비보안 포트 제한 링크 복사링크가 클립보드에 복사되었습니다!
기본 ML2/OVN 메커니즘 드라이버와 많은 수의 포트를 사용하여 RHOSP(Red Hat Open Stack Platform) 배포에서 포트 보안 플러그인 확장을 비활성화하면 포트에 연결할 수 없습니다.
일부 대규모 ML2/OVN RHSOP 배포에서 ML2/OVN 내부의 흐름 체인 제한은 보안 플러그인이 비활성화된 포트를 대상으로 하는 ARP 요청을 삭제할 수 있습니다.
ML2/OVN에서 지원할 수 있는 실제 논리 스위치 포트 수에 대한 문서화된 최대 제한은 없지만 limit approximateskubelet 포트입니다.
대략적인 제한에 기여하는 속성은 ML2/OVN이 생성하는 OpenFlow 파이프라인에서 다시 제출한 수이며 전체 논리 토폴로지를 변경합니다.
2.9. 새로운 RHOSP 16.1 배포에서 기본 ML2/OVN 대신 ML2/OVS 사용 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 16.0 이상 배포에서 ML2/OVN(Open Virtual Network)을 사용한 Modular Layer 2 플러그인은 RHOSP Networking 서비스의 기본 메커니즘 드라이버입니다. 애플리케이션에 ML2/OVS 메커니즘 드라이버가 필요한 경우 이 설정을 변경할 수 있습니다.
절차
-
stack사용자로 언더클라우드에 로그인합니다. 템플릿 파일
/home/stack/templates/containers-prepare-parameter.yaml에서ovn대신neutron_driver매개 변수 값으로ovs을 사용합니다.parameter_defaults: ContainerImagePrepare: - set: ... neutron_driver: ovsparameter_defaults: ContainerImagePrepare: - set: ... neutron_driver: ovsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 환경 파일에서
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs.yaml에서NeutronNetworkType매개변수에 originalve대신 ScanSetting또는gre가 포함되어 있는지 확인합니다.예제
parameter_defaults: ... NeutronNetworkType: 'vxlan'
parameter_defaults: ... NeutronNetworkType: 'vxlan'Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack overcloud deploy명령을 실행하고 수정한 코어 heat 템플릿, 환경 파일 및 파일을 포함합니다.중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하기 때문에 환경 파일의 순서가 중요합니다.
openstack overcloud deploy --templates \ -e <your_environment_files> \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/ \ neutron-ovs.yaml \ -e /home/stack/templates/containers-prepare-parameter.yaml \
$ openstack overcloud deploy --templates \ -e <your_environment_files> \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/ \ neutron-ovs.yaml \ -e /home/stack/templates/containers-prepare-parameter.yaml \Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.10. ML2/OVN으로 사용자 정의 역할 배포 링크 복사링크가 클립보드에 복사되었습니다!
기본 OSP 16.1 배포에서 ML2/OVN 구성 가능 서비스가 컨트롤러 노드에서 실행됩니다. 다음 예에 설명된 것과 같이 지원되는 사용자 지정 역할을 선택적으로 사용할 수 있습니다.
- Networker
- 전용 네트워크 노드에서 OVN 구성 가능 서비스를 실행합니다.
- SR-IOV로 Networker
- SR-IOV를 사용하여 전용 네트워크 관리자 노드에서 OVN 구성 가능 서비스를 실행합니다.
- SR-IOV가 있는 컨트롤러
- SR-IOV 가능 컨트롤러 노드에서 OVN 구성 가능 서비스를 실행합니다.
자체 사용자 지정 역할을 생성할 수도 있습니다.
제한
다음 제한 사항은 이 릴리스에서 ML2/OVN 및 기본 OVN DHCP를 사용한 SR-IOV 사용에 적용됩니다.
- 모든 외부 포트는 모든 포트에 HA 섀시 그룹이 하나뿐이므로 단일 게이트웨이 노드에서 예약됩니다.
- 외부 포트가 논리 라우터의 게이트웨이 포트와 함께 배치되지 않으므로 VLAN 테넌트 네트워크의 VF(direct) 포트의 North/south 라우팅은 SR-IOV에서 작동하지 않습니다. https://bugs.launchpad.net/neutron/+bug/1875852 참조하십시오.
사전 요구 사항
- 사용자 지정 역할을 배포하는 방법을 알고 있습니다. 자세한 내용은 Advanced Overcloud Customization 가이드의 Composable services and custom roles 를 참조하십시오.
절차
언더클라우드 호스트에
stack사용자로 로그인하고stackrc파일을 소싱합니다.source stackrc
$ source stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배포에 적합한 사용자 지정 역할 파일을 선택합니다. 필요에 따라 배포 명령에 직접 사용합니다. 또는 다른 사용자 지정 역할 파일을 결합하는 사용자 지정 역할 파일을 생성할 수 있습니다.
Expand Deployment Role 역할 파일 Networker 역할
Networker
Networker.yamlSR-IOV를 통한 Networker 역할
NetworkerSriov
NetworkerSriov.yamlSR-IOV를 사용한 공동 배치 제어 및 네트워크
ControllerSriov
ControllerSriov.yaml- [선택 사항] 이러한 사용자 지정 역할 파일 중 하나를 다른 사용자 지정 역할 파일과 결합하는 새 사용자 지정 역할 데이터 파일을 생성합니다. Advanced Overcloud Customization 가이드의 roles_data 파일 생성에 있는 지침을 따르십시오. 배포에 따라 적절한 소스 역할 파일을 포함합니다.
- [선택 사항] 역할의 특정 노드를 식별하기 위해 특정 하드웨어 플레이버를 생성하고 특정 노드에 플레이버를 할당할 수 있습니다. 그런 다음 환경 파일을 사용하여 역할의 플레이버를 정의하고 노드 수를 지정합니다. 자세한 내용은 Advanced Overcloud Customization 가이드의 새 역할 생성 예제를 참조하십시오.
배포에 적합한 환경 파일을 만듭니다.
Expand Deployment 샘플 환경 파일 Networker 역할
neutron-ovn-dvr-ha.yaml
SR-IOV를 통한 Networker 역할
ovn-sriov.yaml
배포에 적합한 다음 설정을 포함합니다.
Expand Deployment 설정 Networker 역할
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV를 통한 Networker 역할
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV를 사용한 공동 배치 제어 및 네트워크
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
오버클라우드를 배포합니다.
-e옵션을 사용하여 배포 명령에 환경 파일을 포함합니다. r 옵션을 사용하여 배포 명령에 사용자 지정 역할 데이터 파일을 포함합니다. 예:-r Networker.yaml또는-r mycustomrolesfile.yaml.
검증 단계 - OVN 배포
기본적으로
heat-admin인 오버클라우드 SSH 사용자로 컨트롤러 또는 네트워크 노드에 로그인합니다.예제
ssh heat-admin@controller-0
ssh heat-admin@controller-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow Controller 및 Networker 노드에서
ovn_metadata_agent가 실행 중인지 확인합니다.sudo podman ps | grep ovn_metadata
$ sudo podman ps | grep ovn_metadataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
a65125d9588d undercloud-0.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-metadata-agent-ovn:16.1_20200813.1 kolla_start 23 hours ago Up 21 hours ago ovn_metadata_agent
a65125d9588d undercloud-0.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-metadata-agent-ovn:16.1_20200813.1 kolla_start 23 hours ago Up 21 hours ago ovn_metadata_agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow OVN 서비스 또는 전용 네트워크 노드가 있는 컨트롤러 노드가 OVS의 게이트웨이로 구성되어 있는지 확인합니다.
sudo ovs-vsctl get Open_Vswitch . external_ids:ovn-cms-options
$ sudo ovs-vsctl get Open_Vswitch . external_ids:ovn-cms-optionsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
... enable-chassis-as-gw ...... enable-chassis-as-gw ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증 단계 - SR-IOV 배포
기본적으로
heat-admin인 오버클라우드 SSH 사용자로 컴퓨팅 노드에 로그인합니다.예제
ssh heat-admin@compute-0
ssh heat-admin@compute-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow neutron_sriov_agent가 컴퓨팅 노드에서 실행 중인지 확인합니다.sudo podman ps | grep neutron_sriov_agent
$ sudo podman ps | grep neutron_sriov_agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
f54cbbf4523a undercloud-0.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-sriov-agent:16.2_20200813.1 kolla_start 23 hours ago Up 21 hours ago neutron_sriov_agent
f54cbbf4523a undercloud-0.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-sriov-agent:16.2_20200813.1 kolla_start 23 hours ago Up 21 hours ago neutron_sriov_agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 네트워크 사용 SR-IOV NIC가 성공적으로 감지되었는지 확인합니다.
sudo podman exec -uroot galera-bundle-podman-0 mysql nova -e 'select hypervisor_hostname,pci_stats from compute_nodes;'
$ sudo podman exec -uroot galera-bundle-podman-0 mysql nova -e 'select hypervisor_hostname,pci_stats from compute_nodes;'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
computesriov-1.localdomain {... {"dev_type": "type-PF", "physical_network": "datacentre", "trusted": "true"}, "count": 1}, ... {"dev_type": "type-VF", "physical_network": "datacentre", "trusted": "true", "parent_ifname": "enp7s0f3"}, "count": 5}, ...} computesriov-0.localdomain {... {"dev_type": "type-PF", "physical_network": "datacentre", "trusted": "true"}, "count": 1}, ... {"dev_type": "type-VF", "physical_network": "datacentre", "trusted": "true", "parent_ifname": "enp7s0f3"}, "count": 5}, ...}computesriov-1.localdomain {... {"dev_type": "type-PF", "physical_network": "datacentre", "trusted": "true"}, "count": 1}, ... {"dev_type": "type-VF", "physical_network": "datacentre", "trusted": "true", "parent_ifname": "enp7s0f3"}, "count": 5}, ...} computesriov-0.localdomain {... {"dev_type": "type-PF", "physical_network": "datacentre", "trusted": "true"}, "count": 1}, ... {"dev_type": "type-VF", "physical_network": "datacentre", "trusted": "true", "parent_ifname": "enp7s0f3"}, "count": 5}, ...}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.11. ML2/OVN 및 기본 OVN DHCP가 있는 SR-IOV 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 역할을 배포하여 기본 OVN DHCP를 사용하여 ML2/OVN 배포에서 SR-IOV를 사용할 수 있습니다. 2.10절. “ML2/OVN으로 사용자 정의 역할 배포”을 참조하십시오.
제한
다음 제한 사항은 이 릴리스에서 ML2/OVN 및 기본 OVN DHCP를 사용한 SR-IOV 사용에 적용됩니다.
- 모든 외부 포트는 모든 포트에 HA 섀시 그룹이 하나뿐이므로 단일 게이트웨이 노드에서 예약됩니다.
- 외부 포트가 논리 라우터의 게이트웨이 포트와 함께 배치되지 않으므로 VLAN 테넌트 네트워크의 VF(direct) 포트의 North/south 라우팅은 SR-IOV에서 작동하지 않습니다. https://bugs.launchpad.net/neutron/+bug/1875852 참조하십시오.
3장. 프로젝트 네트워크 관리 링크 복사링크가 클립보드에 복사되었습니다!
프로젝트 네트워크는 클라우드 컴퓨팅의 네트워크 트래픽을 격리하는 데 도움이 됩니다. 프로젝트 네트워크를 생성하는 단계에는 네트워크 계획 및 생성, 서브넷 및 라우터 추가가 포함됩니다.
3.1. VLAN 계획 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform 배포를 계획할 때 개별 IP 주소를 할당하는 여러 서브넷으로 시작합니다. 여러 서브넷을 사용하는 경우 시스템 간에 트래픽을 VLAN으로 분리할 수 있습니다.
예를 들어 관리 또는 API 트래픽이 웹 트래픽을 제공하는 시스템과 동일한 네트워크에 있지 않은 것이 이상적입니다. VLAN 간 트래픽은 트래픽 흐름을 제어하는 방화벽을 구현할 수 있는 라우터를 통해 이동합니다.
배포 시 다양한 유형의 가상 네트워킹 리소스에 대한 트래픽 격리, 고가용성 및 IP 주소 사용률을 포함하는 전체 계획의 일부로 VLAN을 계획해야 합니다.
단일 네트워크의 최대 VLAN 수 또는 네트워크 노드에 대한 하나의 OVS 에이전트는 4094입니다. 최대 VLAN 수가 필요한 경우 여러 개의 프로바이더 네트워크(VXLAN 네트워크)와 네트워크당 하나씩 여러 네트워크 노드를 생성할 수 있습니다. 각 노드에는 최대 4094개의 사설 네트워크를 포함할 수 있습니다.
3.2. 네트워크 트래픽 유형 링크 복사링크가 클립보드에 복사되었습니다!
호스팅하려는 다양한 네트워크 트래픽 유형에 별도의 VLAN을 할당할 수 있습니다. 예를 들어 이러한 각 네트워크 유형에 대해 별도의 VLAN이 있을 수 있습니다. 외부 네트워크만 외부 물리적 네트워크로 라우팅할 수 있어야 합니다. 이번 릴리스에서 director는 DHCP 서비스를 제공합니다.
모든 OpenStack 배포에 대해 이 섹션의 격리된 VLAN이 모두 필요하지 않습니다. 예를 들어, 클라우드 사용자가 필요에 따라 임시 가상 네트워크를 생성하지 않으면 프로젝트 네트워크가 필요하지 않을 수 있습니다. 각 VM이 다른 물리적 시스템과 동일한 스위치에 직접 연결하려면 Compute 노드를 공급자 네트워크에 직접 연결하고 해당 프로바이더 네트워크를 직접 사용하도록 인스턴스를 구성합니다.
- 프로비저닝 네트워크 - 이 VLAN은 PXE 부팅을 통해 director를 사용하여 새 노드를 배포하는 전용입니다. OpenStack Orchestration(heat)은 Overcloud 베어 메탈 서버에 OpenStack을 설치합니다. 이러한 서버는 실제 네트워크에 연결하여 Undercloud 인프라에서 플랫폼 설치 이미지를 받습니다.
내부 API 네트워크 - OpenStack 서비스는 API 통신, RPC 메시지 및 데이터베이스 통신을 포함하여 내부 API 네트워크를 사용하여 통신할 수 있습니다. 또한 이 네트워크는 컨트롤러 노드 간 작동 메시지에도 사용됩니다. IP 주소 할당을 계획할 때 각 API 서비스에 고유한 IP 주소가 필요합니다. 특히 다음 각 서비스에 대한 IP 주소를 계획해야 합니다.
- vip-msg (ampq)
- vip-keystone-int
- av-glance-int
- vip-cinder-int
- vip-nova-int
- vip-neutron-int
- vip-horizon-int
- vip-heat-int
- vip-ceilometer-int
- vip-swift-int
- vip-keystone-pub
- vip-glance-pub
- vip-cinder-pub
- vip-nova-pub
- vip-neutron-pub
- vip-horizon-pub
- vip-heat-pub
- vip-ceilometer-pub
- vip-swift-pub
고가용성을 사용하는 경우 Pacemaker는 물리 노드 간에 VIP 주소를 이동합니다.
- 스토리지 - 블록 스토리지, NFS, iSCSI 및 기타 스토리지 서비스. 성능상의 이유로 이 네트워크를 분리하여 물리적 이더넷 링크를 분리합니다.
- 스토리지 관리 - OpenStack Object Storage(swift)는 이 네트워크를 사용하여 참여한 복제본 노드 간에 데이터 오브젝트를 동기화합니다. 프록시 서비스는 사용자 요청과 기본 스토리지 계층 간의 중간 인터페이스 역할을 합니다. 프록시는 들어오는 요청을 수신하고 요청된 데이터를 검색하는 데 필요한 복제본을 찾습니다. Ceph 백엔드를 사용하는 서비스는 Ceph와 직접 상호 작용하지 않고 프론트엔드 서비스를 사용하는 스토리지 관리 네트워크를 통해 연결됩니다. RBD 드라이버는 예외입니다. 이 트래픽은 Ceph에 직접 연결됩니다.
- 프로젝트 네트워크 - Neutron은 VLAN 분리(각 프로젝트 네트워크가 네트워크 VLAN인) 또는 VXLAN 또는 GRE를 사용하여 터널링을 사용하여 각 프로젝트에 자체 네트워크를 제공합니다. 각 프로젝트 네트워크 내에서 네트워크 트래픽이 격리됩니다. 각 프로젝트 네트워크에는 연결된 IP 서브넷이 있으며, 여러 프로젝트 네트워크에서 동일한 주소를 사용할 수 있습니다.
- external - 외부 네트워크는 공용 API 엔드포인트 및 대시보드(horizon)에 대한 연결을 호스팅합니다. SNAT에 이 네트워크를 사용할 수도 있습니다. 프로덕션 배포에서는 일반적으로 유동 IP 주소와 NAT에 별도의 네트워크를 사용하는 것이 일반적입니다.
- 프로바이더 네트워크 - 프로바이더 네트워크를 사용하여 인스턴스를 기존 네트워크 인프라에 연결합니다. 프로바이더 네트워크를 사용하면 플랫 네트워킹 또는 VLAN 태그를 사용하여 데이터 센터의 기존 실제 네트워크에 직접 매핑할 수 있습니다. 이렇게 하면 인스턴스에서 OpenStack Networking 인프라 외부에 있는 시스템과 동일한 계층-2 네트워크를 공유할 수 있습니다.
3.3. IP 주소 사용 링크 복사링크가 클립보드에 복사되었습니다!
다음 시스템은 할당된 범위의 IP 주소를 사용합니다.
- 물리 노드 - 각 물리적 NIC에는 하나의 IP 주소가 필요합니다. 물리적 NIC를 특정 기능에 전용으로 지정하는 것이 일반적입니다. 예를 들어, 관리 및 NFS 트래픽을 별도의 물리적 NIC에 할당하고, 중복을 위해 여러 NIC를 서로 다른 스위치에 연결하는 경우가 있습니다.
- 고가용성을 위한 VIP(가상 IP) - 컨트롤러 노드가 공유하는 각 네트워크에 대해 VIP를 1~3개에 할당할 계획입니다.
3.4. 가상 네트워킹 링크 복사링크가 클립보드에 복사되었습니다!
다음 가상 리소스는 OpenStack Networking에서 IP 주소를 사용합니다. 이러한 리소스는 클라우드 인프라로 로컬로 간주되며 외부 물리적 네트워크의 시스템에서 연결할 필요가 없습니다.
- 프로젝트 네트워크 - 각 프로젝트 네트워크에 IP 주소를 인스턴스에 할당하는 데 사용할 수 있는 서브넷이 필요합니다.
- 가상 라우터 - 서브넷에 연결하는 각 라우터 인터페이스에는 하나의 IP 주소가 필요합니다. DHCP를 사용하려면 각 라우터 인터페이스에 두 개의 IP 주소가 필요합니다.
- 인스턴스 - 각 인스턴스에는 인스턴스를 호스팅하는 프로젝트 서브넷의 주소가 필요합니다. 인그레스 트래픽이 필요한 경우 지정된 외부 네트워크에서 인스턴스에 유동 IP 주소를 할당해야 합니다.
- 관리 트래픽 - OpenStack 서비스 및 API 트래픽이 포함됩니다. 모든 서비스는 적은 수의 VIP를 공유합니다. API, RPC 및 데이터베이스 서비스는 내부 API VIP에서 통신합니다.
3.5. 네트워크 라우팅 추가 링크 복사링크가 클립보드에 복사되었습니다!
새 네트워크에서 트래픽 라우팅을 허용하려면 서브넷을 기존 가상 라우터에 인터페이스로 추가해야 합니다.
- 대시보드에서 프로젝트 > 네트워크 > 라우터 를 선택합니다.
Routers (라우터) 목록에서 가상 라우터 이름을 선택하고 Add Interface(인터페이스 추가 )를 클릭합니다.
Subnet(서브넷) 목록에서 새 서브넷의 이름을 선택합니다. 이 필드의 인터페이스에 대한 IP 주소를 선택적으로 지정할 수 있습니다.
Add Interface (인터페이스 추가)를 클릭합니다.
이제 네트워크의 인스턴스가 서브넷 외부의 시스템과 통신할 수 있습니다.
3.6. 네트워크 계획 예 링크 복사링크가 클립보드에 복사되었습니다!
이 예에서는 각 서브넷이 다양한 IP 주소가 할당되는 여러 서브넷을 수용하는 여러 네트워크를 보여줍니다.
| 서브넷 이름 | 주소 범위 | 주소 수 | 서브넷 마스크 |
|---|---|---|---|
| 프로비저닝 네트워크 | 192.168.100.1 - 192.168.100.250 | 250 | 255.255.255.0 |
| 내부 API 네트워크 | 172.16.1.10 - 172.16.1.250 | 241 | 255.255.255.0 |
| 스토리지 | 172.16.2.10 - 172.16.2.250 | 241 | 255.255.255.0 |
| 스토리지 관리 | 172.16.3.10 - 172.16.3.250 | 241 | 255.255.255.0 |
| 테넌트 네트워크(GRE/VXLAN) | 172.16.4.10 - 172.16.4.250 | 241 | 255.255.255.0 |
| 외부 네트워크(유동 IP 포함) | 10.1.2.10 - 10.1.3.222 | 469 | 255.255.254.0 |
| 공급자 네트워크(인프라) | 10.10.3.10 - 10.10.3.250 | 241 | 255.255.252.0 |
3.7. 네트워크 생성 링크 복사링크가 클립보드에 복사되었습니다!
인스턴스가 서로 통신하고 DHCP를 사용하여 IP 주소를 수신할 수 있도록 네트워크를 만듭니다. 외부 네트워크 연결에 대한 자세한 내용은 물리적 네트워크 브리징을 참조하십시오.
네트워크를 만들 때 네트워크에서 여러 서브넷을 호스팅할 수 있다는 것을 알아야 합니다. 이 기능은 동일한 네트워크에서 서로 다른 시스템을 호스팅하고 시스템 간의 격리 측정값을 선호하는 경우에 유용합니다. 예를 들어 한 서브넷에 웹 서버 트래픽만 있는 반면 데이터베이스 트래픽은 다른 서브넷을 트래버스하도록 지정할 수 있습니다. 서브넷은 서로 격리되며 다른 서브넷과 통신하려는 인스턴스에는 라우터에서 보내는 트래픽이 있어야 합니다. 라우팅이 필요하지 않도록 동일한 서브넷에 많은 트래픽이 필요한 시스템을 배치하고 후속 대기 시간과 부하를 피할 수 있습니다.
- 대시보드에서 프로젝트 > 네트워크 > 네트워크를 선택합니다.
+Create Network (+네트워크 만들기)를 클릭하고 다음 값을 지정합니다.
Expand 필드 설명 네트워크 이름
네트워크에서 수행할 역할에 따라 설명적인 이름입니다. 네트워크를 외부 VLAN과 통합하는 경우 VLAN ID 번호를 이름에 추가하는 것이 좋습니다. 예를 들어,
webservers_122에서 이 서브넷에서 HTTP 웹 서버를 호스팅하는 경우 VLAN 태그가122입니다. 또는 네트워크 트래픽을 비공개로 유지하고 네트워크를 외부 네트워크와 통합하지 않으려는경우 internal전용을 사용할 수 있습니다.관리 상태
네트워크를 즉시 사용할 수 있는지 여부를 제어합니다. 이 필드를 사용하여 논리적으로 존재하지만 비활성 상태인 Down 상태의 네트워크를 생성합니다. 이 기능은 네트워크를 즉시 프로덕션에 입력하려는 경우 유용합니다.
서브넷 만들기
서브넷을 만들지 여부를 결정합니다. 예를 들어 이 네트워크를 네트워크 연결 없이 자리 표시자로 유지하려는 경우 서브넷을 생성하지 않을 수 있습니다.
Next 단추를 클릭하고 Subnet( 서브넷) 탭에서 다음 값을 지정합니다.
Expand 필드 설명 서브넷 이름
서브넷의 설명이 포함된 이름을 입력합니다.
네트워크 주소
IP 주소 범위와 서브넷 마스크가 포함된 CIDR 형식으로 주소를 하나의 값으로 입력합니다. 주소를 확인하려면 서브넷 마스크에 마스킹된 비트 수를 계산하고 해당 값을 IP 주소 범위에 추가합니다. 예를 들어 서브넷 마스크 255.255.255.0에는 24개의 마스킹된 비트가 있습니다. IPv4 주소 범위 192.168.122.0으로 이 마스크를 사용하려면 주소 192.168.122.0/24를 지정합니다.
IP 버전
유효한 유형이 IPv4 또는 IPv6인 인터넷 프로토콜 버전을 지정합니다. Network Address(네트워크 주소) 필드의 IP 주소 범위는 선택한 모든 버전과 일치해야 합니다.
게이트웨이 IP
기본 게이트웨이에 대한 라우터 인터페이스의 IP 주소입니다. 이 주소는 외부 위치로 향하는 트래픽을 라우팅하기 위한 다음 홉이며, 네트워크 주소 필드에 지정하는 범위 내에 있어야 합니다. 예를 들어 CIDR 네트워크 주소가 192.168.122.0/24인 경우 기본 게이트웨이는 192.168.122.1일 수 있습니다.
게이트웨이 비활성화
는 전달을 비활성화하고 서브넷을 격리합니다.
다음을 클릭하여 DHCP 옵션을 지정합니다.
- DHCP 활성화 - 이 서브넷에 DHCP 서비스를 활성화합니다. DHCP를 사용하여 인스턴스에 대한 IP 설정을 자동으로 배포할 수 있습니다.
IPv6 주소 - 구성 모드. IPv6 네트워크를 생성하는 경우 IPv6 주소 및 추가 정보를 할당하는 방법을 지정해야 합니다.
- 지정된 옵션 없음 - IP 주소를 수동으로 설정하거나 주소 할당에 OpenStack을 인식하지 않는 방법을 사용하려면 이 옵션을 선택합니다.
- SLAAC(상태 비저장 주소 자동 구성) - 인스턴스에서 OpenStack Networking 라우터에서 보낸 R(라우터 알림) 메시지를 기반으로 IPv6 주소를 생성합니다. 이 구성을 사용하여 ra_mode가 slaac로 설정된 OpenStack Networking 서브넷을 만들고 address_mode를 slaac로 설정합니다.
- DHCPv6 상태 저장 - 인스턴스에서 IPv6 주소 및 OpenStack Networking DHCPv6 서비스에서 추가 옵션(예: DNS)을 수신합니다. 이 구성을 사용하여 ra_mode가 dhcpv6-stateful로 설정되어 있고 address_mode가 dhcpv6-stateful로 설정된 서브넷을 생성합니다.
- DHCPv6 상태 비저장 - 인스턴스에서 OpenStack Networking 라우터에서 전송된 라우터 알림(RA) 메시지를 기반으로 IPv6 주소를 생성합니다. 추가 옵션(예: DNS)은 OpenStack Networking DHCPv6 서비스에서 할당됩니다. 이 구성을 사용하여 ra_mode가 dhcpv6-stateless로 설정된 서브넷을 만들고 address_mode를 dhcpv6-stateless로 설정합니다.
- 할당 풀 - DHCP가 할당할 IP 주소 범위입니다. 예를 들어 192.168.22.100,192.168.22.150 값은 해당 범위의 모든 주소를 할당에 사용할 수 있는 것으로 간주합니다.
DNS 이름 서버 - 네트워크에서 사용할 수 있는 DNS 서버의 IP 주소입니다. DHCP는 이름 확인을 위해 이러한 주소를 인스턴스에 배포합니다.
중요DNS와 같은 전략적 서비스의 경우 클라우드에 호스팅하지 않는 것이 좋습니다. 예를 들어, 클라우드 호스트 DNS와 클라우드가 작동할 수 없게 되면 DNS를 사용할 수 없으며 클라우드 구성 요소는 서로 조회를 수행할 수 없습니다.
- 호스트 경로 - 정적 호스트 경로. 먼저 CIDR 형식의 대상 네트워크를 지정한 다음 라우팅에 사용할 다음 홉을 지정합니다(예: 192.168.23.0/24, 10.1.31.1). 정적 경로를 인스턴스에 배포해야 하는 경우 이 값을 제공합니다.
생성을 클릭합니다.
Networks(네트워크 ) 탭에서 전체 네트워크를 볼 수 있습니다. 필요에 따라 Edit(편집 )를 클릭하여 옵션을 변경할 수도 있습니다. 인스턴스를 만들 때 서브넷을 사용하도록 이제 구성할 수 있으며 지정된 DHCP 옵션이 제공됩니다.
3.8. 서브넷 작업 링크 복사링크가 클립보드에 복사되었습니다!
서브넷을 사용하여 인스턴스에 네트워크 연결 권한을 부여합니다. 각 인스턴스는 인스턴스 생성 프로세스의 일부로 서브넷에 할당되므로 연결 요구 사항을 가장 잘 수용할 수 있도록 인스턴스를 적절하게 배치하는 것이 중요합니다.
기존 네트워크에서만 서브넷을 만들 수 있습니다. OpenStack Networking의 프로젝트 네트워크는 여러 서브넷을 호스팅할 수 있습니다. 이 기능은 동일한 네트워크에서 서로 다른 시스템을 호스팅하고 시스템 간의 격리 측정값을 선호하는 경우에 유용합니다.
예를 들어 하나의 서브넷에 웹 서버 트래픽만 있는 반면 데이터베이스 트래픽은 다른 서브넷을 트래버스하도록 지정할 수 있습니다.
서브넷은 서로 격리되며 다른 서브넷과 통신하려는 인스턴스에는 라우터에서 보내는 트래픽이 있어야 합니다. 따라서 서로 많은 트래픽이 필요한 동일한 서브넷에서 시스템을 그룹화하여 네트워크 대기 시간을 줄이고 부하를 줄일 수 있습니다.
3.9. 서브넷 생성 링크 복사링크가 클립보드에 복사되었습니다!
서브넷을 만들려면 다음 단계를 따르십시오.
- 대시보드에서 Project > Network > Networks(네트워크 > 네트워크 ) 를 선택하고 Networks( 네트워크 ) 보기에서 네트워크 이름을 클릭합니다.
Create Subnet(서브넷 만들기) 을 클릭하고 다음 값을 지정합니다.
Expand 필드 설명 서브넷 이름
설명이 포함된 서브넷 이름.
네트워크 주소
IP 주소 범위와 서브넷 마스크를 하나의 값으로 포함하는 CIDR 형식의 주소입니다. CIDR 주소를 확인하려면 서브넷 마스크에 마스킹된 비트 수를 계산하고 해당 값을 IP 주소 범위에 추가합니다. 예를 들어 서브넷 마스크 255.255.255.0에는 24개의 마스킹된 비트가 있습니다. IPv4 주소 범위 192.168.122.0으로 이 마스크를 사용하려면 주소 192.168.122.0/24를 지정합니다.
IP 버전
인터넷 프로토콜 버전입니다. 여기서 유효한 유형은 IPv4 또는 IPv6입니다. Network Address(네트워크 주소) 필드의 IP 주소 범위는 선택한 모든 프로토콜 버전과 일치해야 합니다.
게이트웨이 IP
기본 게이트웨이에 대한 라우터 인터페이스의 IP 주소입니다. 이 주소는 외부 위치로 향하는 트래픽을 라우팅하기 위한 다음 홉이며, 네트워크 주소 필드에 지정하는 범위 내에 있어야 합니다. 예를 들어 CIDR 네트워크 주소가 192.168.122.0/24인 경우 기본 게이트웨이는 192.168.122.1일 수 있습니다.
게이트웨이 비활성화
는 전달을 비활성화하고 서브넷을 격리합니다.
다음을 클릭하여 DHCP 옵션을 지정합니다.
- DHCP 활성화 - 이 서브넷에 DHCP 서비스를 활성화합니다. DHCP를 사용하여 인스턴스에 대한 IP 설정을 자동으로 배포할 수 있습니다.
IPv6 주소 - 구성 모드. IPv6 네트워크를 생성하는 경우 IPv6 주소 및 추가 정보를 할당하는 방법을 지정해야 합니다.
- 지정된 옵션 없음 - IP 주소를 수동으로 설정하거나 주소 할당에 OpenStack을 인식하지 않는 방법을 사용하려면 이 옵션을 선택합니다.
- SLAAC(상태 비저장 주소 자동 구성) - 인스턴스에서 OpenStack Networking 라우터에서 보낸 R(라우터 알림) 메시지를 기반으로 IPv6 주소를 생성합니다. 이 구성을 사용하여 ra_mode가 slaac로 설정된 OpenStack Networking 서브넷을 만들고 address_mode를 slaac로 설정합니다.
- DHCPv6 상태 저장 - 인스턴스에서 IPv6 주소 및 OpenStack Networking DHCPv6 서비스에서 추가 옵션(예: DNS)을 수신합니다. 이 구성을 사용하여 ra_mode가 dhcpv6-stateful로 설정되어 있고 address_mode가 dhcpv6-stateful로 설정된 서브넷을 생성합니다.
- DHCPv6 상태 비저장 - 인스턴스에서 OpenStack Networking 라우터에서 전송된 라우터 알림(RA) 메시지를 기반으로 IPv6 주소를 생성합니다. 추가 옵션(예: DNS)은 OpenStack Networking DHCPv6 서비스에서 할당됩니다. 이 구성을 사용하여 ra_mode가 dhcpv6-stateless로 설정된 서브넷을 만들고 address_mode를 dhcpv6-stateless로 설정합니다.
- 할당 풀 - DHCP가 할당할 IP 주소 범위입니다. 예를 들어 192.168.22.100,192.168.22.150 값은 해당 범위의 모든 주소를 할당에 사용할 수 있는 것으로 간주합니다.
- DNS 이름 서버 - 네트워크에서 사용할 수 있는 DNS 서버의 IP 주소입니다. DHCP는 이름 확인을 위해 이러한 주소를 인스턴스에 배포합니다.
- 호스트 경로 - 정적 호스트 경로. 먼저 CIDR 형식의 대상 네트워크를 지정한 다음 라우팅에 사용할 다음 홉을 지정합니다(예: 192.168.23.0/24, 10.1.31.1). 정적 경로를 인스턴스에 배포해야 하는 경우 이 값을 제공합니다.
생성을 클릭합니다.
Subnets(서브넷) 목록에서 서브넷을 볼 수 있습니다. 필요에 따라 Edit(편집 )를 클릭하여 옵션을 변경할 수도 있습니다. 인스턴스를 만들 때 서브넷을 사용하도록 이제 구성할 수 있으며 지정된 DHCP 옵션이 제공됩니다.
3.10. 라우터 추가 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack Networking은 SDN 기반 가상 라우터를 사용하여 라우팅 서비스를 제공합니다. 라우터는 인스턴스가 실제 네트워크의 서브넷을 포함하여 외부 서브넷과 통신하기 위해 필요합니다. 라우터 및 서브넷은 인터페이스를 사용하여 연결되며, 각 서브넷에는 자체 인터페이스가 필요한 라우터가 있습니다.
라우터의 기본 게이트웨이는 라우터에서 수신한 모든 트래픽의 다음 홉을 정의합니다. 해당 네트워크는 일반적으로 가상 브리지를 사용하여 트래픽을 외부 물리적 네트워크로 라우팅하도록 구성됩니다.
라우터를 생성하려면 다음 단계를 완료합니다.
- 대시보드에서 프로젝트 > 네트워크 > 라우터를 선택하고 Create Router(라우터 만들기 )를 클릭합니다.
- 새 라우터의 설명이 포함된 이름을 입력하고 Create router(라우터 만들기 )를 클릭합니다.
- Routers (라우터) 목록에서 새 라우터의 항목 옆에 있는 Set Gateway (게이트웨이 설정)를 클릭합니다.
- External Network (외부 네트워크) 목록에서 외부 위치로 향하는 트래픽을 수신하려는 네트워크를 지정합니다.
Set Gateway (게이트웨이 설정)를 클릭합니다.
라우터를 추가한 후 이 라우터를 사용하여 트래픽을 보내도록 만든 서브넷을 구성해야 합니다. 서브넷과 라우터 간에 인터페이스를 만들어 이 작업을 수행합니다.
서브넷의 기본 경로를 덮어쓸 수 없습니다. 서브넷의 기본 경로가 제거되면 L3 에이전트에서 라우터 네임스페이스의 해당 경로도 자동으로 제거하며 네트워크 트래픽이 연결된 서브넷으로 또는 연결된 서브넷에서 이동할 수 없습니다. 기존 라우터 네임스페이스 경로가 제거된 경우 이 문제를 해결하려면 다음 단계를 수행하십시오.
- 서브넷의 모든 유동 IP의 연결을 끊습니다.
- 서브넷에서 라우터를 분리합니다.
- 라우터를 서브넷에 다시 연결합니다.
- 모든 유동 IP를 다시 연결합니다.
3.11. 모든 리소스 제거 및 프로젝트 삭제 링크 복사링크가 클립보드에 복사되었습니다!
openstack project purge 명령을 사용하여 특정 프로젝트에 속하는 모든 리소스와 프로젝트 삭제도 삭제합니다.
예를 들어 test-project 프로젝트의 리소스를 제거한 다음 프로젝트를 삭제하려면 다음 명령을 실행합니다.
3.12. 라우터 삭제 링크 복사링크가 클립보드에 복사되었습니다!
연결된 인터페이스가 없는 경우 라우터를 삭제할 수 있습니다.
인터페이스를 제거하고 라우터를 삭제하려면 다음 단계를 완료합니다.
- 대시보드에서 프로젝트 > 네트워크 > 라우터 를 선택하고 삭제하려는 라우터 이름을 클릭합니다.
- 내부 인터페이스 유형의 인터페이스를 선택하고 Delete Interfaces(인터페이스 삭제 )를 클릭합니다.
- Routers(라우터) 목록에서 대상 라우터를 선택하고 Delete Routers(라우터 삭제 )를 클릭합니다.
3.13. 서브넷 삭제 링크 복사링크가 클립보드에 복사되었습니다!
서브넷이 더 이상 사용되지 않는 경우 삭제할 수 있습니다. 그러나 서브넷을 사용하도록 인스턴스가 여전히 구성된 경우 삭제 시도가 실패하고 대시보드에 오류 메시지가 표시됩니다.
네트워크에서 특정 서브넷을 삭제하려면 다음 단계를 완료합니다.
- 대시보드에서 프로젝트 > 네트워크 > 네트워크를 선택합니다.
- 네트워크 이름을 클릭합니다.
- 대상 서브넷을 선택하고 Delete Subnets(서브넷 삭제 )를 클릭합니다.
3.14. 네트워크 삭제 링크 복사링크가 클립보드에 복사되었습니다!
하우스키핑 또는 폐기 프로세스의 일부로 이전에 만든 네트워크를 삭제해야 하는 경우가 있습니다. 먼저 네트워크를 성공적으로 삭제하기 전에 네트워크가 아직 사용 중인 인터페이스를 제거하거나 분리해야 합니다.
프로젝트의 네트워크를 종속 인터페이스와 함께 삭제하려면 다음 단계를 완료합니다.
대시보드에서 프로젝트 > 네트워크 > 네트워크를 선택합니다.
대상 네트워크 서브넷과 연결된 모든 라우터 인터페이스를 제거합니다.
인터페이스를 제거하려면 Networks (네트워크) 목록에서 대상 네트워크를 클릭하고 ID 필드를 확인하여 삭제할 네트워크의 ID 번호를 찾습니다. 네트워크와 연결된 모든 서브넷은 네트워크 ID 필드에서 이 값을 공유합니다.
Project(프로젝트) > Network > Routers (네트워크 > 라우터) 로 이동하여 Routers (라우터) 목록에서 가상 라우터 이름을 클릭하고 삭제하려는 서브넷에 연결된 인터페이스를 찾습니다.
게이트웨이 IP로 제공되는 IP 주소로 이 서브넷을 다른 서브넷과 구분할 수 있습니다. 인터페이스의 네트워크 ID가 이전 단계에서 기록한 ID와 일치하는지 확인하여 차이점을 추가로 확인할 수 있습니다.
- 삭제할 인터페이스에 대해 Delete Interface (인터페이스 삭제) 단추를 클릭합니다.
- 프로젝트 > 네트워크 > 네트워크를 선택하고 네트워크 이름을 클릭합니다.
삭제할 서브넷의 Delete Subnet(서브넷 삭제) 단추를 클릭합니다.
참고이때 서브넷을 제거할 수 없는 경우 인스턴스에서 서브넷을 아직 사용하지 않는지 확인합니다.
- 프로젝트 > 네트워크 > 네트워크를 선택하고 삭제하려는 네트워크를 선택합니다.
- Delete Networks(네트워크 삭제)를 클릭합니다.
4장. VM 인스턴스를 물리적 네트워크에 연결 링크 복사링크가 클립보드에 복사되었습니다!
플랫 및 VLAN 공급자 네트워크를 사용하여 VM 인스턴스를 외부 네트워크에 직접 연결할 수 있습니다.
4.1. OpenStack Networking 토폴로지 개요 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack Networking(neutron)에는 여러 노드 유형에 분산된 두 가지 서비스 범주가 있습니다.
- Neutron 서버 - 이 서비스는 OpenStack Networking API 서버와 상호 작용하는 최종 사용자 및 서비스에 API를 제공하는 OpenStack Networking API 서버를 실행합니다. 또한 이 서버는 기본 데이터베이스와 통합되어 프로젝트 네트워크, 라우터 및 로드 밸런서 세부 정보를 저장하고 검색합니다.
Neutron 에이전트 - OpenStack 네트워킹의 네트워크 기능을 수행하는 서비스입니다.
-
neutron-dhcp-agent- 프로젝트 사설 네트워크의 DHCP IP 주소 지정을 관리합니다. -
neutron-l3-agent- 프로젝트 사설 네트워크, 외부 네트워크 등의 계층 3 라우팅을 수행합니다.
-
-
계산 노드 - 이 노드는 가상 머신(인스턴스라고도 함)을 실행하는 하이퍼바이저를 호스팅합니다. 인스턴스에 외부 연결을 제공하려면 컴퓨팅 노드를 네트워크에 직접 연결해야 합니다. 일반적으로 이 노드는
neutron-openvswitch-agent와 같이 l2 에이전트가 실행되는 위치입니다.
4.2. OpenStack Networking 서비스 배치 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack Networking 서비스는 동일한 물리적 서버에서 또는 해당 역할에 따라 이름이 지정된 별도의 전용 서버에서 함께 실행할 수 있습니다.
- Controller node(컨트롤러 노드 ) - API 서비스를 실행하는 서버입니다.
- 네트워크 노드 - OpenStack Networking 에이전트를 실행하는 서버입니다.
- 계산 노드 - 인스턴스를 호스팅하는 하이퍼바이저 서버입니다.
이 장의 단계는 이러한 세 가지 노드 유형을 포함하는 환경에 적용됩니다. 배포에 동일한 물리 노드에 컨트롤러 및 네트워크 노드 역할이 모두 있는 경우 해당 서버의 두 섹션에서 단계를 수행해야 합니다. 세 개의 노드 모두 컨트롤러 노드와 HA를 사용하여 네트워크 노드 서비스를 실행할 수 있는 HA(고가용성) 환경에도 적용됩니다. 결과적으로 세 노드 모두에서 컨트롤러 및 네트워크 노드에 적용되는 섹션의 단계를 완료해야 합니다.
4.3. 플랫 공급자 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
플랫 프로바이더 네트워크를 사용하여 인스턴스를 외부 네트워크에 직접 연결할 수 있습니다. 이 기능은 물리적 네트워크와 물리적 인터페이스가 여러 개 있고 각 컴퓨팅 및 네트워크 노드를 해당 외부 네트워크에 연결하려는 경우에 유용합니다.
사전 요구 사항
물리적 네트워크가 여러 개 있습니다.
이 예에서는 각각
physnet1 및라는 물리적 네트워크를 사용합니다.physnet2개별 물리적 인터페이스가 있습니다.
이 예에서는 각각 별도의 물리적 인터페이스인
eth0및eth1을 사용합니다.
절차
Undercloud 호스트에서 stack 사용자로 로그인한 사용자 지정 YAML 환경 파일을 만듭니다.
예제
vi /home/stack/templates/my-modules-environment.yaml
$ vi /home/stack/templates/my-modules-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보Red Hat OpenStack Platform Orchestration 서비스(heat)는 templates 라는 플랜 세트를 사용하여 환경을 설치하고 구성합니다. 오케스트레이션 템플릿에 대한 사용자 지정을 제공하는 특수한 유형의 템플릿인 사용자 지정 환경 파일을 사용하여 오버클라우드의 부분을 사용자 지정할 수 있습니다.
parameter_defaults아래의 YAML 환경 파일에서NeutronBridgeMappings를 사용하여 외부 네트워크에 액세스하는 데 사용되는 OVS 브리지를 지정합니다.예제
parameter_defaults: NeutronBridgeMappings: 'physnet1:br-net1,physnet2:br-net2'
parameter_defaults: NeutronBridgeMappings: 'physnet1:br-net1,physnet2:br-net2'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 컨트롤러 및 컴퓨팅 노드에 대한 사용자 정의 NIC 구성 템플릿에서 인터페이스가 연결된 브릿지를 구성합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack overcloud deploy명령을 실행하고 수정된 사용자 지정 NIC 템플릿 및 새 환경 파일을 포함하여 템플릿과 환경 파일을 포함합니다.중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하기 때문에 환경 파일의 순서가 중요합니다.
예제
openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yaml
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
외부 네트워크(
public1)를 플랫 네트워크로 생성하고 구성된 물리적 네트워크(physnet1)와 연결합니다.다른 사용자가 외부 네트워크에 직접 연결하는 VM 인스턴스를 생성하도록 공유 네트워크(
--share사용)로 구성합니다.예제
openstack network create --share --provider-network-type flat --provider-physical-network physnet1 --external public01
# openstack network create --share --provider-network-type flat --provider-physical-network physnet1 --external public01Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack subnet create 명령을 사용하여 서브넷(.public_subnet)을 생성합니다예제
openstack subnet create --no-dhcp --allocation-pool start=192.168.100.20,end=192.168.100.100 --gateway 192.168.100.1 --network public01 public_subnet
# openstack subnet create --no-dhcp --allocation-pool start=192.168.100.20,end=192.168.100.100 --gateway 192.168.100.1 --network public01 public_subnetCopy to Clipboard Copied! Toggle word wrap Toggle overflow VM 인스턴스를 생성하고 새로 생성한 외부 네트워크에 직접 연결합니다.
예제
openstack server create --image rhel --flavor my_flavor --network public01 my_instance
$ openstack server create --image rhel --flavor my_flavor --network public01 my_instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. 플랫 프로바이더 네트워크 패킷 흐름은 어떻게 작동합니까? 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 플랫 프로바이더 네트워크 구성이 있는 인스턴스와의 트래픽 흐름 방법을 자세히 설명합니다.
플랫 공급자 네트워크에서 나가는 트래픽 흐름
다음 다이어그램에서는 인스턴스를 벗어나고 외부 네트워크에 직접 도착하는 트래픽의 패킷 흐름을 설명합니다. br-ex 외부 브리지를 구성한 후 실제 인터페이스를 브리지에 추가하고 Compute 노드에 인스턴스를 생성합니다. 결과적으로 생성된 인터페이스 및 브리지 구성은 다음 다이어그램의 구성과 비슷합니다( iptables_hybrid 방화벽 드라이버를 사용하는 경우).
-
패킷은 인스턴스의
eth0인터페이스를 종료하고 linux bridgeqbr-xx에 도달합니다. -
bridge
qbr-xx는 veth 쌍qvb에 연결됩니다. 이는 브리지가 보안 그룹에서 정의한 인바운드/아웃바운드 방화벽 규칙을 적용하는 데 사용되기 때문입니다.-xx <-> qvo-xxx를 사용하여 br-int -
qvb-xx인터페이스는qbr-xxLinux 브리지에 연결되고qvoxx는br-intOpen vSwitch(OVS) 브리지에 연결됩니다.
'qbr-xx'Linux 브리지의 구성 예:
brctl show qbr269d4d73-e7 8000.061943266ebb no qvb269d4d73-e7 tap269d4d73-e7
# brctl show
qbr269d4d73-e7 8000.061943266ebb no qvb269d4d73-e7
tap269d4d73-e7
br-int의 구성 :qvo- xx
포트 qvo-xx 는 flat 프로바이더 네트워크와 연결된 내부 VLAN 태그로 태그가 지정됩니다. 이 예에서 VLAN 태그는 5 입니다. 패킷이 qvo-xx 에 도달하면 VLAN 태그가 패킷 헤더에 추가됩니다.
그런 다음 patch-peer int OVS 브리지로 이동합니다.
-br-ex <-> phy-br-ex를 사용하여 패킷이 br -ex
br-int 의 patch-peer 구성 예 :
br-ex 의 patch-peer 구성 예 :
이 패킷이 br 에 도달하면 -ex의 phy-br -exbr-ex 내부의 OVS 흐름이 VLAN 태그를 제거하고 실제 인터페이스로 전달합니다.
다음 예에서 출력에는 phy-br-ex 의 포트 번호가 2 가 표시되어 있습니다.
다음 출력은 VLAN 태그가 5 (dl_vlan=5)인 phy-br-ex (in_port=2)에 도착하는 모든 패킷을 보여줍니다. 또한 br-ex의 OVS 흐름은 VLAN 태그를 제거하고 패킷을 실제 인터페이스로 전달합니다.
ovs-ofctl dump-flows br-ex NXST_FLOW reply (xid=0x4): cookie=0x0, duration=4703.491s, table=0, n_packets=3620, n_bytes=333744, idle_age=0, priority=1 actions=NORMAL cookie=0x0, duration=3890.038s, table=0, n_packets=13, n_bytes=1714, idle_age=3764, priority=4,in_port=2,dl_vlan=5 actions=strip_vlan,NORMAL cookie=0x0, duration=4702.644s, table=0, n_packets=10650, n_bytes=447632, idle_age=0, priority=2,in_port=2 actions=drop
# ovs-ofctl dump-flows br-ex
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=4703.491s, table=0, n_packets=3620, n_bytes=333744, idle_age=0, priority=1 actions=NORMAL
cookie=0x0, duration=3890.038s, table=0, n_packets=13, n_bytes=1714, idle_age=3764, priority=4,in_port=2,dl_vlan=5 actions=strip_vlan,NORMAL
cookie=0x0, duration=4702.644s, table=0, n_packets=10650, n_bytes=447632, idle_age=0, priority=2,in_port=2 actions=drop
실제 인터페이스가 또 다른 VLAN 태그 지정된 인터페이스인 경우 실제 인터페이스는 패킷에 태그를 추가합니다.
플랫 공급자 네트워크에서 들어오는 트래픽 흐름
이 섹션에는 인스턴스의 인터페이스에 도달할 때까지 외부 네트워크에서 들어오는 트래픽 흐름에 대한 정보가 포함되어 있습니다.
-
들어오는 트래픽은 물리적 노드의
eth1에 도달합니다. -
패킷은
br-ex브리지에 전달됩니다. -
패킷은 patch-peer
phy-br-ex <--> int-br-ex를 통해 br-int로 이동합니다.
다음 예에서 int-br-ex 는 포트 번호 15 를 사용합니다. 15(int-br-ex) 가 포함된 항목을 참조하십시오.
br-int에서 트래픽 흐름 관찰
패킷이
int-br-ex에 도달하면br-int브리지 내의 OVS 흐름 규칙이 패킷을 수정하여 내부 VLAN 태그5를 추가합니다.actions=mod_vlan_vid:5에 대한 항목을 참조하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
두 번째 규칙은 VLAN 태그(vlan_tci=0x0000)가 없는 int-br-ex(in_port=15)에 도착하는 패킷을 관리합니다. 이 규칙은 VLAN 태그 5를 패킷(
actions=mod_vlan_vid:5,NORMAL)에 추가하고qvoxxx로 전달합니다. -
qvoXXX는 VLAN 태그를 제거한 후 패킷을 수락하고qvbxx로 전달합니다. - 그런 다음 패킷이 인스턴스에 도달합니다.
VLAN 태그 5는 플랫 프로바이더 네트워크가 있는 테스트 컴퓨팅 노드에서 사용된 VLAN의 예입니다. 이 값은 neutron-openvswitch-agent 에서 자동으로 할당했습니다. 이 값은 자체 플랫 프로바이더 네트워크에 따라 다를 수 있으며, 별도의 두 컴퓨팅 노드의 동일한 네트워크에 따라 다를 수 있습니다.
4.5. 플랫 공급자 네트워크에서 인스턴스 물리적 네트워크 연결 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
"Flat provider 네트워크 패킷 흐름은 어떻게 작동합니까?"에 제공된 출력은 모든 문제가 발생하는 경우 플랫 프로바이더 네트워크 문제 해결에 필요한 충분한 디버깅 정보를 제공합니다. 다음 단계에는 문제 해결 프로세스에 대한 추가 정보가 포함되어 있습니다.
절차
bridge_mappings를 검토합니다.사용하는 물리적 네트워크 이름이
bridge_mapping구성의 내용과 일치하는지 확인합니다.예제
이 예에서 물리적 네트워크 이름은
physnet1입니다.openstack network show provider-flat
$ openstack network show provider-flatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
... | provider:physical_network | physnet1 ...
... | provider:physical_network | physnet1 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
이 예에서
bridge_mapping구성의 콘텐츠도physnet1입니다.grep bridge_mapping /etc/neutron/plugins/ml2/openvswitch_agent.ini
$ grep bridge_mapping /etc/neutron/plugins/ml2/openvswitch_agent.iniCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
bridge_mappings = physnet1:br-ex
bridge_mappings = physnet1:br-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow 네트워크 구성을 검토합니다.
네트워크가
외부로생성되고flat유형을 사용하는지 확인합니다.예제
이 예에서는
provider-flat네트워크에 대한 세부 정보를 쿼리합니다.openstack network show provider-flat
$ openstack network show provider-flatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
... | provider:network_type | flat | | router:external | True | ...
... | provider:network_type | flat | | router:external | True | ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow patch-peer를 검토합니다.
br-int및br-ex가 patch-peerint-br-ex <--> phy-br-ex를 사용하여 연결되어 있는지 확인합니다.ovs-vsctl show
$ ovs-vsctl showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
br-ex에서 patch-peer의 구성:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 연결은
bridge_mapping이서비스를 다시 시작할 때 생성됩니다./etc/neutron/plugins/ml2/openvswitch-agentopenvswitch_agent.ini에 올바르게 구성된 경우 neutron-서비스를 다시 시작한 후 연결이 생성되지 않은 경우
bridge_mapping설정을 다시 확인합니다.네트워크 흐름을 검토합니다.
ovs-ofctl dump-flows br-ex및ovs-ofctl dump-flows br-ints br-ofctl dump-flows br-int를 실행하고, 흐름이 나가는 패킷의 내부 VLAN ID를 제거하고 들어오는 패킷의 VLAN ID를 추가하는지 검토합니다. 이 흐름은 먼저 특정 컴퓨팅 노드에서 이 네트워크에 인스턴스를 생성할 때 추가됩니다.-
인스턴스를 생성한 후에 이 흐름을 생성하지 않으면 네트워크가
flat, external,physical_network이름이 올바른지 확인합니다. 또한bridge_mapping설정을 검토합니다. 마지막으로
ifcfg-br-ex및ifcfg-ethx구성을 검토합니다.ethX가br-ex 내의 포트로 추가되고에ifcfg-br-ex 및ifcfg-ethxip a의 출력에UP플래그가 있는지 확인합니다.샘플 출력
다음 출력은
eth1이br-ex의 포트임을 보여줍니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
다음 예제에서는
eth1이 OVS 포트로 구성되어 있고 커널이 인터페이스에서 모든 패킷을 전송하고 OVS 브리지br-ex로 전송한다는 것을 보여줍니다. 이는마스터 ovs-system항목에서 확인할 수 있습니다.ip a 5: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP qlen 1000
$ ip a 5: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP qlen 1000Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
인스턴스를 생성한 후에 이 흐름을 생성하지 않으면 네트워크가
4.6. VLAN 공급자 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
단일 NIC의 VLAN 태그 지정 인터페이스를 여러 공급자 네트워크에 연결하면 이러한 새 VLAN 공급자 네트워크가 VM 인스턴스를 외부 네트워크에 직접 연결할 수 있습니다.
사전 요구 사항
VLAN 범위가 있는 물리적 네트워크가 있습니다.
이 예에서는 VLAN 범위가
171-172인physnet1이라는 물리적 네트워크를 사용합니다.네트워크 노드와 컴퓨팅 노드는 물리적 인터페이스를 사용하여 물리적 네트워크에 연결됩니다.
이 예에서는 물리적 인터페이스
eth1을 사용하여 물리적 네트워크physnet1에 연결된 네트워크 노드 및 컴퓨팅 노드를 사용합니다.- 이러한 인터페이스가 연결되는 스위치 포트는 필수 VLAN 범위를 트렁크하도록 구성해야 합니다.
절차
Undercloud 호스트에서 stack 사용자로 로그인한 사용자 지정 YAML 환경 파일을 만듭니다.
예제
vi /home/stack/templates/my-modules-environment.yaml
$ vi /home/stack/templates/my-modules-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보Red Hat OpenStack Platform Orchestration 서비스(heat)는 templates 라는 플랜 세트를 사용하여 환경을 설치하고 구성합니다. 오케스트레이션 템플릿에 대한 사용자 지정을 제공하는 특수한 유형의 템플릿인 사용자 지정 환경 파일을 사용하여 오버클라우드의 부분을 사용자 지정할 수 있습니다.
parameter_defaults아래의 YAML 환경 파일에서NeutronTypeDrivers를 사용하여 네트워크 유형 드라이버를 지정합니다.예제
parameter_defaults: NeutronTypeDrivers: vxlan,flat,vlan
parameter_defaults: NeutronTypeDrivers: vxlan,flat,vlanCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용 중인 물리적 네트워크 및 VLAN 범위를 반영하도록
NeutronNetworkVLANRanges설정을 구성합니다.예제
parameter_defaults: NeutronTypeDrivers: 'vxlan,flat,vlan' NeutronNetworkVLANRanges: 'physnet1:171:172'
parameter_defaults: NeutronTypeDrivers: 'vxlan,flat,vlan' NeutronNetworkVLANRanges: 'physnet1:171:172'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 외부 네트워크 브리지(br-ex)를 만들고 포트(eth1)와 연결합니다.
이 예제에서는 br-ex 를 사용하도록 eth1 을 구성합니다.
예제
parameter_defaults: NeutronTypeDrivers: 'vxlan,flat,vlan' NeutronNetworkVLANRanges: 'physnet1:171:172' NeutronBridgeMappings: 'datacentre:br-ex,tenant:br-int'
parameter_defaults: NeutronTypeDrivers: 'vxlan,flat,vlan' NeutronNetworkVLANRanges: 'physnet1:171:172' NeutronBridgeMappings: 'datacentre:br-ex,tenant:br-int'Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack overcloud deploy명령을 실행하고 이 새 환경 파일을 포함하여 코어 템플릿과 환경 파일을 포함합니다.중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하기 때문에 환경 파일의 순서가 중요합니다.
예제
openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yaml
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
외부 네트워크를
vlan유형으로 생성하고 구성된physical_network와 연결합니다.다음 예제 명령을 실행하여 두 개의 네트워크를 생성합니다. 하나는 VLAN 171용이고 다른 하나는 VLAN 172에 사용됩니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 서브넷을 만들고 외부 네트워크를 사용하도록 구성합니다.
openstack subnet create또는 대시보드를 사용하여 이러한 서브넷을 만들 수 있습니다. 네트워크 관리자가 수신한 외부 서브넷 세부 정보가 각 VLAN에 올바르게 연결되어 있는지 확인합니다.이 예제에서 VLAN 171은 서브넷
10.65.217.0/24를 사용하고 VLAN 172는10.65.218.0/24를 사용합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7. VLAN 프로바이더 네트워크 패킷 흐름은 어떻게 작동합니까? 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 VLAN 프로바이더 네트워크 구성이 있는 인스턴스와의 트래픽 흐름 방법을 자세히 설명합니다.
VLAN 공급자 네트워크에서 나가는 트래픽 흐름
다음 다이어그램에서는 인스턴스를 벗어나고 VLAN 프로바이더 외부 네트워크에 직접 도착하는 트래픽의 패킷 흐름을 설명합니다. 이 예에서는 두 개의 VLAN 네트워크(171 및 172)에 연결된 두 개의 인스턴스를 사용합니다. br-ex 를 구성한 후 물리적 인터페이스를 추가하고 Compute 노드에 인스턴스를 생성합니다. 결과적으로 생성된 인터페이스 및 브리지 구성은 다음 다이어그램의 구성과 유사합니다.
- 인스턴스의 eth0 인터페이스를 나가는 패킷은 인스턴스에 연결된 linux bridge qbr-xx 에 도달합니다.
- qbr-xx 는 veth 쌍 qvbxx <ECDHE qvoxxx 를 사용하여 br-int 에 연결됩니다.
- qvbxx 는 linux bridge qbr-xx 에 연결되고 qvoxx 는 Open vSwitch 브리지 br-int 에 연결됩니다.
Linux 브리지의 qbr-xx 구성 예.
이 예에서는 2개의 인스턴스와 2개의 해당 linux 브리지를 제공합니다.
br-int 의 qvoxx 구성 :
-
qvoxx는 VLAN 프로바이더 네트워크와 연결된 내부 VLAN 태그로 태그됩니다. 이 예에서 내부 VLAN 태그 2는 VLAN 프로바이더 네트워크provider-171과 연결되며, VLAN 태그 3은 VLAN 프로바이더 네트워크provider-172와 연결됩니다. 패킷이 qvoxx 에 도달하면 이 VLAN 태그가 패킷 헤더에 추가됩니다. -
그런 다음 patch-peer
int -br-ex <❏OVS 브리지로 이동합니다. br-int의 patch- peer 예 :phy-br-ex를 사용하여 패킷이 br -ex
br-ex 의 패치 피어 구성 예 :
- 이 패킷이 br -ex에서 phy-br -ex 에 도달하면 br-ex 내부의 OVS 흐름이 내부 VLAN 태그를 VLAN 프로바이더 네트워크와 연결된 실제 VLAN 태그로 교체합니다.
다음 명령의 출력은 phy-br-ex 의 포트 번호가 4 임을 보여줍니다.
ovs-ofctl show br-ex
4(phy-br-ex): addr:32:e7:a1:6b:90:3e
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
# ovs-ofctl show br-ex
4(phy-br-ex): addr:32:e7:a1:6b:90:3e
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
다음 명령은 VLAN 태그 2(dl_vlan=2)가있는 phy-br-ex(in_port=4)에 도착하는 패킷을 보여줍니다. Open vSwitch는 VLAN 태그를 171(actions=mod_vlan_vid:171,NORMAL)으로 교체하고 패킷을 실제 인터페이스로 전달합니다. 또한 명령은 VLAN 태그 3(dl_vlan=3)이있는 phy-br-ex(in_port=4)에 도착하는 모든 패킷도 표시합니다. Open vSwitch는 VLAN 태그를 172(actions=mod_vlan_vid:172,NORMAL)로 교체하고 패킷을 실제 인터페이스로 전달합니다. neutron-openvswitch-agent는 이러한 규칙을 추가합니다.
- 그런 다음 이 패킷은 물리적 인터페이스 eth1 로 전달됩니다.
VLAN 공급자 네트워크에서 들어오는 트래픽 흐름
다음 예제 흐름은 프로바이더 네트워크 provider-171에 VLAN 태그 2를 사용하고 프로바이더 네트워크 provider-172의 VLAN 태그 3을 사용하여 계산 노드에서 테스트되었습니다. 흐름에서는 통합 브리지 br-int에서 18 포트를 사용합니다.
VLAN 프로바이더 네트워크에는 다른 구성이 필요할 수 있습니다. 또한 네트워크의 구성 요구 사항은 두 개의 서로 다른 컴퓨팅 노드마다 다를 수 있습니다.
다음 명령의 출력은 int-br-ex 를 포트 번호 18과 함께 표시합니다.
ovs-ofctl show br-int
18(int-br-ex): addr:fe:b7:cb:03:c5:c1
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
# ovs-ofctl show br-int
18(int-br-ex): addr:fe:b7:cb:03:c5:c1
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
다음 명령의 출력은 br-int의 흐름 규칙을 보여줍니다.
수신 흐름 예
이 예제에서는 다음 br-int OVS 흐름을 보여줍니다.
cookie=0x0, duration=3181.679s, table=0, n_packets=2605, n_bytes=246456, idle_age=0, priority=3,in_port=18,dl_vlan=172 actions=mod_vlan_vid:3,NORMAL
cookie=0x0, duration=3181.679s, table=0, n_packets=2605, n_bytes=246456, idle_age=0,
priority=3,in_port=18,dl_vlan=172 actions=mod_vlan_vid:3,NORMAL
- 외부 네트워크에서 VLAN 태그 172가 있는 패킷은 물리적 노드의 eth1 을 통해 br-ex 브리지에 도달합니다.
-
패킷은 patch-peer
phy -br-ex <-> int-br-ex를 통해 br-int 로 이동합니다. -
패킷은 흐름의 기준(
in_port=18,dl_vlan=172)과 일치합니다. -
흐름 작업(
actions=mod_vlan_vid:3,NORMAL)은 VLAN 태그 172를 내부 VLAN 태그 3으로 교체하고 패킷을 일반 계층 2 프로세싱으로 인스턴스에 전달합니다.
4.8. VLAN 프로바이더 네트워크에서 인스턴스 물리적 네트워크 연결 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
VLAN 프로바이더 네트워크에서 연결 문제를 해결할 때 "VLAN 프로바이더 네트워크 패킷 흐름은 어떻게 작동합니까?"에 설명된 패킷 흐름을 참조하십시오. 또한 다음 구성 옵션을 검토합니다.
절차
bridge_mapping구성에 사용된 물리적 네트워크 이름이 물리적 네트워크 이름과 일치하는지 확인합니다.예제
openstack network show provider-vlan171
$ openstack network show provider-vlan171Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
... | provider:physical_network | physnet1 ...
... | provider:physical_network | physnet1 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
grep bridge_mapping /etc/neutron/plugins/ml2/openvswitch_agent.ini
$ grep bridge_mapping /etc/neutron/plugins/ml2/openvswitch_agent.iniCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
이 샘플 출력에서 물리적 네트워크 이름
physnet1은bridge_mapping구성에 사용되는 이름과 일치합니다.bridge_mappings = physnet1:br-ex
bridge_mappings = physnet1:br-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow 네트워크가
외부로생성되었고vlan을 입력하고 올바른segmentation_id값을 사용하는지 확인합니다.예제
openstack network show provider-vlan171
$ openstack network show provider-vlan171Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
... | provider:network_type | vlan | | provider:physical_network | physnet1 | | provider:segmentation_id | 171 | ...
... | provider:network_type | vlan | | provider:physical_network | physnet1 | | provider:segmentation_id | 171 | ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow patch-peer를 검토합니다.
br-int및br-ex가 patch-peerint-br-ex <--> phy-br-ex를 사용하여 연결되어 있는지 확인합니다.ovs-vsctl show
$ ovs-vsctl showCopy to Clipboard Copied! Toggle word wrap Toggle overflow neutron-openvswitch-agent를 다시 시작하는 동안bridge_mapping이/etc/neutron/plugins/ml2/openvswitch_agent.ini에 올바르게 구성되어 있는 경우 이 연결이 생성됩니다.서비스를 다시 시작한 후에도 이 설정이 생성되지 않은 경우
bridge_mapping설정을 다시 확인합니다.네트워크 흐름을 검토합니다.
-
발신 패킷의 흐름을 검토하려면
ovs-ofctl dump-flows br-ex및ovs-ofctl dump-flows br-ints br-ofctl dump-flows br-int를 실행하고, 흐름이 내부 VLAN ID(segmentation_id)에 매핑되는지 확인합니다. 들어오는 패킷의 경우 외부 VLAN ID를 내부 VLAN ID에 매핑합니다.
이 흐름은 이 네트워크에 인스턴스를 처음 생성할 때 neutron OVS 에이전트에서 추가합니다.
-
인스턴스를 생성한 후 이 흐름이 생성되지 않은 경우 네트워크를
vlan으로 만들고,external이고physical_network이름이 올바른지 확인합니다. 또한bridge_mapping설정을 다시 확인합니다. 마지막으로
ifcfg-br-ex및ifcfg-ethx구성을 다시 확인합니다.br-ex에ethX포트가 포함되어 있고ifcfg-br-ex및ifcfg-ethx둘 다ip a명령의 출력에UP플래그가 있는지 확인합니다.예제
ovs-vsctl show
$ ovs-vsctl showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 샘플 출력에서
eth1은br-ex의 포트입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
ip a
$ ip aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
이 샘플 출력에서
eth1이 포트로 추가되었으며 커널이 인터페이스에서 OVS 브리지br-ex로 모든 패킷을 이동하도록 구성되어 있습니다. 이는마스터 ovs-system항목에 의해 입증됩니다.5: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP qlen 1000
5: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP qlen 1000Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
발신 패킷의 흐름을 검토하려면
4.9. ML2/OVS 배포에서 공급자 네트워크의 멀티 캐스트 스누핑 활성화 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 공급자 네트워크의 모든 포트에 플러딩 멀티캐스트 패킷을 방지하려면 멀티캐스트 스누핑을 활성화해야 합니다. Open vSwitch 메커니즘 드라이버(ML2/OVS)와 함께 Modular Layer 2 플러그인을 사용하는 RHOSP 배포에서 YAML 형식의 환경 파일에 RHOSP Orchestration(heat) NeutronEnableIgmpSnooping 매개변수를 선언하여 이 작업을 수행합니다.
프로덕션 환경에 적용하기 전에 멀티캐스트 스누핑 구성을 철저하게 테스트하고 이해해야 합니다. 잘못된 구성으로 멀티캐스팅이 중단되거나 잘못된 네트워크 동작이 발생할 수 있습니다.
사전 요구 사항
- 구성에서는 ML2/OVS 공급자 네트워크만 사용해야 합니다.
실제 라우터에 IGMP 스누핑이 활성화되어 있어야 합니다.
즉, 물리적 라우터에서 OVS(및 물리적 네트워킹)에서 스누핑 캐시를 유지 관리하도록 멀티캐스트 그룹 구성원에서 일반 IGMP가 보고하도록 하려면 프로바이더 네트워크의 IGMP 쿼리 패킷을 보내야 합니다.
VM 인스턴스(또는 포트 보안 비활성화)에 대한 인바운드 IGMP를 허용하려면 RHOSP Networking 서비스 보안 그룹 규칙이 있어야 합니다.
이 예에서는
ping_ssh보안 그룹에 대한 규칙이 생성됩니다.예제
openstack security group rule create --protocol igmp --ingress ping_ssh
$ openstack security group rule create --protocol igmp --ingress ping_sshCopy to Clipboard Copied! Toggle word wrap Toggle overflow
절차
Undercloud 호스트에서 stack 사용자로 로그인한 사용자 지정 YAML 환경 파일을 만듭니다.
예제
vi /home/stack/templates/my-ovs-environment.yaml
$ vi /home/stack/templates/my-ovs-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보오케스트레이션 서비스(heat)에서는 템플릿이라는 플랜 세트를 사용하여 환경을 설치하고 구성합니다. 사용자 지정 환경 파일을 사용하여 오버클라우드의 속성을 사용자 지정할 수 있습니다. 이 파일은 heat 템플릿에 대한 사용자 지정을 제공하는 특수한 템플릿입니다.
parameter_defaults아래의 YAML 환경 파일에서NeutronEnableIgmpSnooping을true로 설정합니다.parameter_defaults: NeutronEnableIgmpSnooping: true ...parameter_defaults: NeutronEnableIgmpSnooping: true ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요콜론(:)과
true사이에 공백 문자를 추가해야 합니다.openstack overcloud deploy명령을 실행하고 코어 heat 템플릿, 환경 파일 및 이 새 사용자 지정 환경 파일을 포함합니다.중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하므로 환경 파일의 순서가 중요합니다.
예제
openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-ovs-environment.yaml
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-ovs-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
멀티 캐스트 스누핑이 활성화되었는지 확인합니다.
예제
sudo ovs-vsctl list bridge br-int
# sudo ovs-vsctl list bridge br-intCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
... mcast_snooping_enable: true ... other_config: {mac-table-size="50000", mcast-snooping-disable-flood-unregistered=True} ...... mcast_snooping_enable: true ... other_config: {mac-table-size="50000", mcast-snooping-disable-flood-unregistered=True} ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.10. ML2/OVN 배포에서 멀티 캐스트 활성화 링크 복사링크가 클립보드에 복사되었습니다!
멀티캐스트 트래픽을 지원하려면 배포의 보안 구성을 수정하여 멀티캐스트 트래픽이 멀티캐스트 그룹의 가상 시스템(VM) 인스턴스에 도달할 수 있도록 합니다. 멀티캐스트 트래픽 플러딩을 방지하기 위해 IGMP 스누핑을 활성화합니다.
프로덕션 환경에 적용하기 전에 멀티캐스트 스누핑 구성을 테스트하고 이해합니다. 잘못된 구성으로 멀티캐스팅이 중단되거나 잘못된 네트워크 동작이 발생할 수 있습니다.
사전 요구 사항
- ML2/OVN 메커니즘 드라이버를 사용한 OpenStack 배포.
절차
적절한 VM 인스턴스에 대한 멀티캐스트 트래픽을 허용하도록 보안을 구성합니다. 예를 들어 IGMP 쿼리에서 IGMP 트래픽이 VM 인스턴스를 입력하고 종료하는 데 사용할 수 있는 보안 그룹 규칙과 멀티캐스트 트래픽을 허용하는 세 번째 규칙을 만듭니다.
예제
보안 그룹 mySG 를 사용하면 IGMP 트래픽이 VM 인스턴스를 입력하고 종료할 수 있습니다.
openstack security group rule create --protocol igmp --ingress mySG openstack security group rule create --protocol igmp --egress mySG
openstack security group rule create --protocol igmp --ingress mySG openstack security group rule create --protocol igmp --egress mySGCopy to Clipboard Copied! Toggle word wrap Toggle overflow 또 다른 규칙을 사용하면 멀티캐스트 트래픽이 VM 인스턴스에 도달할 수 있습니다.
openstack security group rule create --protocol udp mySG
openstack security group rule create --protocol udp mySGCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 그룹 규칙을 설정하는 대신 일부 운영자는 네트워크에서 포트 보안을 선택적으로 비활성화하도록 선택합니다. 포트 보안을 비활성화하려면 관련 보안 위험을 고려하고 계획하십시오.
heat 매개변수를 설정합니다.
NeutronEnableIgmpSnooping: True언더클라우드 노드의 환경 파일에 있습니다. 예를 들어 다음 행을 ovn-extras.yaml에 추가합니다.예제
parameter_defaults: NeutronEnableIgmpSnooping: Trueparameter_defaults: NeutronEnableIgmpSnooping: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 환경과 관련된 기타 환경 파일과 함께
openstack overcloud deploy명령에 환경 파일을 포함하고 오버클라우드를 배포합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow <other_overcloud_environment_files>를 기존 배포에 포함된 환경 파일 목록으로 바꿉니다.
검증
멀티 캐스트 스누핑이 활성화되었는지 확인합니다. northbound 데이터베이스 Logical_Switch 테이블을 나열합니다.
ovn-nbctl list Logical_Switch
$ ovn-nbctl list Logical_SwitchCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
_uuid : d6a2fbcd-aaa4-4b9e-8274-184238d66a15 other_config : {mcast_flood_unregistered="false", mcast_snoop="true"} ..._uuid : d6a2fbcd-aaa4-4b9e-8274-184238d66a15 other_config : {mcast_flood_unregistered="false", mcast_snoop="true"} ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow Networking 서비스(neutron) igmp_snooping_enable 구성은 OVN Northbound 데이터베이스의 Logical_Switch 테이블의 other_config 열에 설정된 mcast_snoop 옵션으로 변환됩니다. mcast_flood_unregistered는 항상 "false"입니다.
IGMP 그룹을 표시합니다.
ovn-sbctl list IGMP_group
$ ovn-sbctl list IGMP_groupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.11. 컴퓨팅 메타데이터 액세스 활성화 링크 복사링크가 클립보드에 복사되었습니다!
이 장에 설명된 대로 연결된 인스턴스는 프로바이더 외부 네트워크에 직접 연결되며, 기본 게이트웨이로 외부 라우터가 구성되어 있습니다. OpenStack Networking(neutron) 라우터가 사용되지 않습니다. 즉, neutron 라우터를 사용하여 인스턴스에서 nova-metadata 서버로 메타데이터 요청을 프록시할 수 없으므로 cloud- init 를 실행하는 동안 오류가 발생할 수 있습니다. 그러나 이 문제는 메타데이터 요청을 프록시하도록 dhcp 에이전트를 구성하여 해결할 수 있습니다. /etc/neutron/dhcp_agent.ini 에서 이 기능을 활성화할 수 있습니다. 예를 들면 다음과 같습니다.
enable_isolated_metadata = True
enable_isolated_metadata = True
4.12. 부동 IP 주소 링크 복사링크가 클립보드에 복사되었습니다!
유동 IP가 이미 사설 네트워크와 연결되어 있는 경우에도 동일한 네트워크를 사용하여 인스턴스에 유동 IP 주소를 할당할 수 있습니다. 이 네트워크에서 유동 IP로 할당한 주소는 네트워크 노드의 qrouter-xxx 네임스페이스에 바인딩되고 연결된 개인 IP 주소에 DNAT-SNAT 를 수행합니다. 반대로 외부 네트워크 액세스를 위해 할당한 IP 주소는 인스턴스 내부에서 직접 바인딩되며 인스턴스에서 외부 네트워크와 직접 통신할 수 있습니다.
5장. 부동 IP 주소 관리 링크 복사링크가 클립보드에 복사되었습니다!
개인, 고정 IP 주소가 있는 VM 인스턴스에는 다른 네트워크와 통신할 공용 또는 유동 IP 주소가 있을 수 있습니다. 이 섹션의 정보는 RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스(neutron)를 사용하여 유동 IP를 생성하고 관리하는 방법을 설명합니다.
5.1. 유동 IP 풀 생성 링크 복사링크가 클립보드에 복사되었습니다!
유동 IP 주소를 사용하여 수신 네트워크 트래픽을 OpenStack 인스턴스로 보낼 수 있습니다. 먼저, 동적으로 인스턴스에 할당할 수 있는 유효한 라우팅 가능한 외부 IP 주소 풀을 정의해야 합니다. OpenStack Networking은 해당 유동 IP로 향하는 들어오는 모든 트래픽을 유동 IP와 연결된 인스턴스로 라우팅합니다.
OpenStack Networking에서는 CIDR 형식의 동일한 IP 범위의 모든 프로젝트(테넌트)에 유동 IP 주소를 할당합니다. 결과적으로 모든 프로젝트에서 모든 유동 IP 서브넷의 유동 IP를 사용할 수 있습니다. 특정 프로젝트의 할당량을 사용하여 이 동작을 관리할 수 있습니다. 예를 들어 Project C 및 ProjectB의 할당량을 0 으로 설정하는 동안 의 기본값을 ProjectA 및 ProjectB10 으로 설정할 수 있습니다.
절차
외부 서브넷을 만들 때 유동 IP 할당 풀을 정의할 수도 있습니다.
openstack subnet create --no-dhcp --allocation-pool start=IP_ADDRESS,end=IP_ADDRESS --gateway IP_ADDRESS --network SUBNET_RANGE NETWORK_NAME
$ openstack subnet create --no-dhcp --allocation-pool start=IP_ADDRESS,end=IP_ADDRESS --gateway IP_ADDRESS --network SUBNET_RANGE NETWORK_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 서브넷 호스트에서 유동 IP 주소만 호스팅하는 경우
openstack subnet create명령에서--no-dhcp옵션을 사용하여 DHCP 할당을 비활성화하는 것이 좋습니다.예제
openstack subnet create --no-dhcp --allocation_pool start=192.168.100.20,end=192.168.100.100 --gateway 192.168.100.1 --network 192.168.100.0/24 public
$ openstack subnet create --no-dhcp --allocation_pool start=192.168.100.20,end=192.168.100.100 --gateway 192.168.100.1 --network 192.168.100.0/24 publicCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
- 인스턴스에 임의의 유동 IP를 할당하여 풀이 올바르게 구성되었는지 확인할 수 있습니다. (다음의 이후 링크를 참조하십시오.)
5.2. 특정 유동 IP 할당 링크 복사링크가 클립보드에 복사되었습니다!
VM 인스턴스에 특정 유동 IP 주소를 할당할 수 있습니다.
절차
openstack server add floating ip 명령을 사용하여 인스턴스에 유동IP 주소를 할당합니다.예제
openstack server add floating ip prod-serv1 192.0.2.200
$ openstack server add floating ip prod-serv1 192.0.2.200Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증 단계
openstack server show명령을 사용하여 유동 IP가 인스턴스와 연결되어 있는지 확인합니다.예제
openstack server show prod-serv1
$ openstack server show prod-serv1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3. 고급 네트워크 생성 링크 복사링크가 클립보드에 복사되었습니다!
관리자 보기에서 대시 보드에 네트워크를 만들 때 관리자가 고급 네트워크 옵션을 사용할 수 있습니다. 이러한 옵션을 사용하여 프로젝트를 지정하고 사용할 네트워크 유형을 정의합니다.
절차
- 대시보드에서 Admin > Networks > Create Network > Project 를 선택합니다.
- Project(프로젝트) 드롭다운 목록에서 새 네트워크를 호스팅할 프로젝트를 선택합니다.
Provider Network Type 의 옵션을 검토합니다.
- local - 트래픽은 로컬 계산 호스트에 유지되며 외부 네트워크와 효과적으로 격리됩니다.
- 플랫 - 트래픽은 단일 네트워크에 유지되며 호스트와 공유할 수도 있습니다. VLAN 태그 지정 또는 기타 네트워크 분리가 수행되지 않습니다.
- VLAN - 실제 네트워크에 있는 VLAN에 해당하는 VLAN ID를 사용하여 네트워크를 만듭니다. 이 옵션을 사용하면 인스턴스가 동일한 계층 2 VLAN에서 시스템과 통신할 수 있습니다.
- GRE - 여러 노드에 걸쳐 있는 네트워크 오버레이를 사용하여 인스턴스 간 개별 통신을 수행합니다. 오버레이를 송신하는 트래픽의 경로가 지정되어야 합니다.
- VXLAN - GRE와 유사하며 네트워크 오버레이를 사용하여 인스턴스 간 개인 통신에 여러 노드를 확장합니다. 오버레이를 송신하는 트래픽의 경로가 지정되어야 합니다.
Create Network(네트워크 만들기)를 클릭합니다.
Project Network Topology(프로젝트 네트워크 토폴로지)를 검토하여 네트워크가 성공적으로 생성되었는지 확인합니다.
5.4. 임의의 유동 IP 할당 링크 복사링크가 클립보드에 복사되었습니다!
외부 IP 주소 풀에서 VM 인스턴스에 유동 IP 주소를 동적으로 할당할 수 있습니다.
사전 요구 사항
라우팅 가능한 외부 IP 주소 풀입니다.
자세한 내용은 5.1절. “유동 IP 풀 생성”의 내용을 참조하십시오.
절차
다음 명령을 입력하여 풀에서 유동 IP 주소를 할당합니다. 이 예에서 네트워크의 이름은
public입니다.예제
openstack floating ip create public
$ openstack floating ip create publicCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
다음 예에서 새로 할당된 유동 IP는
192.0.2.200입니다. 인스턴스에 할당할 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 인스턴스를 찾습니다.
openstack server list
$ openstack server listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인스턴스 이름 또는 ID를 유동 IP와 연결합니다.
예제
openstack server add floating ip prod-serv1 192.0.2.200
$ openstack server add floating ip prod-serv1 192.0.2.200Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증 단계
다음 명령을 입력하여 유동 IP가 인스턴스와 연결되어 있는지 확인합니다.
예제
openstack server show prod-serv1
$ openstack server show prod-serv1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5. 여러 유동 IP 풀 생성 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack Networking에서는 각 L3 에이전트에 대해 하나의 유동 IP 풀을 지원합니다. 따라서 추가 유동 IP 풀을 생성하려면 L3 에이전트를 확장해야 합니다.
절차
-
사용자 환경의 L3 에이전트에 대해
/var/lib/config-data/neutron/neutron.conf속성handle_internal_only_routers가True로 설정되어 있는지 확인합니다. 이 옵션은 외부가 아닌 라우터만 관리하도록 L3 에이전트를 구성합니다.
5.6. 물리적 네트워크 브리징 링크 복사링크가 클립보드에 복사되었습니다!
가상 네트워크를 실제 네트워크로 연결하여 가상 인스턴스와 연결할 수 있도록 합니다.
이 절차에서 실제 인터페이스의 예로 eth0 이 브리지 br-ex 에 매핑됩니다. 가상 브리지는 실제 네트워크와 모든 가상 네트워크 간의 중간 역할을 합니다.
결과적으로 eth0 을 통과하는 모든 트래픽은 구성된 Open vSwitch를 사용하여 인스턴스에 연결합니다.
물리적 NIC를 가상 Open vSwitch 브리지에 매핑하려면 다음 단계를 완료합니다.
절차
텍스트 편집기에서
/etc/sysconfig/network-scripts/ifcfg-eth0을 열고 사이트의 네트워크에 적합한 값으로 다음 매개변수를 업데이트합니다.- IPADDR
- 넷마스크 게이트웨이
DNS1 (이름 서버)
예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
텍스트 편집기에서
/etc/sysconfig/network-scripts/ifcfg-br-ex를 열고 이전에 eth0에 할당된 IP 주소 값으로 가상 브리지 매개변수를 업데이트합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이제 인스턴스에 유동 IP 주소를 할당하고 실제 네트워크에서 사용할 수 있도록 설정할 수 있습니다.
5.7. 인터페이스 추가 링크 복사링크가 클립보드에 복사되었습니다!
라우터가 중간 서브넷 외부의 대상으로 보내는 트래픽을 보낼 수 있도록 인터페이스를 사용하여 서브넷과 라우터를 상호 연결할 수 있습니다.
라우터 인터페이스를 추가하고 새 인터페이스를 서브넷에 연결하려면 다음 단계를 완료합니다.
이 절차에서는 네트워크 토폴로지 기능을 사용합니다. 이 기능을 사용하면 네트워크 관리 작업을 수행하는 동안 모든 가상 라우터 및 네트워크를 그래픽으로 표시할 수 있습니다.
- 대시보드에서 프로젝트 > 네트워크 > 네트워크 토폴로지 를 선택합니다.
- 관리할 라우터를 찾아 마우스 커서를 올려 놓은 다음 Add Interface(인터페이스 추가 )를 클릭합니다.
라우터에 연결할 서브넷을 지정합니다.
IP 주소도 지정할 수 있습니다. 이 인터페이스에 대한 ping은 트래픽이 예상대로 라우팅되고 있음을 나타내므로 주소가 테스트 및 문제 해결에 유용합니다.
Add interface (인터페이스 추가)를 클릭합니다.
네트워크 토폴로지 다이어그램은 라우터와 서브넷 간의 새 인터페이스 연결을 반영하도록 자동으로 업데이트됩니다.
5.8. 인터페이스 삭제 링크 복사링크가 클립보드에 복사되었습니다!
서브넷의 트래픽을 전달하는 데 라우터가 더 이상 필요하지 않은 경우 서브넷으로 인터페이스를 제거할 수 있습니다.
인터페이스를 삭제하려면 다음 단계를 완료합니다.
- 대시보드에서 프로젝트 > 네트워크 > 라우터 를 선택합니다.
- 삭제할 인터페이스를 호스팅하는 라우터 이름을 클릭합니다.
- 인터페이스 유형(내부 인터페이스)을 선택하고 Delete Interfaces(인터페이스 삭제 )를 클릭합니다.
6장. 네트워크 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform에서 네트워크 연결 문제 해결 진단 프로세스는 물리적 네트워크의 진단 프로세스와 유사합니다. VLAN을 사용하는 경우 가상 인프라를 완전히 분리된 환경이 아니라 실제 네트워크의 트렁크 확장으로 간주할 수 있습니다. ML2/OVS 네트워크와 기본 ML2/OVN 네트워크 문제 해결에는 몇 가지 차이점이 있습니다.
6.1. 기본 ping 테스트 링크 복사링크가 클립보드에 복사되었습니다!
ping 명령은 네트워크 연결 문제를 분석하는 데 유용한 도구입니다. 결과는 네트워크 연결의 기본 지표 역할을 하지만 실제 애플리케이션 트래픽을 차단하는 방화벽과 같은 모든 연결 문제를 완전히 제외하지는 않을 수 있습니다. ping 명령은 트래픽을 특정 대상으로 전송한 다음 시도가 성공했는지 여부를 다시 보고합니다.
ping 명령은 ICMP 작업입니다. ping 을 사용하려면 ICMP 트래픽이 중간 방화벽을 통과하는 것을 허용해야 합니다.
ping 테스트는 네트워크 문제가 발생한 시스템에서 실행할 때 가장 유용하므로 시스템이 완전히 오프라인인 것처럼 보이면 VNC 관리 콘솔을 통해 명령줄에 연결해야 할 수도 있습니다.
예를 들어 다음 ping test 명령은 성공하기 위해 여러 계층의 네트워크 인프라의 유효성을 검사합니다. 이름 확인, IP 라우팅 및 네트워크 스위칭이 모두 올바르게 작동해야 합니다.
결과 요약이 표시되는 Ctrl-c를 사용하여 ping 명령을 종료할 수 있습니다. 제로 비율의 패킷 손실은 연결이 안정적이며 시간 초과되지 않았음을 나타냅니다.
--- e1890.b.akamaiedge.net ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 13.461/13.498/13.541/0.100 ms
--- e1890.b.akamaiedge.net ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 13.461/13.498/13.541/0.100 ms
테스트 대상에 따라 ping 테스트 결과가 매우 표시될 수 있습니다. 예를 들어 다음 다이어그램 VM1에서는 몇 가지 형태의 연결 문제가 발생했습니다. 가능한 대상에는 파란색으로 번호가 지정되며 성공 또는 실패한 결과에서 얻은 결론이 표시됩니다.
인터넷 - 일반적인 첫 번째 단계는 www.example.com과 같은 인터넷 위치에 ping 테스트를 보내는 것입니다.
- 성공: 이 테스트는 시스템과 인터넷 사이의 모든 다양한 네트워크 지점이 올바르게 작동하고 있음을 나타냅니다. 여기에는 가상 및 물리적 네트워크 인프라가 포함됩니다.
- 실패: 오래된 인터넷 위치에 대한 ping 테스트가 실패할 수 있는 여러 가지 방법이 있습니다. 네트워크의 다른 시스템이 인터넷을 ping할 수 있으면 인터넷 연결이 작동 중임을 증명하고 로컬 시스템 구성 내에서 문제가 발생할 수 있습니다.
물리적 라우터 - 네트워크 관리자가 트래픽을 외부 대상으로 전달하도록 지정하는 라우터 인터페이스입니다.
- 성공: 물리적 라우터로 Ping 테스트를 수행하면 로컬 네트워크 및 기본 스위치가 작동하는지 확인할 수 있습니다. 이러한 패킷은 라우터를 통과하지 않으므로 기본 게이트웨이에 라우팅 문제가 있는지를 증명하지 않습니다.
- 실패: 이는 VM1과 기본 게이트웨이 사이에 문제가 있음을 나타냅니다. 라우터/하위가 꺼져 있거나 잘못된 기본 게이트웨이를 사용 중일 수 있습니다. 사용자가 알고 있는 다른 서버에서 구성을 올바르게 작동하고 있는 구성과 비교합니다. 로컬 네트워크에서 다른 서버를 ping합니다.
Neutron 라우터 - Red Hat OpenStack Platform이 가상 머신의 트래픽을 보내는 데 사용하는 가상 SDN(소프트웨어 정의 네트워킹) 라우터입니다.
- 성공: 방화벽은 ICMP 트래픽을 허용하며 네트워킹 노드는 온라인 상태입니다.
- 실패: 인스턴스의 보안 그룹에 ICMP 트래픽이 허용되는지 확인합니다. Networking 노드가 온라인 상태인지 확인하고 모든 필수 서비스가 실행 중인지 확인하고 L3 에이전트 로그(/var/log/neutron/l3-agent.log)를 검토합니다.
물리적 스위치 - 물리적 스위치는 동일한 물리적 네트워크에 있는 노드 간 트래픽을 관리합니다.
- 성공: VM에서 물리적 스위치로 전송되는 트래픽은 이 세그먼트가 올바르게 작동함을 나타내는 가상 네트워크 인프라를 통과해야 합니다.
- 실패: 물리적 스위치 포트가 필요한 VLAN을 트렁크하도록 구성되어 있는지 확인합니다.
VM2 - 동일한 컴퓨팅 노드에서 동일한 서브넷에서 VM을 ping합니다.
- 성공: VM1의 NIC 드라이버 및 기본 IP 구성이 작동합니다.
- 실패: VM1의 네트워크 구성을 확인합니다. 또는 VM2의 방화벽은 단순히 ping 트래픽을 차단하는 것일 수 있습니다. 또한 가상 전환 구성을 확인하고 Open vSwitch 로그 파일을 검토합니다.
6.2. 현재 포트 상태 보기 링크 복사링크가 클립보드에 복사되었습니다!
기본적인 문제 해결 작업은 라우터에 연결된 모든 포트의 인벤토리를 생성하고 포트 상태(DOWN 또는ECDHE)를 결정하는 것입니다.
절차
r1 라우터에 연결된 모든 포트를 보려면 다음 명령을 실행합니다.
openstack port list --router r1
# openstack port list --router r1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 포트의 세부 정보를 보려면 다음 명령을 실행합니다. 보려는 포트의 포트 ID를 포함합니다. 결과적으로 다음 예에
ACTIVE상태가 있는 것으로 표시된 포트 상태가 포함됩니다.openstack port show b58d26f0-cc03-43c1-ab23-ccdb1018252a
# openstack port show b58d26f0-cc03-43c1-ab23-ccdb1018252aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 각 포트에 대해 2단계를 수행하여 상태를 확인합니다.
6.3. VLAN 공급자 네트워크에 대한 연결 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack Networking은 VLAN 네트워크를 SDN 스위치로 트렁크할 수 있습니다. VLAN 태그가 지정된 프로바이더 네트워크를 지원하므로 가상 인스턴스가 실제 네트워크의 서버 서브넷과 통합할 수 있습니다.
절차
ping <gateway-IP-address>를 사용하여 게이트웨이를 ping합니다.다음 명령을 사용하여 네트워크를 생성하는 이 예제를 고려하십시오.
openstack network create --provider-network-type vlan --provider-physical-network phy-eno1 --provider-segment 120 provider openstack subnet create --no-dhcp --allocation-pool start=192.168.120.1,end=192.168.120.153 --gateway 192.168.120.254 --network provider public_subnet
# openstack network create --provider-network-type vlan --provider-physical-network phy-eno1 --provider-segment 120 provider # openstack subnet create --no-dhcp --allocation-pool start=192.168.120.1,end=192.168.120.153 --gateway 192.168.120.254 --network provider public_subnetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서 게이트웨이 IP 주소는 192.168.120.254 입니다.
ping 192.168.120.254
$ ping 192.168.120.254Copy to Clipboard Copied! Toggle word wrap Toggle overflow ping이 실패하면 다음을 수행합니다.
연결된 VLAN의 네트워크 흐름이 있는지 확인합니다.
VLAN ID가 설정되지 않았을 수 있습니다. 이 예에서 OpenStack Networking은 VLAN 120을 프로바이더 네트워크로 트렁크하도록 구성되어 있습니다. (1단계 예제의 --provider:segmentation_id=120 참조)
ovs-ofctl dump-flows <bridge-name>명령을 사용하여 브리지 인터페이스에서 VLAN 흐름을 확인합니다.이 예에서는 브리지의 이름은 br-ex:
ovs-ofctl dump-flows br-ex NXST_FLOW reply (xid=0x4): cookie=0x0, duration=987.521s, table=0, n_packets=67897, n_bytes=14065247, idle_age=0, priority=1 actions=NORMAL cookie=0x0, duration=986.979s, table=0, n_packets=8, n_bytes=648, idle_age=977, priority=2,in_port=12 actions=drop
# ovs-ofctl dump-flows br-ex NXST_FLOW reply (xid=0x4): cookie=0x0, duration=987.521s, table=0, n_packets=67897, n_bytes=14065247, idle_age=0, priority=1 actions=NORMAL cookie=0x0, duration=986.979s, table=0, n_packets=8, n_bytes=648, idle_age=977, priority=2,in_port=12 actions=dropCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.4. VLAN 구성 및 로그 파일 검토 링크 복사링크가 클립보드에 복사되었습니다!
배포 유효성을 검사하거나 문제를 해결하려면 다음을 수행할 수 있습니다.
- RHOSP(Red Hat Openstack Platform) 네트워킹 서비스(neutron) 에이전트의 등록 및 상태를 확인합니다.
- VLAN 범위와 같은 네트워크 구성 값을 검증합니다.
절차
openstack network agent list명령을 사용하여 RHOSP Networking 서비스 에이전트가 올바른 호스트 이름에 등록되어 있는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
/var/log/containers/neutron/openvswitch-agent.log를 검토합니다. 생성 프로세스에서ovs-ofctl명령을 사용하여 VLAN 트렁핑을 구성했는지 확인합니다. -
/etc/neutron/l3를 확인합니다._agent.ini 파일에서 external_network_bridgeexternal_network_bridge매개변수에 하드 코딩된 값이 있는 경우 L3-agent와 함께 프로바이더 네트워크를 사용할 수 없으며 필요한 흐름을 생성할 수 없습니다.external_network_bridge값은 'external_network_bridge = "" ' 형식이어야 합니다. -
/etc/neutron/plugin.ini파일에서network_vlan_ranges값을 확인합니다. 공급자 네트워크의 경우 숫자 VLAN ID를 지정하지 마십시오. VLAN 분리 프로젝트 네트워크를 사용하는 경우에만 ID를 지정합니다. -
OVS 에이전트 구성 파일 브리지 매핑을 확인하여phy-eno1에 매핑되고에 올바르게 연결되어 있는지 확인합니다.eno1
6.5. ML2/OVN 네임스페이스에서 기본 ICMP 테스트 수행 링크 복사링크가 클립보드에 복사되었습니다!
기본 문제 해결 단계로 동일한 계층 2 네트워크에 있는 OVN 메타데이터 인터페이스에서 인스턴스를 ping할 수 있습니다.
사전 요구 사항
- RHOSP 배포: ML2/OVN을 Networking 서비스(neutron) 기본 메커니즘 드라이버로 사용합니다.
절차
- Red Hat OpenStack Platform 인증 정보를 사용하여 오버클라우드에 로그인합니다.
-
openstack server list명령을 실행하여 VM 인스턴스의 이름을 가져옵니다. openstack server show명령을 실행하여 인스턴스가 실행 중인 컴퓨팅 노드를 확인합니다.예제
openstack server show my_instance -c OS-EXT-SRV-ATTR:host \ -c addresses
$ openstack server show my_instance -c OS-EXT-SRV-ATTR:host \ -c addressesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 컴퓨팅 노드 호스트에 로그인합니다.
예제
ssh heat-admin@compute0.example.com
$ ssh heat-admin@compute0.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow ip netns list명령을 실행하여 OVN 메타데이터 네임스페이스를 확인합니다.샘플 출력
ovnmeta-07384836-6ab1-4539-b23a-c581cf072011 (id: 1) ovnmeta-df9c28ea-c93a-4a60-b913-1e611d6f15aa (id: 0)
ovnmeta-07384836-6ab1-4539-b23a-c581cf072011 (id: 1) ovnmeta-df9c28ea-c93a-4a60-b913-1e611d6f15aa (id: 0)Copy to Clipboard Copied! Toggle word wrap Toggle overflow metadata 네임스페이스를 사용하면
ip netns exec명령을 실행하여 연결된 네트워크를 ping합니다.예제
sudo ip netns exec ovnmeta-df9c28ea-c93a-4a60-b913-1e611d6f15aa \ ping 192.0.2.2
$ sudo ip netns exec ovnmeta-df9c28ea-c93a-4a60-b913-1e611d6f15aa \ ping 192.0.2.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.6. 프로젝트 네트워크 내에서 문제 해결 (ML2/OVS) 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat Openstack Platform) ML2/OVS 네트워크에서 모든 프로젝트 트래픽이 네트워크 네임스페이스에 포함되어 있으므로 프로젝트가 서로 간섭하지 않고 네트워크를 구성할 수 있습니다. 예를 들어 네트워크 네임스페이스를 사용하면 서로 다른 프로젝트 간에 간섭 없이 동일한 서브넷 범위를 192.168.1.1/24로 설정할 수 있습니다.
사전 요구 사항
- RHOSP 배포: ML2/OVS를 Networking 서비스(neutron) 기본 메커니즘 드라이버로 사용합니다.
절차
openstack network list 명령을 사용하여 모든 프로젝트 네트워크를 나열하여 네트워크가 포함된 네트워크네임스페이스를 결정합니다.openstack network list
$ openstack network listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 출력에서
web-servers 네트워크)의 ID입니다. 명령은 네트워크 ID를 네트워크 네임스페이스에 추가하여 다음 단계에서 네임스페이스를 식별할 수 있습니다.(9cb32fe0-d7fb-432c-b116-f483c6497b08샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ip netns list 명령을 사용하여 모든 네트워크 네임스페이스를 나열합니다.ip netns list
# ip netns listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에는
web-servers네트워크 ID와 일치하는 네임스페이스가 포함됩니다.이 출력에서 네임스페이스는 qdhcp
-9cb32fe0-d7fb-432c-b116-f483c6497b08입니다.샘플 출력
qdhcp-9cb32fe0-d7fb-432c-b116-f483c6497b08 qrouter-31680a1c-9b3e-4906-bd69-cb39ed5faa01 qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b qdhcp-a0cc8cdd-575f-4788-a3e3-5df8c6d0dd81 qrouter-e9281608-52a6-4576-86a6-92955df46f56
qdhcp-9cb32fe0-d7fb-432c-b116-f483c6497b08 qrouter-31680a1c-9b3e-4906-bd69-cb39ed5faa01 qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b qdhcp-a0cc8cdd-575f-4788-a3e3-5df8c6d0dd81 qrouter-e9281608-52a6-4576-86a6-92955df46f56Copy to Clipboard Copied! Toggle word wrap Toggle overflow 네임스페이스 내에서 명령을 실행하고 문제 해결 명령에
ip netns exec <namespace>접두사를 지정하여web-servers네트워크의 구성을 검사합니다.이 예에서는
route -n명령이 사용됩니다.예제
ip netns exec qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b route -n
# ip netns exec qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b route -nCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.24.4.225 0.0.0.0 UG 0 0 0 qg-8d128f89-87 172.24.4.224 0.0.0.0 255.255.255.240 U 0 0 0 qg-8d128f89-87 192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 qr-8efd6357-96
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.24.4.225 0.0.0.0 UG 0 0 0 qg-8d128f89-87 172.24.4.224 0.0.0.0 255.255.255.240 U 0 0 0 qg-8d128f89-87 192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 qr-8efd6357-96Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.7. 네임스페이스 내에서 고급 ICMP 테스트 수행 (ML2/OVS) 링크 복사링크가 클립보드에 복사되었습니다!
tcpdump 및 ping 명령을 조합하여 RHOSP(Red Hat Openstack Platform) ML2/OVS 네트워크의 문제를 해결할 수 있습니다.
사전 요구 사항
- RHOSP 배포: ML2/OVS를 Networking 서비스(neutron) 기본 메커니즘 드라이버로 사용합니다.
절차
tcpdump명령을 사용하여 ICMP 트래픽을 캡처합니다.예제
ip netns exec qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b tcpdump -qnntpi any icmp
# ip netns exec qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b tcpdump -qnntpi any icmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 별도의 명령줄 창에서 외부 네트워크에 대한 ping 테스트를 수행합니다.
예제
ip netns exec qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b ping www.example.com
# ip netns exec qrouter-62ed467e-abae-4ab4-87f4-13a9937fbd6b ping www.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow tcpdump 세션을 실행하는 터미널에서 ping 테스트의 자세한 결과를 관찰합니다.
샘플 출력
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes IP (tos 0xc0, ttl 64, id 55447, offset 0, flags [none], proto ICMP (1), length 88) 172.24.4.228 > 172.24.4.228: ICMP host 192.168.200.20 unreachable, length 68 IP (tos 0x0, ttl 64, id 22976, offset 0, flags [DF], proto UDP (17), length 60) 172.24.4.228.40278 > 192.168.200.21: [bad udp cksum 0xfa7b -> 0xe235!] UDP, length 32tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes IP (tos 0xc0, ttl 64, id 55447, offset 0, flags [none], proto ICMP (1), length 88) 172.24.4.228 > 172.24.4.228: ICMP host 192.168.200.20 unreachable, length 68 IP (tos 0x0, ttl 64, id 22976, offset 0, flags [DF], proto UDP (17), length 60) 172.24.4.228.40278 > 192.168.200.21: [bad udp cksum 0xfa7b -> 0xe235!] UDP, length 32Copy to Clipboard Copied! Toggle word wrap Toggle overflow
트래픽의 tcpdump 분석을 수행할 때 VM 인스턴스가 아닌 라우터 인터페이스로 응답하는 패킷이 표시됩니다. 이 동작은 qrouter 가 반환 패킷에서 Destination Network Address Translation (DNAT)을 수행하므로 예상됩니다.
6.8. OVN 문제 해결 명령에 대한 별칭 생성 링크 복사링크가 클립보드에 복사되었습니다!
ovn-nbctl show 와 같은 OVN 명령을 ovn_controller 컨테이너에서 실행합니다. 컨테이너는 컨트롤러 노드 및 컴퓨팅 노드에서 실행됩니다. 명령에 대한 액세스를 간소화하려면 별칭을 정의하는 스크립트를 생성하고 소싱을 가져옵니다.
사전 요구 사항
- ML2/OVN을 기본 메커니즘 드라이버로 사용한 Red Hat OpenStack Platform 배포
절차
OVN 컨테이너에 액세스하는 데 필요한 권한이 있는 사용자로 컨트롤러 호스트에 로그인합니다.
예제
ssh heat-admin@controller-0.ctlplane
$ ssh heat-admin@controller-0.ctlplaneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 실행하려는
ovn명령이 포함된 쉘 스크립트 파일을 생성합니다.예제
vi ~/bin/ovn-alias.sh
vi ~/bin/ovn-alias.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow ovn명령을 추가하고 스크립트 파일을 저장합니다.예제
이 예제에서는
ovn-sbctl,ovn-nbctl,ovn-trace명령이 별칭 파일에 추가되었습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Compute 호스트에서 이 절차의 단계를 반복합니다.
검증
스크립트 파일을 소싱합니다.
예제
source ovn-alias.sh
# source ovn-alias.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령을 실행하여 스크립트 파일이 제대로 작동하는지 확인합니다.
예제
ovn-nbctl show
# ovn-nbctl showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.9. OVN 논리 흐름 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
OVN은 우선 순위, 일치 및 작업이 있는 흐름 테이블에 해당하는 논리 흐름을 사용합니다. 이러한 논리 흐름은 각 RHOSP(Red Hat Openstack Platform) 컴퓨팅 노드에서 실행 중인 ovn-controller 에 배포됩니다. 컨트롤러 노드에서 ovn-sbctl lflow-list 명령을 사용하여 전체 논리 흐름 세트를 확인합니다.
사전 요구 사항
- ML2/OVN을 Networking 서비스(neutron) 기본 메커니즘 드라이버로 사용하는 RHOSP 배포.
OVN 데이터베이스 명령의 별칭 파일을 생성합니다.
6.8절. “OVN 문제 해결 명령에 대한 별칭 생성” 에서 참조하십시오.
절차
OVN 컨테이너에 액세스하는 데 필요한 권한이 있는 사용자로 컨트롤러 호스트에 로그인합니다.
예제
ssh heat-admin@controller-0.ctlplane
$ ssh heat-admin@controller-0.ctlplaneCopy to Clipboard Copied! Toggle word wrap Toggle overflow OVN 데이터베이스 명령의 별칭 파일을 가져옵니다.
자세한 내용은 6.8절. “OVN 문제 해결 명령에 대한 별칭 생성”의 내용을 참조하십시오.
예제
source ~/ovn-alias.sh
source ~/ovn-alias.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 논리 흐름 보기:
ovn-sbctl lflow-list
$ ovn-sbctl lflow-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력을 검사합니다.
샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OVN과 OpenFlow의 주요 차이점은 다음과 같습니다.
- OVN 포트는 단일 스위치의 물리적 포트가 아닌 네트워크에 있는 논리적 엔티티입니다.
- OVN은 파이프라인의 각 테이블에 해당 번호 외에 이름을 제공합니다. 이름은 파이프라인에서 해당 단계의 목적을 설명합니다.
- OVN 일치 구문은 복잡한 부울 표현식을 지원합니다.
- OVN 논리 흐름에서 지원되는 작업은 OpenFlow를 초과하여 확장합니다. OVN 논리 흐름 구문에서 DHCP와 같은 고급 기능을 구현할 수 있습니다.
OVN 추적을 실행합니다.
ovn-trace명령은 패킷이 OVN 논리 흐름을 통해 이동하는 방식을 시뮬레이션하거나 패킷이 삭제되는 이유를 확인할 수 있습니다. 다음 매개변수를 사용하여ovn-trace명령을 제공합니다.- DATAPATH
- 시뮬레이션된 패킷이 시작되는 논리 스위치 또는 논리 라우터입니다.
- MICROFLOW
ovn-sb데이터베이스에서 사용하는 구문에서 시뮬레이션된 패킷.예제
이 예에서는 시뮬레이션된 패킷의
--minimal출력 옵션을 표시하고 패킷이 대상에 도달했음을 보여줍니다.ovn-trace --minimal sw0 'inport == "sw0-port1" && eth.src == 00:00:00:00:00:01 && eth.dst == 00:00:00:00:00:02'
$ ovn-trace --minimal sw0 'inport == "sw0-port1" && eth.src == 00:00:00:00:00:01 && eth.dst == 00:00:00:00:00:02'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,dl_type=0x0000 output("sw0-port2");# reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,dl_type=0x0000 output("sw0-port2");Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
보다 상세하게는, 이 동일한 시뮬레이션된 패킷에 대한
--summary출력은 전체 실행 파이프라인을 보여줍니다.ovn-trace --summary sw0 'inport == "sw0-port1" && eth.src == 00:00:00:00:00:01 && eth.dst == 00:00:00:00:00:02'
$ ovn-trace --summary sw0 'inport == "sw0-port1" && eth.src == 00:00:00:00:00:01 && eth.dst == 00:00:00:00:00:02'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
샘플 출력에는 다음이 표시됩니다.
-
패킷은
sw네트워크에 들어가고 Ingress 파이프라인을 실행합니다.0-port1 포트에서 sw0 -
outport변수는 이 패킷의 의도한 대상이sw0-port2임을 나타내는sw0-port2로 설정됩니다. -
패킷이 수신 파이프라인의 출력이며,
outport변수가sw0-port2로 설정된 상태에서sw0의 송신 파이프라인으로 가져옵니다. 출력 작업은 출력 파이프라인에서 실행되며, 이 파이프라인은 패킷을
sw0-port2인outport변수의 현재 값으로 출력합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
패킷은
6.10. OpenFlow 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
ovs-ofctl dump-flows 명령을 사용하여 RHOSP(Red Hat Openstack Platform) 네트워크의 논리 스위치에서 OpenFlow 흐름을 모니터링할 수 있습니다.
사전 요구 사항
- ML2/OVN을 Networking 서비스(neutron) 기본 메커니즘 드라이버로 사용하는 RHOSP 배포.
절차
OVN 컨테이너에 액세스하는 데 필요한 권한이 있는 사용자로 컨트롤러 호스트에 로그인합니다.
예제
ssh heat-admin@controller-0.ctlplane
$ ssh heat-admin@controller-0.ctlplaneCopy to Clipboard Copied! Toggle word wrap Toggle overflow ovs-ofctl dump-flows명령을 실행합니다.예제
sudo ovs-ofctl dump-flows br-int
$ sudo ovs-ofctl dump-flows br-intCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 출력과 유사한 출력을 검사합니다.
샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.11. ML2/OVN 배포 검증 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 배포에서 ML2/OVN 네트워크의 검증은 테스트 네트워크 및 서브넷을 생성하고 specfic 컨테이너가 실행 중인지 확인하는 등의 진단 작업을 수행하는 것으로 구성됩니다.
사전 요구 사항
- ML2/OVN을 Networking 서비스(neutron) 기본 메커니즘 드라이버로 사용하는 새로운 RHOSP 배포
OVN 데이터베이스 명령의 별칭 파일을 생성합니다.
6.8절. “OVN 문제 해결 명령에 대한 별칭 생성” 에서 참조하십시오.
절차
테스트 네트워크 및 서브넷을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오류가 발생하면 다음 단계를 수행하십시오.
관련 컨테이너가 컨트롤러 호스트에서 실행되고 있는지 확인합니다.
OVN 컨테이너에 액세스하는 데 필요한 권한이 있는 사용자로 컨트롤러 호스트에 로그인합니다.
예제
ssh heat-admin@controller-0.ctlplane
$ ssh heat-admin@controller-0.ctlplaneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행합니다.
sudo podman ps -a --format="{{.Names}}"|grep ovnsudo podman ps -a --format="{{.Names}}"|grep ovnCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 샘플에 표시된 대로 출력에 OVN 컨테이너가 나열되어야 합니다.
샘플 출력
ovn-dbs-bundle-podman-0 ovn_dbs_init_bundle ovn_controller
ovn-dbs-bundle-podman-0 ovn_dbs_init_bundle ovn_controllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow
관련 컨테이너가 Compute 호스트에서 실행 중인지 확인합니다.
OVN 컨테이너에 액세스하는 데 필요한 권한이 있는 사용자로 Compute 호스트에 로그인합니다.
예제
ssh heat-admin@compute-0.ctlplane
$ ssh heat-admin@compute-0.ctlplaneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행합니다.
sudo podman ps -a --format="{{.Names}}"|grep ovn$ sudo podman ps -a --format="{{.Names}}"|grep ovnCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 샘플에 표시된 대로 출력에 OVN 컨테이너가 나열되어야 합니다.
샘플 출력
ovn_controller ovn_metadata_agent neutron-haproxy-ovnmeta-26f493a7-1141-416a-9288-f08ff45fccac neutron-haproxy-ovnmeta-b81bd1f1-0ff4-4142-8706-0f295db3c3af
ovn_controller ovn_metadata_agent neutron-haproxy-ovnmeta-26f493a7-1141-416a-9288-f08ff45fccac neutron-haproxy-ovnmeta-b81bd1f1-0ff4-4142-8706-0f295db3c3afCopy to Clipboard Copied! Toggle word wrap Toggle overflow
로그 파일에서 오류 메시지를 검사합니다.
grep -r ERR /var/log/containers/openvswitch/ /var/log/containers/neutron/
grep -r ERR /var/log/containers/openvswitch/ /var/log/containers/neutron/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 별칭 파일을 가져와 OVN 데이터베이스 명령을 실행합니다.
자세한 내용은 6.8절. “OVN 문제 해결 명령에 대한 별칭 생성”의 내용을 참조하십시오.
예제
source ~/ovn-alias.sh
$ source ~/ovn-alias.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow northbound 및 southbound 데이터베이스를 쿼리하여 응답성을 확인합니다.
예제
ovn-nbctl show ovn-sbctl show
# ovn-nbctl show # ovn-sbctl showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 동일한 계층 2 네트워크에 있는 OVN 메타데이터 인터페이스에서 인스턴스를 ping합니다.
자세한 내용은 6.5절. “ML2/OVN 네임스페이스에서 기본 ICMP 테스트 수행”의 내용을 참조하십시오.
- 지원을 받기 위해 Red Hat에 문의해야 하는 경우 이 Red Hat 솔루션에 설명된 단계를 수행하십시오. Red Hat 지원에 필요한 모든 로그를 수집하여 OpenStack 문제를 조사합니다.
6.12. ML2/OVN의 로깅 모드 설정 링크 복사링크가 클립보드에 복사되었습니다!
추가 문제 해결을 위해 ML2/OVN 로깅을 debug 모드로 설정합니다. 추가 디버깅 정보가 필요하지 않은 경우 디스크 공간을 적게 사용하려면 info 모드로 다시 로깅을 설정합니다.
사전 요구 사항
- ML2/OVN을 기본 메커니즘 드라이버로 사용한 Red Hat OpenStack Platform 배포
절차
OVN 컨테이너에 액세스하는 데 필요한 권한이 있는 사용자로 로깅 모드를 설정하려는 컨트롤러 또는 컴퓨팅 노드에 로그인합니다.
예제
ssh heat-admin@controller-0.ctlplane
$ ssh heat-admin@controller-0.ctlplaneCopy to Clipboard Copied! Toggle word wrap Toggle overflow ML2/OVN 로깅 모드를 설정합니다.
- 디버그 로깅 모드
sudo podman exec -it ovn_controller ovn-appctl -t ovn-controller vlog/set dbg
$ sudo podman exec -it ovn_controller ovn-appctl -t ovn-controller vlog/set dbgCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 정보 로깅 모드
sudo podman exec -it ovn_controller ovn-appctl -t ovn-controller vlog/set info
$ sudo podman exec -it ovn_controller ovn-appctl -t ovn-controller vlog/set infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
ovn-controller컨테이너 로그에 디버그 메시지가 포함되어 있는지 확인합니다.sudo grep DBG /var/log/containers/openvswitch/ovn-controller.log
$ sudo grep DBG /var/log/containers/openvswitch/ovn-controller.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
문자열
|DBG|가 포함된 최근 로그 메시지가 표시되어야 합니다.2022-09-29T20:52:54.638Z|00170|vconn(ovn_pinctrl0)|DBG|unix:/var/run/openvswitch/br-int.mgmt: received: OFPT_ECHO_REQUEST (OF1.5) (xid=0x0): 0 bytes of payload 2022-09-29T20:52:54.638Z|00171|vconn(ovn_pinctrl0)|DBG|unix:/var/run/openvswitch/br-int.mgmt: sent (Success): OFPT_ECHO_REPLY (OF1.5) (xid=0x0): 0 bytes of payload
2022-09-29T20:52:54.638Z|00170|vconn(ovn_pinctrl0)|DBG|unix:/var/run/openvswitch/br-int.mgmt: received: OFPT_ECHO_REQUEST (OF1.5) (xid=0x0): 0 bytes of payload 2022-09-29T20:52:54.638Z|00171|vconn(ovn_pinctrl0)|DBG|unix:/var/run/openvswitch/br-int.mgmt: sent (Success): OFPT_ECHO_REPLY (OF1.5) (xid=0x0): 0 bytes of payloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow ovn-controller 컨테이너 로그에 다음과 유사한 문자열이 포함되어 있는지 확인합니다.
...received request vlog/set["info"], id=0
...received request vlog/set["info"], id=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.13. 엣지 사이트에 등록하지 못한 OVN 컨트롤러 수정 링크 복사링크가 클립보드에 복사되었습니다!
- 문제
RHOSP(Red Hat OpenStack Platform) 에지 사이트의 OVN 컨트롤러는 등록할 수 없습니다.
참고이 오류는 이전 RHOSP 버전에서 업데이트한 RHOSP 16.1 ML2/OVN 배포에서 발생할 수 있습니다.RHOSP 16.1.7 이하 또는 RHOSP 16.2.0.
- 예제 오류
발생한 오류는 다음과 유사합니다.
2021-04-12T09:14:48.994Z|04754|ovsdb_idl|WARN|transaction error: {"details":"Transaction causes multiple rows in \"Encap\" table to have identical values (geneve and \"10.14.2.7\") for index on columns \"type\" and \"ip\". First row, with UUID 3973cad5-eb8a-4f29-85c3-c105d861c0e0, was inserted by this transaction. Second row, with UUID f06b71a8-4162-475b-8542-d27db3a9097a, existed in the database before this transaction and was not modified by the transaction.","error":"constraint violation"}2021-04-12T09:14:48.994Z|04754|ovsdb_idl|WARN|transaction error: {"details":"Transaction causes multiple rows in \"Encap\" table to have identical values (geneve and \"10.14.2.7\") for index on columns \"type\" and \"ip\". First row, with UUID 3973cad5-eb8a-4f29-85c3-c105d861c0e0, was inserted by this transaction. Second row, with UUID f06b71a8-4162-475b-8542-d27db3a9097a, existed in the database before this transaction and was not modified by the transaction.","error":"constraint violation"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 원인
-
ovn-controller프로세스가 호스트 이름을 대체하는 경우 다른 encap 항목이 포함된 다른 섀시 항목을 등록합니다. 자세한 내용은 BZ#1948472 에서 참조하십시오. - 해결
다음 단계에 따라 문제를 해결합니다.Follow these steps to resolve the problem:
아직 없는 경우 이 절차의 뒷부분에서 사용할 필수 OVN 데이터베이스 명령에 대한 별칭을 생성합니다.
자세한 내용은 OVN 문제 해결 명령의 별칭 생성을 참조하십시오.
OVN 컨테이너에 액세스하는 데 필요한 권한이 있는 사용자로 컨트롤러 호스트에 로그인합니다.
예제
ssh heat-admin@controller-0.ctlplane
$ ssh heat-admin@controller-0.ctlplaneCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
/var/log/containers/openvswitch/ovn-controller.log에서 IP 주소를 가져옵니다. IP 주소가 올바른지 확인합니다.
ovn-sbctl list encap |grep -a3 <IP address from ovn-controller.log>
ovn-sbctl list encap |grep -a3 <IP address from ovn-controller.log>Copy to Clipboard Copied! Toggle word wrap Toggle overflow IP 주소가 포함된 섀시를 삭제합니다.
ovn-sbctl chassis-del <chassis-id>
ovn-sbctl chassis-del <chassis-id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Chassis_Private테이블을 확인하여 섀시가 제거되었는지 확인합니다.ovn-sbctl find Chassis_private chassis="[]"
ovn-sbctl find Chassis_private chassis="[]"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 항목이 보고되면 다음 명령을 사용하여 해당 항목을 제거합니다.
ovn-sbctl destroy Chassis_Private <listed_id>
$ ovn-sbctl destroy Chassis_Private <listed_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 컨테이너를 다시 시작합니다.
-
tripleo_ovn_controller tripleo_ovn_metadata_agentsudo systemctl restart tripleo_ovn_controller sudo systemctl restart tripleo_ovn_metadata_agent
$ sudo systemctl restart tripleo_ovn_controller $ sudo systemctl restart tripleo_ovn_metadata_agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
검증
OVN 에이전트가 실행 중인지 확인합니다.
openstack network agent list -c "Agent Type" -c State -c Binary
$ openstack network agent list -c "Agent Type" -c State -c BinaryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.14. ML2/OVN 로그 파일 링크 복사링크가 클립보드에 복사되었습니다!
로그 파일은 ML2/OVN 메커니즘 드라이버의 배포 및 작업과 관련된 이벤트를 추적합니다.
| 노드 | log | 경로 /var/log/containers/openvswitch... |
|---|---|---|
| 컨트롤러, 컴퓨팅, 네트워킹 | OVS northbound 데이터베이스 서버 |
|
| 컨트롤러 | OVS northbound 데이터베이스 서버 |
|
| 컨트롤러 | OVS southbound 데이터베이스 서버 |
|
| 컨트롤러 | OVN northbound 데이터베이스 서버 |
|
7장. OpenStack Networking의 물리적 스위치 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 OpenStack Networking에 필요한 일반적인 실제 스위치 구성 단계를 설명합니다. 특정 스위치에는 벤더별 구성이 포함됩니다.
7.1. 물리적 네트워크 환경 계획 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack 노드의 실제 네트워크 어댑터는 인스턴스 트래픽, 스토리지 데이터 또는 인증 요청과 같은 다양한 유형의 네트워크 트래픽을 전달합니다. 이러한 NIC가 전송하는 트래픽 유형은 물리적 스위치에서 포트를 구성해야 하는 방법에 영향을 미칩니다.
먼저 어떤 유형의 트래픽 유형을 전송할 컴퓨팅 노드의 물리적 NIC oFn을 결정해야 합니다. 그런 다음 NIC가 물리적 스위치 포트에 케이블링되면 트렁크 또는 일반 트래픽을 허용하도록 스위치 포트를 구성해야 합니다.
예를 들어 다음 다이어그램에서는 두 개의 NIC, eth0 및 eth1이 있는 컴퓨팅 노드를 보여줍니다. 각 NIC는 물리적 스위치의 기가비트 이더넷 포트로 연결되며 eth0은 인스턴스 트래픽을 전달하고 eth1은 OpenStack 서비스에 대한 연결을 제공합니다.
그림 7.1. 네트워크 레이아웃 샘플
이 다이어그램에는 내결함성에 필요한 추가 중복 NIC가 포함되지 않습니다.
7.2. Cisco catalyst 스위치 구성 링크 복사링크가 클립보드에 복사되었습니다!
7.2.1. 트렁크 포트 정보 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack 네트워킹을 사용하면 인스턴스를 실제 네트워크에 이미 존재하는 VLAN에 연결할 수 있습니다. trunk 이라는 용어는 여러 VLAN이 동일한 포트를 통과할 수 있는 포트를 설명하는 데 사용됩니다. 이러한 포트를 사용하면 VLAN이 가상 스위치를 비롯한 여러 스위치 간에 확장할 수 있습니다. 예를 들어 실제 네트워크의 VLAN110으로 태그된 트래픽이 계산 노드에 도달합니다. 여기서 8021q 모듈은 태그된 트래픽을 vSwitch의 적절한 VLAN으로 전달합니다.
7.2.2. Cisco catalyst 스위치의 트렁크 포트 구성 링크 복사링크가 클립보드에 복사되었습니다!
Cisco catalyst 스위치를 사용하는 경우 다음 구성 구문을 사용하여 VLAN 110 및 111의 트래픽이 인스턴스로 전달될 수 있습니다.
이 구성에서는 물리적 노드에 실제 스위치의 인터페이스 GigabitEthernet1/0/12에 연결된 이더넷 케이블이 있다고 가정합니다.
중요이러한 값은 예제입니다. 사용자 환경의 값과 일치하도록 이 예제의 값을 변경해야 합니다. 조정 없이 이러한 값을 스위치 구성에 복사하고 붙여넣으면 예기치 않은 중단이 발생할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 목록을 사용하여 이러한 매개변수를 파악합니다.
Expand 필드 설명 interface GigabitEthernet1/0/12X 노드의 NIC가 연결되는 스위치 포트입니다.
GigabitEthernet1/0/12값을 사용자 환경에 대한 올바른 포트 값으로 교체해야 합니다. show interface 명령을 사용하여 포트 목록을 확인합니다.컴퓨팅 노드 간략 정보이 인터페이스를 식별하는 데 사용할 수 있는 고유하고 설명적인 값입니다.
spanning-tree portfast 트렁크환경에서 STP를 사용하는 경우 이 값을 설정하여 이 포트가 트래픽을 트렁크하는 데 사용되는 Port Fast에 지시합니다.
switchport 트렁크 캡슐화 dot1q802.1q 트렁킹 표준(ISL이 아닌) 활성화. 이 값은 스위치에서 지원하는 구성에 따라 다릅니다.
Switchport 모드 트렁크이 포트를 액세스 포트 대신 트렁크 포트로 구성합니다. 즉 VLAN 트래픽이 가상 스위치로 전달할 수 있습니다.
Switchport 트렁크 네이티브 vlan 2기본 VLAN을 설정하여 태그가 지정되지 않은(VLAN 제외) 트래픽을 보낼 스위치에 지시합니다.
Switchport 트렁크 허용 vlan 2,110,111트렁크를 통해 허용되는 VLAN을 정의합니다.
7.2.3. 액세스 포트 정보 링크 복사링크가 클립보드에 복사되었습니다!
Compute 노드의 모든 NIC가 인스턴스 트래픽을 전송하는 것은 아니므로 여러 VLAN이 통과할 수 있도록 모든 NIC를 구성할 필요가 없습니다. 액세스 포트에는 하나의 VLAN만 필요하며, 관리 트래픽 또는 블록 스토리지 데이터 전송과 같은 다른 운영 요구 사항을 충족할 수 있습니다. 이러한 포트는 일반적으로 액세스 포트라고 하며, 일반적으로 트렁크 포트보다 더 간단한 구성이 필요합니다.
7.2.4. Cisco catalyst 스위치의 액세스 포트 구성 링크 복사링크가 클립보드에 복사되었습니다!
그림 7.1. “네트워크 레이아웃 샘플” 다이어그램의 예제를 사용하여 GigabitEthernet1/0/13(Cisco catalyst 스위치에서)은
eth1의 액세스 포트로 구성됩니다.이 구성에서 물리적 노드에는 실제 스위치의 GigabitEthernet1/0/12 인터페이스에 연결된 이더넷 케이블이 있습니다.
중요이러한 값은 예제입니다. 사용자 환경의 값과 일치하도록 이 예제의 값을 변경해야 합니다. 조정 없이 이러한 값을 스위치 구성에 복사하고 붙여넣으면 예기치 않은 중단이 발생할 수 있습니다.
interface GigabitEthernet1/0/13 description Access port for Compute Node switchport mode access switchport access vlan 200 spanning-tree portfast
interface GigabitEthernet1/0/13 description Access port for Compute Node switchport mode access switchport access vlan 200 spanning-tree portfastCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 설정은 다음과 같습니다.
Expand 필드 설명 interface GigabitEthernet1/0/13X 노드의 NIC가 연결되는 스위치 포트입니다.
GigabitEthernet1/0/12값을 사용자 환경에 대한 올바른 포트 값으로 교체해야 합니다. show interface 명령을 사용하여 포트 목록을 확인합니다.컴퓨팅 노드의 액세스 포트 설명이 인터페이스를 식별하는 데 사용할 수 있는 고유하고 설명적인 값입니다.
스위치 포트 모드 액세스이 포트를 트렁크 포트 대신 액세스 포트로 구성합니다.
Switchport 액세스 vlan 200VLAN 200에서 트래픽을 허용하도록 포트를 구성합니다. 이 VLAN의 IP 주소를 사용하여 컴퓨팅 노드를 구성해야 합니다.
spaning-tree portfastSTP를 사용하는 경우 STP가 트렁크로 초기화하지 않도록 이 값을 설정하여 초기 연결(예: 서버 재부팅) 중에 더 빠른 포트 핸드셰이크를 허용합니다.
7.2.5. LACP 포트 집계 정보 링크 복사링크가 클립보드에 복사되었습니다!
LACP(Link Aggregation Control Protocol)를 사용하여 여러 물리적 NIC를 함께 번들하여 단일 논리 채널을 구성할 수 있습니다. 또한 802.3ad(또는 Linux의 본딩 모드 4)라고도 하는 LACP는 부하 분산 및 내결함성을 위한 동적 본딩을 만듭니다. 실제 NIC 및 물리적 스위치 포트에 있는 물리적 엔드 모두에서 LACP를 구성해야 합니다.
7.2.6. 물리적 NIC에서 LACP 구성 링크 복사링크가 클립보드에 복사되었습니다!
물리적 NIC에서 링크 집계 제어 프로토콜(LACP)을 구성할 수 있습니다.
절차
/home/stack/network-environment.yaml 파일을 편집합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LACP를 사용하도록 Open vSwitch 브리지를 구성합니다.
BondInterfaceOvsOptions: "mode=802.3ad"BondInterfaceOvsOptions: "mode=802.3ad"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.7. Cisco catalyst 스위치의 LACP 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 예제에서 Compute 노드에는 VLAN 100을 사용하는 두 개의 NIC가 있습니다.
절차
- 컴퓨팅 노드의 두 NIC를 모두 스위치에 물리적으로 연결합니다(예: 포트 12 및 13).
LACP 포트 채널을 생성합니다.
interface port-channel1 switchport access vlan 100 switchport mode access spanning-tree guard root
interface port-channel1 switchport access vlan 100 switchport mode access spanning-tree guard rootCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스위치 포트 12(Gi1/0/12) 및 13(Gi1/0/13)을 구성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 포트 채널을 검토합니다. 결과 출력에는 멤버 포트 Gi1
/0/12 및이 나열됩니다.Gi11/0/13이 포함된 새 포트-채널 PoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고running-config를 startup-config에 복사하여 변경 사항을 적용하십시오.
running-config startup-config를 복사합니다.
7.2.8. MTU 설정 정보 링크 복사링크가 클립보드에 복사되었습니다!
특정 유형의 네트워크 트래픽에 맞게 MTU 크기를 조정해야 합니다. 예를 들어 특정 NFS 또는 iSCSI 트래픽에는 점보 프레임(9000바이트)이 필요합니다.
가상 스위치를 포함하여 트래픽이 통과할 것으로 예상되는 모든 홉의 엔드 투 엔드에서 MTU 설정을 변경해야 합니다.
7.2.9. Cisco catalyst 스위치의 MTU 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
Cisco Catalyst 3750 스위치에서 점보 프레임을 활성화하려면 이 예제 절차의 단계를 완료합니다.
현재 MTU 설정을 검토합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MTU 설정은 3750 스위치에서 개별 인터페이스에는 변경되지 않습니다. 다음 명령을 실행하여 점보 프레임 9000바이트를 사용하도록 스위치를 구성합니다. 스위치에서 이 기능을 지원하는 경우 개별 인터페이스에 대한 MTU 설정을 구성하려는 경우가 있습니다.
sw01# config t Enter configuration commands, one per line. End with CNTL/Z. sw01(config)# system mtu jumbo 9000 Changes to the system jumbo MTU will not take effect until the next reload is done
sw01# config t Enter configuration commands, one per line. End with CNTL/Z. sw01(config)# system mtu jumbo 9000 Changes to the system jumbo MTU will not take effect until the next reload is doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고running-config를 startup-config에 복사하여 변경 사항을 저장하십시오.
running-config startup-config를 복사합니다.스위치를 다시 로드하여 변경 사항을 적용합니다.
중요스위치를 다시 로드하면 스위치에 종속된 모든 장치에 대해 네트워크 중단이 발생합니다. 따라서 예약된 유지 관리 기간 동안만 스위치를 다시 로드합니다.
sw01# reload Proceed with reload? [confirm]
sw01# reload Proceed with reload? [confirm]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스위치가 다시 로드된 후 새 점보 MTU 크기를 확인합니다.
정확한 출력은 스위치 모델에 따라 다를 수 있습니다. 예를 들어 시스템 MTU 는 기가비트가 아닌 인터페이스에 적용할 수 있으며 Jumbo MTU 는 모든 기가비트 인터페이스를 설명할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.10. LLDP 검색 정보 링크 복사링크가 클립보드에 복사되었습니다!
ironic-python-agent 서비스는 연결된 스위치에서 LLDP 패킷을 수신 대기합니다. 수집된 정보에는 스위치 이름, 포트 세부 정보, 사용 가능한 VLAN이 포함될 수 있습니다. CDP(Cisco Discovery Protocol)와 유사하게 LLDP는 director 인트로스펙션 프로세스 중에 물리적 하드웨어 검색을 지원합니다.
7.2.11. Cisco catalyst 스위치의 LLDP 구성 링크 복사링크가 클립보드에 복사되었습니다!
절차
Cisco catalyst 스위치에서 LLDP를 전역적으로 활성화하려면
lldp run 명령을 실행합니다.sw01# config t Enter configuration commands, one per line. End with CNTL/Z. sw01(config)# lldp run
sw01# config t Enter configuration commands, one per line. End with CNTL/Z. sw01(config)# lldp runCopy to Clipboard Copied! Toggle word wrap Toggle overflow 인접 LLDP 호환 장치를 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
running-config를 startup-config에 복사하여 변경 사항을 저장하십시오. running-config startup-config를 복사합니다.
7.3. Cisco Nexus 스위치 구성 링크 복사링크가 클립보드에 복사되었습니다!
7.3.1. 트렁크 포트 정보 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack 네트워킹을 사용하면 인스턴스를 실제 네트워크에 이미 존재하는 VLAN에 연결할 수 있습니다. trunk 이라는 용어는 여러 VLAN이 동일한 포트를 통과할 수 있는 포트를 설명하는 데 사용됩니다. 이러한 포트를 사용하면 VLAN이 가상 스위치를 비롯한 여러 스위치 간에 확장할 수 있습니다. 예를 들어 실제 네트워크의 VLAN110으로 태그된 트래픽이 계산 노드에 도달합니다. 여기서 8021q 모듈은 태그된 트래픽을 vSwitch의 적절한 VLAN으로 전달합니다.
7.3.2. Cisco Nexus 스위치의 트렁크 포트 구성 링크 복사링크가 클립보드에 복사되었습니다!
Cisco Nexus를 사용하는 경우 다음 구성 구문을 사용하여 VLAN 110 및 111의 트래픽이 인스턴스로 전달될 수 있습니다.
이 구성에서는 물리적 노드에 물리적 스위치의 인터페이스
Ethernet1/12에 연결된 이더넷케이블이 있다고 가정합니다.중요이러한 값은 예제입니다. 사용자 환경의 값과 일치하도록 이 예제의 값을 변경해야 합니다. 조정 없이 이러한 값을 스위치 구성에 복사하고 붙여넣으면 예기치 않은 중단이 발생할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.3. 액세스 포트 정보 링크 복사링크가 클립보드에 복사되었습니다!
Compute 노드의 모든 NIC가 인스턴스 트래픽을 전송하는 것은 아니므로 여러 VLAN이 통과할 수 있도록 모든 NIC를 구성할 필요가 없습니다. 액세스 포트에는 하나의 VLAN만 필요하며, 관리 트래픽 또는 블록 스토리지 데이터 전송과 같은 다른 운영 요구 사항을 충족할 수 있습니다. 이러한 포트는 일반적으로 액세스 포트라고 하며, 일반적으로 트렁크 포트보다 더 간단한 구성이 필요합니다.
7.3.4. Cisco Nexus 스위치의 액세스 포트 구성 링크 복사링크가 클립보드에 복사되었습니다!
절차
그림 7.1. “네트워크 레이아웃 샘플” 다이어그램의 예제를 사용하여 Ethernet1/13(Cisco Nexus 스위치에서)이
eth1의 액세스 포트로 구성됩니다. 이 구성에서는 물리적 노드에 물리적 스위치의 인터페이스Ethernet1/13에 연결된 이더넷케이블이 있다고 가정합니다.중요이러한 값은 예제입니다. 사용자 환경의 값과 일치하도록 이 예제의 값을 변경해야 합니다. 조정 없이 이러한 값을 스위치 구성에 복사하고 붙여넣으면 예기치 않은 중단이 발생할 수 있습니다.
interface Ethernet1/13 description Access port for Compute Node switchport mode access switchport access vlan 200
interface Ethernet1/13 description Access port for Compute Node switchport mode access switchport access vlan 200Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.5. LACP 포트 집계 정보 링크 복사링크가 클립보드에 복사되었습니다!
LACP(Link Aggregation Control Protocol)를 사용하여 여러 물리적 NIC를 함께 번들하여 단일 논리 채널을 구성할 수 있습니다. 또한 802.3ad(또는 Linux의 본딩 모드 4)라고도 하는 LACP는 부하 분산 및 내결함성을 위한 동적 본딩을 만듭니다. 실제 NIC 및 물리적 스위치 포트에 있는 물리적 엔드 모두에서 LACP를 구성해야 합니다.
7.3.6. 물리적 NIC에서 LACP 구성 링크 복사링크가 클립보드에 복사되었습니다!
물리적 NIC에서 링크 집계 제어 프로토콜(LACP)을 구성할 수 있습니다.
절차
/home/stack/network-environment.yaml 파일을 편집합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LACP를 사용하도록 Open vSwitch 브리지를 구성합니다.
BondInterfaceOvsOptions: "mode=802.3ad"BondInterfaceOvsOptions: "mode=802.3ad"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.7. Cisco Nexus 스위치에 대한 LACP 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 예제에서 Compute 노드에는 VLAN 100을 사용하는 두 개의 NIC가 있습니다.
절차
- 컴퓨팅 노드 NIC를 스위치에 물리적으로 연결합니다(예: 포트 12 및 13).
LACP가 활성화되었는지 확인합니다.
show feature | include lacp lacp 1 enabled
(config)# show feature | include lacp lacp 1 enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 포트 1/12 및 1/13을 액세스 포트로 구성하고 채널 그룹의 구성원으로 구성합니다.
배포에 따라 액세스 인터페이스가 아닌 트렁크 인터페이스를 배포할 수 있습니다.
예를 들어 Cisco UCI의 경우 NIC는 가상 인터페이스이므로 액세스 포트를 독점적으로 구성하는 것이 좋습니다. 대체로 이러한 인터페이스에 VLAN 태그 지정 구성이 포함됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
PXE를 사용하여 Cisco 스위치에서 노드를 프로비저닝할 때 lacp graceful-convergence 옵션을 설정해야 할 수 있으며 포트를 가져오고 서버를 부팅하기 위해 지연 일시 중단이 발생하지 않습니다. 자세한 내용은 Cisco 스위치 설명서를 참조하십시오.
7.3.8. MTU 설정 정보 링크 복사링크가 클립보드에 복사되었습니다!
특정 유형의 네트워크 트래픽에 맞게 MTU 크기를 조정해야 합니다. 예를 들어 특정 NFS 또는 iSCSI 트래픽에는 점보 프레임(9000바이트)이 필요합니다.
가상 스위치를 포함하여 트래픽이 통과할 것으로 예상되는 모든 홉의 엔드 투 엔드에서 MTU 설정을 변경해야 합니다.
7.3.9. Cisco Nexus 7000 스위치의 MTU 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
7000 시리즈 스위치의 단일 인터페이스에 MTU 설정을 적용합니다.
절차
다음 명령을 실행하여 9000바이트의 점보 프레임을 사용하도록 인터페이스 1/12를 구성합니다.
interface ethernet 1/12 mtu 9216 exit
interface ethernet 1/12 mtu 9216 exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.10. LLDP 검색 정보 링크 복사링크가 클립보드에 복사되었습니다!
ironic-python-agent 서비스는 연결된 스위치에서 LLDP 패킷을 수신 대기합니다. 수집된 정보에는 스위치 이름, 포트 세부 정보, 사용 가능한 VLAN이 포함될 수 있습니다. CDP(Cisco Discovery Protocol)와 유사하게 LLDP는 director 인트로스펙션 프로세스 중에 물리적 하드웨어 검색을 지원합니다.
7.3.11. Cisco Nexus 7000 스위치의 LLDP 구성 링크 복사링크가 클립보드에 복사되었습니다!
절차
Cisco Nexus 7000 시리즈 스위치의 개별 인터페이스에 LLDP를 활성화할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
running-config를 startup-config에 복사하여 변경 사항을 저장하십시오. running-config startup-config를 복사합니다.
7.4. Cumulas Linux 스위치 구성 링크 복사링크가 클립보드에 복사되었습니다!
7.4.1. 트렁크 포트 정보 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack 네트워킹을 사용하면 인스턴스를 실제 네트워크에 이미 존재하는 VLAN에 연결할 수 있습니다. trunk 이라는 용어는 여러 VLAN이 동일한 포트를 통과할 수 있는 포트를 설명하는 데 사용됩니다. 이러한 포트를 사용하면 VLAN이 가상 스위치를 비롯한 여러 스위치 간에 확장할 수 있습니다. 예를 들어 실제 네트워크의 VLAN110으로 태그된 트래픽이 계산 노드에 도달합니다. 여기서 8021q 모듈은 태그된 트래픽을 vSwitch의 적절한 VLAN으로 전달합니다.
7.4.2. Cumlbs Linux 스위치의 트렁크 포트 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 구성에서는 물리적 노드에 실제 스위치에서 포트 swp1 및 swp2를 전환하는 데 연결된 트랜시버가 있다고 가정합니다.
이러한 값은 예제입니다. 사용자 환경의 값과 일치하도록 이 예제의 값을 변경해야 합니다. 조정 없이 이러한 값을 스위치 구성에 복사하고 붙여넣으면 예기치 않은 중단이 발생할 수 있습니다.
절차
다음 구성 구문을 사용하여 VLAN 100 및 200의 트래픽이 인스턴스로 전달되도록 허용합니다.
auto bridge iface bridge bridge-vlan-aware yes bridge-ports glob swp1-2 bridge-vids 100 200
auto bridge iface bridge bridge-vlan-aware yes bridge-ports glob swp1-2 bridge-vids 100 200Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4.3. 액세스 포트 정보 링크 복사링크가 클립보드에 복사되었습니다!
Compute 노드의 모든 NIC가 인스턴스 트래픽을 전송하는 것은 아니므로 여러 VLAN이 통과할 수 있도록 모든 NIC를 구성할 필요가 없습니다. 액세스 포트에는 하나의 VLAN만 필요하며, 관리 트래픽 또는 블록 스토리지 데이터 전송과 같은 다른 운영 요구 사항을 충족할 수 있습니다. 이러한 포트는 일반적으로 액세스 포트라고 하며, 일반적으로 트렁크 포트보다 더 간단한 구성이 필요합니다.
7.4.4. Cumlbs Linux 스위치의 액세스 포트 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 구성에서는 물리적 노드에 실제 스위치의 인터페이스에 연결된 이더넷 케이블이 있다고 가정합니다. Cumuls Linux 스위치는 관리 인터페이스의 경우 eth 를 사용하고 액세스/트렁크 포트에는 swp 를 사용합니다.
이러한 값은 예제입니다. 사용자 환경의 값과 일치하도록 이 예제의 값을 변경해야 합니다. 조정 없이 이러한 값을 스위치 구성에 복사하고 붙여넣으면 예기치 않은 중단이 발생할 수 있습니다.
절차
그림 7.1. “네트워크 레이아웃 샘플” 다이어그램의 예제를 사용하여
swp1(Cumlbs Linux 스위치에서)이 액세스 포트로 구성됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.4.5. LACP 포트 집계 정보 링크 복사링크가 클립보드에 복사되었습니다!
LACP(Link Aggregation Control Protocol)를 사용하여 여러 물리적 NIC를 함께 번들하여 단일 논리 채널을 구성할 수 있습니다. 또한 802.3ad(또는 Linux의 본딩 모드 4)라고도 하는 LACP는 부하 분산 및 내결함성을 위한 동적 본딩을 만듭니다. 실제 NIC 및 물리적 스위치 포트에 있는 물리적 엔드 모두에서 LACP를 구성해야 합니다.
7.4.6. MTU 설정 정보 링크 복사링크가 클립보드에 복사되었습니다!
특정 유형의 네트워크 트래픽에 맞게 MTU 크기를 조정해야 합니다. 예를 들어 특정 NFS 또는 iSCSI 트래픽에는 점보 프레임(9000바이트)이 필요합니다.
가상 스위치를 포함하여 트래픽이 통과할 것으로 예상되는 모든 홉의 엔드 투 엔드에서 MTU 설정을 변경해야 합니다.
7.4.7. Cumlbs Linux 스위치의 MTU 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
절차
이 예에서는 Cumlbs Linux 스위치에서 점보 프레임을 활성화합니다.
auto swp1 iface swp1 mtu 9000
auto swp1 iface swp1 mtu 9000Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고업데이트된 구성을 다시 로드하여 변경 사항을 적용하십시오.
sudo ifreload -a
7.4.8. LLDP 검색 정보 링크 복사링크가 클립보드에 복사되었습니다!
ironic-python-agent 서비스는 연결된 스위치에서 LLDP 패킷을 수신 대기합니다. 수집된 정보에는 스위치 이름, 포트 세부 정보, 사용 가능한 VLAN이 포함될 수 있습니다. CDP(Cisco Discovery Protocol)와 유사하게 LLDP는 director 인트로스펙션 프로세스 중에 물리적 하드웨어 검색을 지원합니다.
7.4.9. Cumlbs Linux 스위치에 대한 LLDP 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 LLDP 서비스 lldpd는 데몬으로 실행되며 스위치가 부팅될 때 시작됩니다.
절차
모든 포트/인터페이스에서 LLDP 인접 항목을 모두 보려면 다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5. Exos 스위치 구성 링크 복사링크가 클립보드에 복사되었습니다!
7.5.1. 트렁크 포트 정보 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack 네트워킹을 사용하면 인스턴스를 실제 네트워크에 이미 존재하는 VLAN에 연결할 수 있습니다. trunk 이라는 용어는 여러 VLAN이 동일한 포트를 통과할 수 있는 포트를 설명하는 데 사용됩니다. 이러한 포트를 사용하면 VLAN이 가상 스위치를 비롯한 여러 스위치 간에 확장할 수 있습니다. 예를 들어 실제 네트워크의 VLAN110으로 태그된 트래픽이 계산 노드에 도달합니다. 여기서 8021q 모듈은 태그된 트래픽을 vSwitch의 적절한 VLAN으로 전달합니다.
7.5.2. network EXOS 스위치에서 트렁크 포트 구성 링크 복사링크가 클립보드에 복사되었습니다!
X-670 시리즈 스위치를 사용하는 경우 다음 예제를 참조하여 VLAN 110 및 111의 트래픽이 인스턴스로 전달되도록 허용합니다.
이러한 값은 예제입니다. 사용자 환경의 값과 일치하도록 이 예제의 값을 변경해야 합니다. 조정 없이 이러한 값을 스위치 구성에 복사하고 붙여넣으면 예기치 않은 중단이 발생할 수 있습니다.
절차
이 구성에서는 물리적 노드에 실제 스위치의 인터페이스 24에 연결된 이더넷 케이블이 있다고 가정합니다. 이 예에서 DATA 및 MNGT는 VLAN 이름입니다.
#create vlan DATA tag 110 #create vlan MNGT tag 111 #configure vlan DATA add ports 24 tagged #configure vlan MNGT add ports 24 tagged
#create vlan DATA tag 110 #create vlan MNGT tag 111 #configure vlan DATA add ports 24 tagged #configure vlan MNGT add ports 24 taggedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.3. 액세스 포트 정보 링크 복사링크가 클립보드에 복사되었습니다!
Compute 노드의 모든 NIC가 인스턴스 트래픽을 전송하는 것은 아니므로 여러 VLAN이 통과할 수 있도록 모든 NIC를 구성할 필요가 없습니다. 액세스 포트에는 하나의 VLAN만 필요하며, 관리 트래픽 또는 블록 스토리지 데이터 전송과 같은 다른 운영 요구 사항을 충족할 수 있습니다. 이러한 포트는 일반적으로 액세스 포트라고 하며, 일반적으로 트렁크 포트보다 더 간단한 구성이 필요합니다.
7.5.4. Networks EXOS(네트워크 EXOS) 스위치의 액세스 포트 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 구성에서는 물리적 노드에 실제 스위치의 인터페이스 10 에 연결된 이더넷 케이블이 있다고 가정합니다.
이러한 값은 예제입니다. 사용자 환경의 값과 일치하도록 이 예제의 값을 변경해야 합니다. 조정 없이 이러한 값을 스위치 구성에 복사하고 붙여넣으면 예기치 않은 중단이 발생할 수 있습니다.
절차
이 구성 예제에서는 network X-670 시리즈 스위치에서
10을eth1의 액세스 포트로 사용합니다.create vlan VLANNAME tag NUMBER configure vlan Default delete ports PORTSTRING configure vlan VLANNAME add ports PORTSTRING untagged
create vlan VLANNAME tag NUMBER configure vlan Default delete ports PORTSTRING configure vlan VLANNAME add ports PORTSTRING untaggedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
#create vlan DATA tag 110 #configure vlan Default delete ports 10 #configure vlan DATA add ports 10 untagged
#create vlan DATA tag 110 #configure vlan Default delete ports 10 #configure vlan DATA add ports 10 untaggedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.5. LACP 포트 집계 정보 링크 복사링크가 클립보드에 복사되었습니다!
LACP(Link Aggregation Control Protocol)를 사용하여 여러 물리적 NIC를 함께 번들하여 단일 논리 채널을 구성할 수 있습니다. 또한 802.3ad(또는 Linux의 본딩 모드 4)라고도 하는 LACP는 부하 분산 및 내결함성을 위한 동적 본딩을 만듭니다. 실제 NIC 및 물리적 스위치 포트에 있는 물리적 엔드 모두에서 LACP를 구성해야 합니다.
7.5.6. 물리적 NIC에서 LACP 구성 링크 복사링크가 클립보드에 복사되었습니다!
물리적 NIC에서 링크 집계 제어 프로토콜(LACP)을 구성할 수 있습니다.
절차
/home/stack/network-environment.yaml 파일을 편집합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LACP를 사용하도록 Open vSwitch 브리지를 구성합니다.
BondInterfaceOvsOptions: "mode=802.3ad"BondInterfaceOvsOptions: "mode=802.3ad"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.7. network EXOS 스위치에서 LACP 구성 링크 복사링크가 클립보드에 복사되었습니다!
절차
이 예제에서 Compute 노드에는 VLAN 100을 사용하는 두 개의 NIC가 있습니다.
enable sharing MASTERPORT grouping ALL_LAG_PORTS lacp configure vlan VLANNAME add ports PORTSTRING tagged
enable sharing MASTERPORT grouping ALL_LAG_PORTS lacp configure vlan VLANNAME add ports PORTSTRING taggedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
#enable sharing 11 grouping 11,12 lacp #configure vlan DATA add port 11 untagged
#enable sharing 11 grouping 11,12 lacp #configure vlan DATA add port 11 untaggedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고LACP 협상 스크립트에서 시간제한 기간을 조정해야 할 수도 있습니다. 자세한 내용은 https://gtacknowledge.extremenetworks.com/articles/How_To/LACP-configured-ports-interfere-with-PXE-DHCP-on-servers의 내용을 참조하십시오.
7.5.8. MTU 설정 정보 링크 복사링크가 클립보드에 복사되었습니다!
특정 유형의 네트워크 트래픽에 맞게 MTU 크기를 조정해야 합니다. 예를 들어 특정 NFS 또는 iSCSI 트래픽에는 점보 프레임(9000바이트)이 필요합니다.
가상 스위치를 포함하여 트래픽이 통과할 것으로 예상되는 모든 홉의 엔드 투 엔드에서 MTU 설정을 변경해야 합니다.
7.5.9. network EXOS 스위치에서 MTU 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
절차
이 예에서 명령을 실행하여 network EXOS 스위치에서 점보 프레임을 활성화하고 9000바이트의 IP 패킷 전달 지원을 구성합니다.
enable jumbo-frame ports PORTSTRING configure ip-mtu 9000 vlan VLANNAME
enable jumbo-frame ports PORTSTRING configure ip-mtu 9000 vlan VLANNAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
enable jumbo-frame ports 11 configure ip-mtu 9000 vlan DATA
# enable jumbo-frame ports 11 # configure ip-mtu 9000 vlan DATACopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.10. LLDP 검색 정보 링크 복사링크가 클립보드에 복사되었습니다!
ironic-python-agent 서비스는 연결된 스위치에서 LLDP 패킷을 수신 대기합니다. 수집된 정보에는 스위치 이름, 포트 세부 정보, 사용 가능한 VLAN이 포함될 수 있습니다. CDP(Cisco Discovery Protocol)와 유사하게 LLDP는 director 인트로스펙션 프로세스 중에 물리적 하드웨어 검색을 지원합니다.
7.5.11. 프리뷰 네트워크 EXOS 스위치에서 LLDP 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
절차
-
이 예에서 LLDP는 Networks EXOS 스위치에서 활성화됩니다.
11은 포트 문자열을 나타냅니다.
enable lldp ports 11
enable lldp ports 11
7.6. Juniper EX 시리즈 스위치 구성 링크 복사링크가 클립보드에 복사되었습니다!
7.6.1. 트렁크 포트 정보 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack 네트워킹을 사용하면 인스턴스를 실제 네트워크에 이미 존재하는 VLAN에 연결할 수 있습니다. trunk 이라는 용어는 여러 VLAN이 동일한 포트를 통과할 수 있는 포트를 설명하는 데 사용됩니다. 이러한 포트를 사용하면 VLAN이 가상 스위치를 비롯한 여러 스위치 간에 확장할 수 있습니다. 예를 들어 실제 네트워크의 VLAN110으로 태그된 트래픽이 계산 노드에 도달합니다. 여기서 8021q 모듈은 태그된 트래픽을 vSwitch의 적절한 VLAN으로 전달합니다.
7.6.2. Juniper EX 시리즈 스위치의 트렁크 포트 구성 링크 복사링크가 클립보드에 복사되었습니다!
절차
Juniper EX 시리즈가 실행되는 Juniper JunOS를 사용하는 경우 다음 구성 구문을 사용하여 VLAN 110 및 111의 트래픽이 인스턴스로 전달되도록 허용합니다.
이 구성에서는 물리적 노드에 실제 스위치의 인터페이스 ge-1/0/12에 연결된 이더넷 케이블이 있다고 가정합니다.
중요이러한 값은 예제입니다. 사용자 환경의 값과 일치하도록 이 예제의 값을 변경해야 합니다. 조정 없이 이러한 값을 스위치 구성에 복사하고 붙여넣으면 예기치 않은 중단이 발생할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.6.3. 액세스 포트 정보 링크 복사링크가 클립보드에 복사되었습니다!
Compute 노드의 모든 NIC가 인스턴스 트래픽을 전송하는 것은 아니므로 여러 VLAN이 통과할 수 있도록 모든 NIC를 구성할 필요가 없습니다. 액세스 포트에는 하나의 VLAN만 필요하며, 관리 트래픽 또는 블록 스토리지 데이터 전송과 같은 다른 운영 요구 사항을 충족할 수 있습니다. 이러한 포트는 일반적으로 액세스 포트라고 하며, 일반적으로 트렁크 포트보다 더 간단한 구성이 필요합니다.
7.6.4. Juniper EX 시리즈 스위치의 액세스 포트 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 예제의 Juniper EX 시리즈 스위치는 ge-1/0/13 을 eth1 의 액세스 포트로 보여줍니다.
+
이러한 값은 예제입니다. 사용자 환경의 값과 일치하도록 이 예제의 값을 변경해야 합니다. 조정 없이 이러한 값을 스위치 구성에 복사하고 붙여넣으면 예기치 않은 중단이 발생할 수 있습니다.
절차
이 구성에서는 물리적 노드에 실제 스위치의 인터페이스 ge-1/0/13 에 연결된 이더넷 케이블이 있다고 가정합니다.
+
7.6.5. LACP 포트 집계 정보 링크 복사링크가 클립보드에 복사되었습니다!
LACP(Link Aggregation Control Protocol)를 사용하여 여러 물리적 NIC를 함께 번들하여 단일 논리 채널을 구성할 수 있습니다. 또한 802.3ad(또는 Linux의 본딩 모드 4)라고도 하는 LACP는 부하 분산 및 내결함성을 위한 동적 본딩을 만듭니다. 실제 NIC 및 물리적 스위치 포트에 있는 물리적 엔드 모두에서 LACP를 구성해야 합니다.
7.6.6. 물리적 NIC에서 LACP 구성 링크 복사링크가 클립보드에 복사되었습니다!
물리적 NIC에서 링크 집계 제어 프로토콜(LACP)을 구성할 수 있습니다.
절차
/home/stack/network-environment.yaml 파일을 편집합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LACP를 사용하도록 Open vSwitch 브리지를 구성합니다.
BondInterfaceOvsOptions: "mode=802.3ad"BondInterfaceOvsOptions: "mode=802.3ad"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.6.7. Juniper EX 시리즈 스위치에 대한 LACP 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 예제에서 Compute 노드에는 VLAN 100을 사용하는 두 개의 NIC가 있습니다.
절차
- 컴퓨팅 노드의 두 NIC를 스위치에 물리적으로 연결합니다(예: 포트 12 및 13).
포트 집계를 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 포트 집계
ae1에 참여하도록 스위치 포트 12 (ge-1/0/12) 및 13 (ge-1/0/13)을 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Red Hat OpenStack Platform director 배포의 경우 본딩에서 PXE 부팅을 위해 인트로스펙션 및 첫 번째 부팅 중에 하나의 본딩 멤버만 표시되도록 lacp force-up으로 구성해야 합니다. lacp force-up으로 구성하는 본딩 멤버는 instackenv.json에 MAC 주소가 있는 동일한 본딩 멤버여야 합니다. ironic으로 알려진 MAC 주소는 force-up으로 구성된 것과 동일한 MAC 주소여야 합니다.
포트 집계
ae1에서 LACP를 활성화합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow VLAN 100
에 집계 ae1을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 포트 채널을 검토합니다. 결과 출력에는 멤버 포트
ge-1/0/12 및이 있는 새 포트 집계ge-1/0/13ae1이 나열됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고커밋명령을 실행하여 변경 사항을 적용해야 합니다.
7.6.8. MTU 설정 정보 링크 복사링크가 클립보드에 복사되었습니다!
특정 유형의 네트워크 트래픽에 맞게 MTU 크기를 조정해야 합니다. 예를 들어 특정 NFS 또는 iSCSI 트래픽에는 점보 프레임(9000바이트)이 필요합니다.
가상 스위치를 포함하여 트래픽이 통과할 것으로 예상되는 모든 홉의 엔드 투 엔드에서 MTU 설정을 변경해야 합니다.
7.6.9. Juniper EX 시리즈 스위치의 MTU 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 예에서는 Juniper EX4200 스위치에서 점보 프레임을 활성화합니다.
MTU 값은 Juniper 또는 Cisco 장치를 사용하는지에 따라 다르게 계산됩니다. 예를 들어 Juniper의 9216 은 Cisco의 경우 9202 입니다. 추가 바이트는 L2 헤더에 사용되며, Cisco는 이 값을 지정된 MTU 값에 자동으로 추가하지만 Juniper를 사용할 때 사용 가능한 MTU는 지정된 것보다 14바이트 더 작습니다. 따라서 VLAN에서 MTU 9000 을 지원하려면 Juniper에서 9014 의 MTU를 구성해야 합니다.
절차
Juniper EX 시리즈 스위치의 경우 개별 인터페이스에 대해 MTU 설정이 설정됩니다. 이러한 명령은
ge-1/0/14 및포트에서 점보 프레임을 구성합니다.ge-1/0/15set interfaces ge-1/0/14 mtu 9216 set interfaces ge-1/0/15 mtu 9216
set interfaces ge-1/0/14 mtu 9216 set interfaces ge-1/0/15 mtu 9216Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고commit명령을 실행하여 변경 사항을 저장해야 합니다.LACP 집계를 사용하는 경우 멤버 NIC가 아닌 MTU 크기를 설정해야 합니다. 예를 들어 이 설정은 ae1 집계의 MTU 크기를 구성합니다.
set interfaces ae1 mtu 9216
set interfaces ae1 mtu 9216Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.6.10. LLDP 검색 정보 링크 복사링크가 클립보드에 복사되었습니다!
ironic-python-agent 서비스는 연결된 스위치에서 LLDP 패킷을 수신 대기합니다. 수집된 정보에는 스위치 이름, 포트 세부 정보, 사용 가능한 VLAN이 포함될 수 있습니다. CDP(Cisco Discovery Protocol)와 유사하게 LLDP는 director 인트로스펙션 프로세스 중에 물리적 하드웨어 검색을 지원합니다.
7.6.11. Juniper EX 시리즈 스위치에 대한 LLDP 구성 링크 복사링크가 클립보드에 복사되었습니다!
모든 인터페이스에 대해 LLDP를 전역적으로 활성화하거나 개별 인터페이스에 대해서만 활성화할 수 있습니다.
절차
Juniper EX 4200 스위치에서 전 세계적으로 LLDP를 다음과 같이 사용하십시오.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음을 사용하여 단일 인터페이스
ge-1/0/14에 LLDP를 활성화합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고커밋명령을 실행하여 변경 사항을 적용해야 합니다.
8장. 최대 전송 단위(MTU) 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
8.1. MTU 개요 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack Networking은 인스턴스에 안전하게 적용할 수 있는 가능한 최대 MTU(최대 전송 단위) 크기를 계산할 수 있습니다. MTU 값은 단일 네트워크 패킷이 전송할 수 있는 최대 데이터 양을 지정합니다. 이 숫자는 애플리케이션에 가장 적합한 크기에 따라 다릅니다. 예를 들어 NFS 공유에는 VoIP 애플리케이션보다 다른 MTU 크기가 필요할 수 있습니다.
openstack network show <network_name> 명령을 사용하여 OpenStack Networking에서 계산하는 가능한 최대 MTU 값을 확인할 수 있습니다. net-mtu 는 일부 구현에 없는 neutron API 확장입니다. 필요한 MTU 값은 인스턴스에서 지원하는 경우 자동 구성을 위해 DHCPv4 클라이언트에 알리고 라우터 알림(RA) 패킷을 통해 IPv6 클라이언트에 알릴 수 있습니다. 라우터 알림을 보내려면 네트워크를 라우터에 연결해야 합니다.
엔드 투 엔드에서 MTU 설정을 일관되게 구성해야 합니다. 즉, VM, 가상 네트워크 인프라, 물리적 네트워크 및 대상 서버를 포함하여 패킷이 통과하는 모든 지점에서 MTU 설정이 동일해야 합니다.
예를 들어 다음 다이어그램의 원은 인스턴스와 물리적 서버 간의 트래픽에 맞게 MTU 값을 조정해야 하는 다양한 지점을 나타냅니다. 특정 MTU 크기의 패킷을 수용하도록 네트워크 트래픽을 처리하는 인터페이스의 MTU 값을 변경해야 합니다. 트래픽이 인스턴스 192.168.200.15에서 실제 서버 10. 20.15.25로 이동하는 경우 이 작업이 필요합니다.
일관되지 않은 MTU 값은 여러 네트워크 문제가 발생할 수 있으며, 가장 일반적인 패킷 손실로 인해 연결이 끊어지고 네트워크 성능이 저하됩니다. 이러한 문제는 올바른 MTU 값이 있는지 확인하기 위해 가능한 모든 네트워크 지점을 식별하고 검사해야 하므로 문제를 해결하는 데 문제가 있습니다.
8.2. Director에서 MTU 설정 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 예제에서는 NIC 구성 템플릿을 사용하여 MTU를 설정하는 방법을 보여줍니다. 브리지, 본딩(해당되는 경우), 인터페이스 및 VLAN에 MTU를 설정해야 합니다.
8.3. 결과 MTU 계산 검토 링크 복사링크가 클립보드에 복사되었습니다!
인스턴스가 사용할 수 있는 가장 큰 MTU 값인 계산된 MTU 값을 볼 수 있습니다. 계산된 MTU 값을 사용하여 네트워크 트래픽 경로와 관련된 모든 인터페이스를 구성합니다.
openstack network show <network>
# openstack network show <network>
9장. QoS(Quality of Service) 정책을 사용하여 데이터 트래픽 관리 링크 복사링크가 클립보드에 복사되었습니다!
QoS(Quality of Service) 정책을 사용하여 RHOSP(Red Hat OpenStack Platform) 네트워크의 송신 및 수신 트래픽에 속도 제한을 적용하여 VM 인스턴스에 다양한 서비스 수준을 제공할 수 있습니다.
개별 포트에 QoS 정책을 적용하거나 특정 정책이 연결된 포트가 정책을 상속하는 프로젝트 네트워크에 QoS 정책을 적용할 수 있습니다.
DHCP 및 내부 라우터 포트와 같은 내부 네트워크 소유 포트는 네트워크 정책 애플리케이션에서 제외됩니다.
QoS 정책을 동적으로 적용, 수정 또는 제거할 수 있습니다. 그러나 보장된 최소 대역폭 QoS 정책의 경우 정책이 할당된 포트를 사용하는 인스턴스가 없는 경우에만 수정 사항을 적용할 수 있습니다.
9.1. QoS 규칙 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스(neutron)에서 QoS(Quality of Service) 정책을 정의하도록 다음 규칙 유형을 구성할 수 있습니다.
- 최소 대역폭 (
최소 대역폭) - 특정 유형의 트래픽에 최소 대역폭 제약 조건을 제공합니다. 구현된 경우 규칙이 적용되는 각 포트에 지정된 대역폭보다 적은 대역폭을 제공하기 위한 최선의 노력이 이루어집니다.
- 대역폭 제한 (
bandwidth_limit) - 네트워크, 포트, 유동 IP 및 라우터 게이트웨이 IP에 대한 대역폭 제한을 제공합니다. 구현된 경우 지정된 속도를 초과하는 모든 트래픽이 삭제됩니다.
- DSCP 표시 (
dscp_marking) - DHCP(다중화된 서비스 코드 지점) 값을 사용하여 네트워크 트래픽을 표시합니다.
QoS 정책은 가상 머신 인스턴스 배치, 유동 IP 할당 및 게이트웨이 IP 할당을 포함하여 다양한 컨텍스트에서 적용할 수 있습니다.
시행 컨텍스트 및 사용하는 메커니즘 드라이버에 따라 QoS 규칙은 송신 트래픽(인스턴스에서 업로드), 수신 트래픽(인스턴스로 다운로드) 또는 둘 다에 영향을 미칩니다.
| Rule | 메커니즘 드라이버에서 지원되는 트래픽 방향 | ||
| ML2/OVS | ML2/SR-IOV | ML2/OVN | |
| 최소 대역폭 | egress only [4][5] | 송신 전용 | 현재 지원되지 않습니다[5] |
| 대역폭 제한 | 송신 [1][2] 및 수신 | egress만 [3] | 송신 및 수신 |
| DSCP 표시 | 송신 전용 | 해당 없음 | 송신만 [7] |
[1] OVS 송신 대역폭 제한은 TAP 인터페이스에서 수행되며 트래픽 셰이핑이 아닌 트래픽 일치입니다.
[2] RHOSP 16.2.2 이상에서는 ip link 명령을 사용하여 네트워크 인터페이스에 QoS 정책을 적용하여 하드웨어 오프로드 포트에서 OVS 송신 대역폭 제한이 지원됩니다.
[3] 메커니즘 드라이버는 이를 지원하지 않기 때문에 max-burst-kbits 매개 변수를 무시합니다.
[4] 규칙은 터널링되지 않은 네트워크, 플랫 및 VLAN에만 적용됩니다.
[5] OVS 송신 최소 대역폭은 ip link 명령을 사용하여 네트워크 인터페이스에 QoS 정책을 적용하여 하드웨어 오프로드 포트에서 지원됩니다.
[6] https://bugzilla.redhat.com/show_bug.cgi?id=2060310
[7] ML2/OVN은 터널링된 프로토콜에서ECDHEP 표시를 지원하지 않습니다.
| 적용 유형 | 방향 메커니즘 드라이버에서 지원되는 트래픽 | ||
| ML2/OVS | ML2/SR-IOV | ML2/OVN | |
| 배치 | 송신 및 수신 | 송신 및 수신 | 현재 지원되지 않음 |
| 적용 유형 | 메커니즘 드라이버에서 지원되는 트래픽 방향 | |
| ML2/OVS | ML2/OVN | |
| 유동 IP | 송신 및 수신 | 송신 및 수신 |
| 게이트웨이 IP | 송신 및 수신 | 현재 지원 안 함 [1] |
9.2. QoS 정책을 위한 네트워킹 서비스 구성 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스(neutron)의 서비스 품질은 qos 서비스 플러그인을 통해 제공됩니다. ML2/OVS 및 ML2/OVN 메커니즘 드라이버를 사용하면 기본적으로 qos 가 로드됩니다. 그러나 ML2/SR-IOV에는 적용되지 않습니다.
ML2/OVS 및 ML2/SR-IOV 메커니즘 드라이버와 함께 qos 서비스 플러그인을 사용하는 경우 해당 에이전트에 qos 확장 프로그램을 로드해야 합니다.
다음 목록에는 QoS용 네트워킹 서비스를 구성하기 위해 수행해야 하는 작업이 요약되어 있습니다. 작업 세부 정보는 이 목록에 따릅니다.
모든 유형의 QoS 정책에 대해:
-
qos서비스 플러그인을 추가합니다. -
에이전트(OVS 및 SR-IOV만 해당)의
qos확장을 추가합니다.
-
최소 대역폭 정책을 사용하여 VM 인스턴스를 예약하기 위한 추가 작업만 수행합니다.
- Compute 서비스(nova)에서 사용하는 이름과 다른 하이퍼바이저 이름을 지정합니다.
- 각 컴퓨팅 노드에서 관련 에이전트에 대한 리소스 공급자 수신 및 송신 대역폭을 구성합니다.
-
(선택 사항)
vnic_types를 지원하지 않는 것으로 표시합니다.
터널링에서만 ML/OVS를 사용하는 시스템에서 DSCP 마킹 정책에 대한 추가 작업:
-
dscp_inherit을true로 설정합니다.
-
사전 요구 사항
-
RHOSP 언더클라우드에 액세스할 수 있는
stack사용자여야 합니다.
절차
-
언더클라우드 호스트에
stack사용자로 로그인합니다. 언더클라우드 인증 정보 파일을 소싱합니다.
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow qos서비스 플러그인이 아직 로드되지 않았는지 확인합니다.openstack network qos policy list
$ openstack network qos policy listCopy to Clipboard Copied! Toggle word wrap Toggle overflow qos서비스 플러그인이 로드되지 않은 경우ResourceNotFound오류가 발생합니다. 오류가 표시되지 않으면 플러그인이 로드되고 이 항목의 단계를 수행할 필요가 없습니다.YAML 사용자 지정 환경 파일을 생성합니다.
예제
vi /home/stack/templates/my-neutron-environment.yaml
$ vi /home/stack/templates/my-neutron-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 환경 파일에는
parameter_defaults키워드가 포함되어야 합니다. 아래 새 행에서parameter_defaults는NeutronServicePlugins매개변수에qos를 추가합니다.parameter_defaults: NeutronServicePlugins: "qos"
parameter_defaults: NeutronServicePlugins: "qos"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ML2/OVS 및 ML2/SR-IOV 메커니즘 드라이버를 사용하는 경우
NeutronAgentExtensions또는NeutronSriovAgentExtensions변수를 각각 사용하여 에이전트에qos확장을 로드해야 합니다.ML2/OVS
parameter_defaults: NeutronServicePlugins: "qos" NeutronAgentExtensions: "qos"
parameter_defaults: NeutronServicePlugins: "qos" NeutronAgentExtensions: "qos"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ML2/SR-IOV
parameter_defaults: NeutronServicePlugins: "qos" NeutronSriovAgentExtensions: "qos"
parameter_defaults: NeutronServicePlugins: "qos" NeutronSriovAgentExtensions: "qos"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
최소 대역폭 QoS 정책을 사용하여 VM 인스턴스를 예약하려면 다음을 수행해야 합니다.
플러그인 목록에
배치를추가하고 목록에qos:도 포함되어 있는지 확인하십시오.parameter_defaults: NeutronServicePlugins: "qos,placement"
parameter_defaults: NeutronServicePlugins: "qos,placement"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 하이퍼바이저 이름이 Compute 서비스(nova)에서 사용하는 표준 하이퍼바이저 이름과 일치하는 경우 7.iii 단계로 건너뜁니다.
하이퍼바이저 이름이 Compute 서비스에서 사용하는 표준 하이퍼바이저 이름과 일치하지 않는 경우
resource_provider_default_hypervisor를 사용하여 대체 하이퍼바이저 이름을 지정합니다.ML2/OVS
parameter_defaults: NeutronServicePlugins: "qos,placement" ExtraConfig: Neutron::agents::ml2::ovs::resource_provider_default_hypervisor: %{hiera('fqdn_canonical')}parameter_defaults: NeutronServicePlugins: "qos,placement" ExtraConfig: Neutron::agents::ml2::ovs::resource_provider_default_hypervisor: %{hiera('fqdn_canonical')}Copy to Clipboard Copied! Toggle word wrap Toggle overflow ML2/SR-IOV
parameter_defaults: NeutronServicePlugins: "qos,placement" ExtraConfig: Neutron::agents::ml2::sriov::resource_provider_default_hypervisor: %{hiera('fqdn_canonical')}parameter_defaults: NeutronServicePlugins: "qos,placement" ExtraConfig: Neutron::agents::ml2::sriov::resource_provider_default_hypervisor: %{hiera('fqdn_canonical')}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요대체 하이퍼바이저 이름을 설정하는 또 다른 방법은
resource_provider_hypervisor를 사용하는 것입니다.ML2/OVS
parameter_defaults: ExtraConfig: Neutron::agents::ml2::ovs::resource_provider_hypervisors:"ens5:%{hiera('fqdn_canonical')},ens6:%{hiera('fqdn_canonical')}"parameter_defaults: ExtraConfig: Neutron::agents::ml2::ovs::resource_provider_hypervisors:"ens5:%{hiera('fqdn_canonical')},ens6:%{hiera('fqdn_canonical')}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ML2/SR-IOV
parameter_defaults: ExtraConfig: Neutron::agents::ml2::sriov::resource_provider_hypervisors: "ens5:%{hiera('fqdn_canonical')},ens6:%{hiera('fqdn_canonical')}"parameter_defaults: ExtraConfig: Neutron::agents::ml2::sriov::resource_provider_hypervisors: "ens5:%{hiera('fqdn_canonical')},ens6:%{hiera('fqdn_canonical')}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
최소 대역폭을 제공해야 하는 각 컴퓨팅 노드에서 관련 에이전트에 대한 리소스 공급자 수신 및 송신 대역폭을 구성합니다.
다음 형식을 사용하여 송신, 수신 또는 둘 다를 구성할 수 있습니다.
kbps에서 송신 대역폭만 구성합니다.
NeutronOvsResourceProviderBandwidths: <bridge0>:<egress_kbps>:,<bridge1>:<egress_kbps>:,...,<bridgeN>:<egress_kbps>:
NeutronOvsResourceProviderBandwidths: <bridge0>:<egress_kbps>:,<bridge1>:<egress_kbps>:,...,<bridgeN>:<egress_kbps>:Copy to Clipboard Copied! Toggle word wrap Toggle overflow kbps에서 수신 대역폭만 구성합니다.
NeutronOvsResourceProviderBandwidths: <bridge0>::<ingress_kbps>,<bridge1>::<ingress_kbps>,...,<bridgeN>::<ingress_kbps>
NeutronOvsResourceProviderBandwidths: <bridge0>::<ingress_kbps>,<bridge1>::<ingress_kbps>,...,<bridgeN>::<ingress_kbps>Copy to Clipboard Copied! Toggle word wrap Toggle overflow kbps에서 송신 및 수신 대역폭을 둘 다 구성합니다.
NeutronOvsResourceProviderBandwidths: <bridge0>:<egress_kbps>:<ingress_kbps>,<bridge1>:<egress_kbps>:<ingress_kbps>,...,<bridgeN>:<egress_kbps>:<ingress_kbps>
NeutronOvsResourceProviderBandwidths: <bridge0>:<egress_kbps>:<ingress_kbps>,<bridge1>:<egress_kbps>:<ingress_kbps>,...,<bridgeN>:<egress_kbps>:<ingress_kbps>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 - OVS 에이전트
OVS 에이전트에 대한 리소스 공급자 수신 및 송신 대역폭을 구성하려면 네트워크 환경 파일에 다음 구성을 추가합니다.
parameter_defaults: ... NeutronBridgeMappings: physnet0:br-physnet0 NeutronOvsResourceProviderBandwidths: br-physnet0:10000000:10000000
parameter_defaults: ... NeutronBridgeMappings: physnet0:br-physnet0 NeutronOvsResourceProviderBandwidths: br-physnet0:10000000:10000000Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 - SRIOV 에이전트
SRIOV 에이전트에 대한 리소스 공급자 수신 및 송신 대역폭을 구성하려면 네트워크 환경 파일에 다음 구성을 추가합니다.
parameter_defaults: ... NeutronML2PhysicalNetworkMtus: physnet0:1500,physnet1:1500 NeutronSriovResourceProviderBandwidths: ens5:40000000:40000000,ens6:40000000:40000000
parameter_defaults: ... NeutronML2PhysicalNetworkMtus: physnet0:1500,physnet1:1500 NeutronSriovResourceProviderBandwidths: ens5:40000000:40000000,ens6:40000000:40000000Copy to Clipboard Copied! Toggle word wrap Toggle overflow
선택 사항: 배치 서비스에서 여러 ML2 메커니즘 드라이버가 이를 지원하고 여러 에이전트가 추적되는 경우
vnic_types를 지원하지 않는 것으로 표시하려면 다음 설정도 환경 파일에 추가합니다.예 - OVS 에이전트
parameter_defaults: ... NeutronOvsVnicTypeBlacklist: direct
parameter_defaults: ... NeutronOvsVnicTypeBlacklist: directCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예 - SRIOV 에이전트
parameter_defaults: ... NeutronSriovVnicTypeBlacklist: direct
parameter_defaults: ... NeutronSriovVnicTypeBlacklist: directCopy to Clipboard Copied! Toggle word wrap Toggle overflow
DSCP 표시 정책을 생성하고 터널링 프로토콜(VXLAN 또는 GRE)을 사용하여 ML2/OVS를 사용하려는 경우
NeutronAgentExtensions에서 다음 행을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow dscp_inherit이true인 경우 Networking 서비스는 내부 헤더의 DSCP 값을 외부 헤더에 복사합니다.배포 명령을 실행하고 코어 heat 템플릿, 기타 환경 파일 및 이 새로운 사용자 지정 환경 파일을 포함합니다.
중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하기 때문에 환경 파일의 순서가 중요합니다.
예제
openstack overcloud deploy --templates \ -e <other_environment_files> \ -e /home/stack/templates/my-neutron-environment.yaml
$ openstack overcloud deploy --templates \ -e <other_environment_files> \ -e /home/stack/templates/my-neutron-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
qos서비스 플러그인이 로드되었는지 확인합니다.openstack network qos policy list
$ openstack network qos policy listCopy to Clipboard Copied! Toggle word wrap Toggle overflow qos서비스 플러그인이 로드되면ResourceNotFound오류가 발생하지 않습니다.
9.3. QoS 정책을 사용하여 최소 대역폭 제어 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스(neutron)의 경우 두 가지 개별 컨텍스트에서 보장된 최소 대역폭 QoS 규칙을 적용할 수 있습니다. 네트워킹 서비스 백엔드 시행 및 리소스 할당 예약 적용.
네트워크 백엔드, ML2/OVS 또는 ML2/SR-IOV는 규칙이 적용되는 각 포트에 지정된 네트워크 대역폭보다 작지 않도록 합니다.
리소스 할당 스케줄링 대역폭 적용을 사용하는 경우 Compute 서비스(nova)는 VM 인스턴스를 최소 대역폭을 지원하는 호스트에만 배치합니다.
네트워킹 서비스 백엔드 적용, 리소스 할당 스케줄링 적용 또는 둘 다 사용하여 QoS minumum 대역폭 규칙을 적용할 수 있습니다.
다음 표에서는 최소 대역폭 QoS 정책을 지원하는 Modular Layer 2(ML2) 메커니즘 드라이버를 식별합니다.
| ML2 메커니즘 드라이버 | agent | VNIC 유형 |
|---|---|---|
| ML2/SR-IOV | sriovnicswitch | direct |
| ML2/OVS | openvswitch | Normal |
9.3.1. 네트워킹 서비스 백엔드 적용을 사용하여 최소 대역폭 적용 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) QoS(서비스 품질) 정책을 포트에 적용하여 포트의 네트워크 트래픽의 최소 대역폭을 보장할 수 있습니다. 이러한 포트는 flat 또는 VLAN 실제 네트워크에서 지원해야 합니다.
현재 OVN(Open Virtual Network 메커니즘 드라이버)을 사용하는 Modular Layer 2 플러그인은 최소 대역폭 QoS 규칙을 지원하지 않습니다.
사전 요구 사항
-
RHOSP Networking 서비스(neutron)에
qos서비스 플러그인이 로드되어야 합니다. (기본값입니다.) 동일한 물리적 인터페이스에서 대역폭을 보장하지 않고 포트를 혼합하지 마십시오. 이로 인해 보장 없이 포트에 필요한 리소스 거부(sociation)가 발생할 수 있기 때문입니다.
작은 정보호스트 집계를 생성하여 대역폭 보장 없이 대역폭 보장이 있는 포트를 분리합니다.
절차
자격 증명 파일을 가져옵니다.
예제
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow qos서비스 플러그인이 Networking 서비스에 로드되었는지 확인합니다.openstack network qos policy list
$ openstack network qos policy listCopy to Clipboard Copied! Toggle word wrap Toggle overflow qos서비스 플러그인이 로드되지 않은 경우ResourceNotFound오류가 발생하고qos서비스 플러그인을 로드해야 합니다. 자세한 내용은 9.2절. “QoS 정책을 위한 네트워킹 서비스 구성”의 내용을 참조하십시오.QoS 정책을 생성할 프로젝트의 ID를 확인합니다.
openstack project list
$ openstack project listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 단계의 프로젝트 ID를 사용하여 프로젝트에 대한 QoS 정책을 생성합니다.
예제
이 예제에서는
admin프로젝트에 대해guaranteed_min_bw라는 QoS 정책이 생성됩니다.openstack network qos policy create --share \ --project 98a2f53c20ce4d50a40dac4a38016c69 guaranteed_min_bw
$ openstack network qos policy create --share \ --project 98a2f53c20ce4d50a40dac4a38016c69 guaranteed_min_bwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 정책에 대한 규칙을 구성합니다.
예제
이 예에서는
guaranteed_min_bw라는 정책에 대해 최소 대역폭40000000kbps를 사용하여 수신 및 송신에 대한 QoS 규칙이 생성됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 정책을 적용할 포트를 구성합니다.
예제
이 예에서
guaranteed_min_bw정책은 포트 ID인 kubevirtx9aiw1-2v74-144x-c2q8-ed8w423a6s12에 적용됩니다.openstack port set --qos-policy guaranteed_min_bw \ 56x9aiw1-2v74-144x-c2q8-ed8w423a6s12
$ openstack port set --qos-policy guaranteed_min_bw \ 56x9aiw1-2v74-144x-c2q8-ed8w423a6s12Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
ML2/SR-IOV
루트 액세스를 사용하여 컴퓨팅 노드에 로그인하고 물리적 기능에 있는 가상 기능의 세부 정보를 표시합니다.
예제
ip -details link show enp4s0f1
# ip -details link show enp4s0f1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ML2/OVS
루트 액세스를 사용하여 계산 노드에 로그인하고 물리 브리지 인터페이스의
tc규칙 및 클래스를 표시합니다.예제
tc class show dev mx-bond
# tc class show dev mx-bondCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
class htb 1:11 parent 1:fffe prio 0 rate 4Gbit ceil 34359Mbit burst 9000b cburst 8589b class htb 1:1 parent 1:fffe prio 0 rate 72Kbit ceil 34359Mbit burst 9063b cburst 8589b class htb 1:fffe root rate 34359Mbit ceil 34359Mbit burst 8589b cburst 8589b
class htb 1:11 parent 1:fffe prio 0 rate 4Gbit ceil 34359Mbit burst 9000b cburst 8589b class htb 1:1 parent 1:fffe prio 0 rate 72Kbit ceil 34359Mbit burst 9063b cburst 8589b class htb 1:fffe root rate 34359Mbit ceil 34359Mbit burst 8589b cburst 8589bCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.2. 최소 대역폭 QoS 정책을 사용하여 인스턴스 예약 링크 복사링크가 클립보드에 복사되었습니다!
최소 대역폭 QoS 정책을 포트에 적용하여 RHOSP(Red Hat OpenStack Platform) VM 인스턴스가 생성되는 호스트에 최소 네트워크 대역폭이 있는지 확인할 수 있습니다.
사전 요구 사항
-
RHOSP Networking 서비스(neutron)에는
qos및배치서비스 플러그인이 로드되어야 합니다.qos서비스 플러그인은 기본적으로 로드됩니다. 네트워킹 서비스에서 다음 API 확장을 지원해야 합니다.
-
agent-resources-synced -
port-resource-request -
qos-bw-minimum-ingress
-
- ML2/OVS 또는 ML2/SR-IOV 메커니즘 드라이버를 사용해야 합니다.
- 정책이 할당된 포트를 사용하는 인스턴스가 없는 경우에만 최소 대역폭 QoS 정책을 수정할 수 있습니다. 포트가 바인딩된 경우 네트워킹 서비스는 배치 API 사용 정보를 업데이트할 수 없습니다.
- 배치 서비스는 마이크로버전 1.29를 지원해야 합니다.
- Compute 서비스(nova)는 마이크로 버전 2.72를 지원해야 합니다.
절차
자격 증명 파일을 가져옵니다.
예제
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow qos서비스 플러그인이 Networking 서비스에 로드되었는지 확인합니다.openstack network qos policy list
$ openstack network qos policy listCopy to Clipboard Copied! Toggle word wrap Toggle overflow qos서비스 플러그인이 로드되지 않은 경우ResourceNotFound오류가 발생하고qos서비스 플러그인을 로드해야 합니다. 자세한 내용은 9.2절. “QoS 정책을 위한 네트워킹 서비스 구성”의 내용을 참조하십시오.QoS 정책을 생성할 프로젝트의 ID를 확인합니다.
openstack project list
$ openstack project listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 단계의 프로젝트 ID를 사용하여 프로젝트에 대한 QoS 정책을 생성합니다.
예제
이 예제에서는
admin프로젝트에 대해guaranteed_min_bw라는 QoS 정책이 생성됩니다.openstack network qos policy create --share \ --project 98a2f53c20ce4d50a40dac4a38016c69 guaranteed_min_bw
$ openstack network qos policy create --share \ --project 98a2f53c20ce4d50a40dac4a38016c69 guaranteed_min_bwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 정책에 대한 규칙을 구성합니다.
예제
이 예에서는
guaranteed_min_bw라는 정책에 대해 최소 대역폭40000000kbps를 사용하여 수신 및 송신에 대한 QoS 규칙이 생성됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 정책을 적용할 포트를 구성합니다.
예제
이 예에서
guaranteed_min_bw정책은 포트 ID인 kubevirtx9aiw1-2v74-144x-c2q8-ed8w423a6s12에 적용됩니다.openstack port set --qos-policy guaranteed_min_bw \ 56x9aiw1-2v74-144x-c2q8-ed8w423a6s12
$ openstack port set --qos-policy guaranteed_min_bw \ 56x9aiw1-2v74-144x-c2q8-ed8w423a6s12Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
- 언더클라우드 호스트에 stack 사용자로 로그인합니다.
언더클라우드 인증 정보 파일을 소싱합니다.
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용 가능한 모든 리소스 공급자를 나열합니다.
openstack --os-placement-api-version 1.17 resource provider list
$ openstack --os-placement-api-version 1.17 resource provider listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 리소스에서 제공하는 대역폭을 확인합니다.
openstack --os-placement-api-version 1.17 \ resource provider inventory list <rp_uuid>
(undercloud)$ openstack --os-placement-api-version 1.17 \ resource provider inventory list <rp_uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
이 예에서 호스트
dell-r730-014에서enp6s0f1인터페이스에 의해 제공되는 대역폭은 리소스 공급자 UUID,e518d381-d590-5767-8f34-c20def34b252를 사용하여 확인됩니다.openstack --os-placement-api-version 1.17 \ resource provider inventory list e518d381-d590-5767-8f34-c20def34b252
[stack@dell-r730-014 nova]$ openstack --os-placement-api-version 1.17 \ resource provider inventory list e518d381-d590-5767-8f34-c20def34b252Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인스턴스가 실행 중인 경우 리소스 공급자에 대한 클레임을 확인하려면 다음 명령을 실행합니다.
openstack --os-placement-api-version 1.17 \ resource provider show --allocations <rp_uuid>
(undercloud)$ openstack --os-placement-api-version 1.17 \ resource provider show --allocations <rp_uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
이 예에서 리소스 공급자에 대한 클레임은 리소스 공급자 UUID인
e518d381-d590-5767-8f34-c20defb252를 사용하여 호스트에서에서 확인됩니다.dell-r730-014openstack --os-placement-api-version 1.17 resource provider show --allocations e518d381-d590-5767-8f34-c20def34b252 -f value -c allocations
[stack@dell-r730-014 nova]$ openstack --os-placement-api-version 1.17 resource provider show --allocations e518d381-d590-5767-8f34-c20def34b252 -f value -c allocationsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
{3cbb9e07-90a8-4154-8acd-b6ec2f894a83: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, 8848b88b-4464-443f-bf33-5d4e49fd6204: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, 9a29e946-698b-4731-bc28-89368073be1a: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, a6c83b86-9139-4e98-9341-dc76065136cc: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 3000000, NET_BW_IGR_KILOBIT_PER_SEC: 3000000}}, da60e33f-156e-47be-a632-870172ec5483: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, eb582a0e-8274-4f21-9890-9a0d55114663: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 3000000, NET_BW_IGR_KILOBIT_PER_SEC: 3000000}}}{3cbb9e07-90a8-4154-8acd-b6ec2f894a83: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, 8848b88b-4464-443f-bf33-5d4e49fd6204: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, 9a29e946-698b-4731-bc28-89368073be1a: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, a6c83b86-9139-4e98-9341-dc76065136cc: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 3000000, NET_BW_IGR_KILOBIT_PER_SEC: 3000000}}, da60e33f-156e-47be-a632-870172ec5483: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, eb582a0e-8274-4f21-9890-9a0d55114663: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 3000000, NET_BW_IGR_KILOBIT_PER_SEC: 3000000}}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.4. QoS 정책을 사용하여 네트워크 트래픽 제한 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) Networking 서비스(neutron) QoS(서비스 품질) 정책을 생성하여 RHOSP 네트워크, 포트 또는 유동 IP의 대역폭을 제한하고 지정된 속도를 초과하는 모든 트래픽을 삭제할 수 있습니다.
사전 요구 사항
-
네트워킹 서비스에는
qos서비스 플러그인이 로드되어야 합니다.(기본적으로 플러그인이 로드됩니다.)
절차
자격 증명 파일을 가져옵니다.
예제
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow qos서비스 플러그인이 Networking 서비스에 로드되었는지 확인합니다.openstack network qos policy list
$ openstack network qos policy listCopy to Clipboard Copied! Toggle word wrap Toggle overflow qos서비스 플러그인이 로드되지 않은 경우ResourceNotFound오류가 발생하고qos서비스 플러그인을 로드해야 합니다. 자세한 내용은 9.2절. “QoS 정책을 위한 네트워킹 서비스 구성”의 내용을 참조하십시오.QoS 정책을 생성할 프로젝트의 ID를 확인합니다.
openstack project list
$ openstack project listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 단계의 프로젝트 ID를 사용하여 프로젝트에 대한 QoS 정책을 생성합니다.
예제
이 예에서는
admin프로젝트에 대해bw-limiter라는 QoS 정책이 생성됩니다.openstack network qos policy create --share --project 98a2f53c20ce4d50a40dac4a38016c69 bw-limiter
$ openstack network qos policy create --share --project 98a2f53c20ce4d50a40dac4a38016c69 bw-limiterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 정책에 대한 규칙을 구성합니다.
참고각 규칙의 유형 또는 방향이 다른 한 개 이상의 규칙을 정책에 추가할 수 있습니다. 예를 들어 송신과 수신 방향을 사용하여 대역폭 제한 규칙을 두 개 지정할 수 있습니다.
예제
이 예에서는 대역폭 제한이
kbps이고 최대 버스트 크기인50000bw-limiter라는 정책에 대해 QoS 수신 및 송신 규칙이 생성됩니다.openstack network qos rule create --type bandwidth-limit \ --max-kbps 50000 --max-burst-kbits 50000 --ingress bw-limiter openstack network qos rule create --type bandwidth-limit \ --max-kbps 50000 --max-burst-kbits 50000 --egress bw-limiter$ openstack network qos rule create --type bandwidth-limit \ --max-kbps 50000 --max-burst-kbits 50000 --ingress bw-limiter $ openstack network qos rule create --type bandwidth-limit \ --max-kbps 50000 --max-burst-kbits 50000 --egress bw-limiterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 정책이 연결된 포트를 생성하거나 정책을 기존 포트에 연결할 수 있습니다.
예 - 정책이 연결된 포트 생성
이 예에서 정책
bw-limiter는 포트port2와 연결되어 있습니다.openstack port create --qos-policy bw-limiter --network private port2
$ openstack port create --qos-policy bw-limiter --network private port2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 - 기존 포트에 정책 연결
이 예에서 정책
bw-limiter는port1과 연결됩니다.openstack port set --qos-policy bw-limiter port1
$ openstack port set --qos-policy bw-limiter port1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
bandwith 제한 정책이 포트에 적용되었는지 확인합니다.
정책 ID를 가져옵니다.
예제
이 예에서는 QoS 정책
bw-limiter를 쿼리합니다.openstack network qos policy show bw-limiter
$ openstack network qos policy show bw-limiterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 포트를 쿼리하고 정책 ID가 이전 단계에서 얻은 것과 일치하는지 확인합니다.
예제
이 예제에서는
port1을 쿼리합니다.openstack port show port1
$ openstack port show port1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5. DSCP 표시 QoS 정책을 사용하여 네트워크 트래픽 우선 순위 지정 링크 복사링크가 클립보드에 복사되었습니다!
별도의 서비스 코드 포인트(DSCP)를 사용하여 RHOSP(Red Hat OpenStack Platform) 네트워크에서 관련 값을 IP 헤더에 포함시켜 서비스 품질(QoS) 정책을 구현할 수 있습니다. RHOSP Networking 서비스(neutron) QoS 정책은 DSCP 표시를 사용하여 neutron 포트 및 네트워크에서 송신 트래픽만 관리할 수 있습니다.
사전 요구 사항
-
네트워킹 서비스에는
qos서비스 플러그인이 로드되어야 합니다. (기본값입니다.) - ML2/OVS 또는 ML2/OVN 메커니즘 드라이버를 사용해야 합니다.
절차
자격 증명 파일을 가져옵니다.
예제
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow qos서비스 플러그인이 Networking 서비스에 로드되었는지 확인합니다.openstack network qos policy list
$ openstack network qos policy listCopy to Clipboard Copied! Toggle word wrap Toggle overflow qos서비스 플러그인이 로드되지 않은 경우ResourceNotFound오류가 발생하고, 계속 진행하기 전에 네트워킹 서비스를 구성해야 합니다. 자세한 내용은 9.2절. “QoS 정책을 위한 네트워킹 서비스 구성”의 내용을 참조하십시오.QoS 정책을 생성할 프로젝트의 ID를 확인합니다.
openstack project list
$ openstack project listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 단계의 프로젝트 ID를 사용하여 프로젝트에 대한 QoS 정책을 생성합니다.
예제
이 예에서는
admin프로젝트에 대해qos-web-servers라는 QoS 정책이 생성됩니다.openstack network qos policy create --project 98a2f53c20ce4d50a40dac4a38016c69 qos-web-servers
openstack network qos policy create --project 98a2f53c20ce4d50a40dac4a38016c69 qos-web-serversCopy to Clipboard Copied! Toggle word wrap Toggle overflow DSCP 규칙을 생성하고 정책에 적용합니다.
예제
이 예에서 DSCP 규칙은 DSCP 마크
18을 사용하여 생성되며qos-web-servers정책에 적용됩니다.openstack network qos rule create --type dscp-marking --dscp-mark 18 qos-web-servers
openstack network qos rule create --type dscp-marking --dscp-mark 18 qos-web-serversCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 규칙에 할당된 DSCP 값을 변경할 수 있습니다.
예제
이 예에서,
qos-web-servers정책에서 DSCP 마크 값이 규칙d7f976ec-7fab-4e60-af70-f59bf88198e6에서 22로 변경됩니다.openstack network qos rule set --dscp-mark 22 qos-web-servers d7f976ec-7fab-4e60-af70-f59bf88198e6
$ openstack network qos rule set --dscp-mark 22 qos-web-servers d7f976ec-7fab-4e60-af70-f59bf88198e6Copy to Clipboard Copied! Toggle word wrap Toggle overflow DSCP 규칙을 삭제할 수 있습니다.
예제
이 예에서는
qos-web이 삭제됩니다.-servers정책에서 DSCP 규칙 d7f976ec-7fab-4e60-f59bf88198e6openstack network qos rule delete qos-web-servers d7f976ec-7fab-4e60-af70-f59bf88198e6
$ openstack network qos rule delete qos-web-servers d7f976ec-7fab-4e60-af70-f59bf88198e6Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
DSCP 규칙이 QoS 정책에 적용되었는지 확인합니다.
예제
이 예에서 DSCP 규칙
d7f976ec-7fab-4e60-af70-f59bf88198e6은 QoS 정책qos-web-servers에 적용됩니다.openstack network qos rule list qos-web-servers
$ openstack network qos rule list qos-web-serversCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
+-----------+--------------------------------------+ | dscp_mark | id | +-----------+--------------------------------------+ | 18 | d7f976ec-7fab-4e60-af70-f59bf88198e6 | +-----------+--------------------------------------+
+-----------+--------------------------------------+ | dscp_mark | id | +-----------+--------------------------------------+ | 18 | d7f976ec-7fab-4e60-af70-f59bf88198e6 | +-----------+--------------------------------------+Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.6. 네트워킹 서비스 RBAC를 사용하여 프로젝트에 QoS 정책 적용 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스(neutron)를 사용하면 QoS(Quality of Service) 정책에 대한 RBAC(역할 기반 액세스 제어)를 추가할 수 있습니다. 결과적으로 개별 프로젝트에 QoS 정책을 적용할 수 있습니다.
전제 조건
- 하나 이상의 QoS 정책을 사용할 수 있어야 합니다.
절차
특정 QoS 정책과 관련된 RHOSP 네트워킹 서비스 RBAC 정책을 생성하고 특정 프로젝트에 할당합니다.
openstack network rbac create --type qos_policy --target-project <project_name | project_ID> --action access_as_shared <QoS_policy_name | QoS_policy_ID>
$ openstack network rbac create --type qos_policy --target-project <project_name | project_ID> --action access_as_shared <QoS_policy_name | QoS_policy_ID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
예를 들어 우선순위가 낮은 네트워크 트래픽을 허용하는 QoS 정책이 있을 수 있습니다.
bw-limiter. RHOSP 네트워킹 서비스 RBAC 정책을 사용하여 특정 프로젝트에 QoS 정책을 적용할 수 있습니다.openstack network rbac create --type qos_policy --target-project 80bf5732752a41128e612fe615c886c6 --action access_as_shared bw-limiter
$ openstack network rbac create --type qos_policy --target-project 80bf5732752a41128e612fe615c886c6 --action access_as_shared bw-limiterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10장. 브릿지 매핑 구성 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform)에서 브리지 매핑은 물리적 네트워크 이름(인터페이스 레이블)을 Modular Layer 2 플러그인 메커니즘 드라이버 Open vSwitch(OVS) 또는 OVN(Open Virtual Network)으로 생성된 브릿지와 연결합니다. RHOSP Networking 서비스(neutron)는 브리지 매핑을 사용하여 공급자 네트워크 트래픽이 물리적 네트워크에 도달할 수 있도록 합니다.
이 섹션에 포함된 주제는 다음과 같습니다.
10.1. 브릿지 매핑 개요 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) Networking 서비스(neutron)에서 브리지 매핑을 사용하여 공급자 네트워크 트래픽이 물리적 네트워크에 도달할 수 있습니다. 트래픽은 라우터의 qg-xxx 인터페이스에서 공급자 네트워크를 떠나 중간 브리지(br-int)에 도착합니다.
데이터 경로의 다음 부분은 배포에서 사용하는 메커니즘 드라이버에 따라 다릅니다.
-
ML2/OVS:
br-int와br-ex간의 패치 포트를 사용하면 트래픽이 공급자 네트워크의 브리지를 통과하고 물리적 네트워크로 전달할 수 있습니다. - ML2/OVN: 네트워킹 서비스는 하이퍼바이저에 바인딩된 VM이 있고 VM에 포트가 필요한 경우에만 하이퍼바이저에 패치 포트를 생성합니다.
라우터가 예약된 네트워크 노드에서 브리지 매핑을 구성합니다. 라우터 트래픽은 프로바이더 네트워크에서 나타내는 올바른 물리적 네트워크를 사용하여 송신할 수 있습니다.
네트워킹 서비스는 각 물리적 네트워크에 대해 하나의 브리지만 지원합니다. 두 개 이상의 물리적 네트워크를 동일한 브리지에 매핑하지 마십시오.
10.2. 트래픽 흐름 링크 복사링크가 클립보드에 복사되었습니다!
각 외부 네트워크는 qg-xxx 포트에 태그가 지정된 내부 VLAN ID로 표시됩니다. 패킷이 phy-br-ex 에 도달하면 br-ex 포트는 VLAN 태그를 제거하고 패킷을 실제 인터페이스로 이동한 다음 외부 네트워크로 이동합니다.
외부 네트워크의 반환 패킷은 br-ex에 도착하고 패킷이 phy-br 로 이동합니다.-ex <-> int-br-ex를 사용하여 br-intbr-ex 를 br-int 로 통과하면 패킷의 외부 VLAN ID가 br-int 의 내부 VLAN 태그로 교체되고 qg-xxx 가 패킷을 수락할 수 있습니다.
송신 패킷의 경우 패킷의 내부 VLAN 태그는 br-ex 의 외부 VLAN 태그(또는 NeutronNetworkVLANRanges 매개변수에 정의된 외부 브리지)로 교체됩니다.
10.3. 브릿지 매핑 구성 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스(neutron)에서 프로바이더 네트워크 트래픽을 물리적 네트워크와 연결하는 데 사용하는 브릿지 매핑을 수정하려면 필요한 heat 매개변수를 수정하고 오버클라우드를 다시 배포합니다.
사전 요구 사항
-
stack사용자로 승격된 호스트에 액세스할 수 있어야 합니다. - 라우터가 예약된 네트워크 노드에서 브리지 매핑을 구성해야 합니다.
- 컴퓨팅 노드에 대한 브리지 매핑도 구성해야 합니다.
절차
- 언더클라우드 호스트에 stack 사용자로 로그인합니다.
언더클라우드 인증 정보 파일을 소싱합니다.
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 지정 YAML 환경 파일을 만듭니다.
예제
vi /home/stack/templates/my_bridge_mappings.yaml
$ vi /home/stack/templates/my_bridge_mappings.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 환경 파일에는
parameter_defaults키워드가 포함되어야 합니다.parameter_defaults키워드 다음에 해당 사이트에 적합한 값을 사용하여NeutronBridgeMappingsheat 매개변수를 추가합니다.예제
이 예에서
NeutronBridgeMappings매개변수는 물리적 이름,datacentre및테넌트, 브리지br-ex및br-tenant를 각각 연결합니다.parameter_defaults: NeutronBridgeMappings: "datacentre:br-ex,tenant:br-tenant"
parameter_defaults: NeutronBridgeMappings: "datacentre:br-ex,tenant:br-tenant"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고NeutronBridgeMappings매개변수를 사용하지 않는 경우 기본값은 호스트(br-ex)의 외부 브리지를 물리적 이름(datacentre)에 매핑합니다.flat 네트워크를 사용하는 경우
NeutronFlatNetworks매개변수를 사용하여 해당 이름을 추가합니다.예제
이 예에서 매개 변수는 물리적 이름
datacentre를br-ex브리지와 연결하고 물리 이름테넌트를 br-tenant와 연결합니다.parameter_defaults: NeutronBridgeMappings: "datacentre:br-ex,tenant:br-tenant" NeutronFlatNetworks: "my_flat_network"
parameter_defaults: NeutronBridgeMappings: "datacentre:br-ex,tenant:br-tenant" NeutronFlatNetworks: "my_flat_network"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고NeutronFlatNetworks매개변수를 사용하지 않으면 기본값은datacentre입니다.VLAN 네트워크를 사용하는 경우
NeutronNetworkVLANRanges매개변수를 사용하여 액세스하는 VLAN 범위와 함께 네트워크 이름을 지정합니다.예제
이 예에서
NeutronNetworkVLANRanges매개변수는테넌트네트워크에 대해 1~1000의 VLAN 범위를 지정합니다.parameter_defaults: NeutronBridgeMappings: "datacentre:br-ex,tenant:br-tenant" NeutronNetworkVLANRanges: "tenant:1:1000"
parameter_defaults: NeutronBridgeMappings: "datacentre:br-ex,tenant:br-tenant" NeutronNetworkVLANRanges: "tenant:1:1000"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배포 명령을 실행하고 코어 heat 템플릿, 환경 파일 및 이 새 사용자 지정 환경 파일을 포함합니다.
openstack overcloud deploy --templates \ -e <your_environment_files> \ -e /home/stack/templates/my_bridge_mappings.yaml
$ openstack overcloud deploy --templates \ -e <your_environment_files> \ -e /home/stack/templates/my_bridge_mappings.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 단계를 수행합니다.
- 네트워크 VLAN 범위를 사용하여 해당 외부 네트워크를 나타내는 프로바이더 네트워크를 만듭니다. ( neutron 프로바이더 네트워크 또는 유동 IP 네트워크를 만들 때 물리적 이름을 사용합니다.)
- 라우터 인터페이스를 사용하여 프로젝트 네트워크에 외부 네트워크를 연결합니다.
10.4. OVS에 대한 브리지 매핑 유지 관리 링크 복사링크가 클립보드에 복사되었습니다!
OVS 브리지 매핑을 제거한 후에는 후속 정리를 수행하여 브리지 구성이 연결된 패치 포트 항목으로 지워야 합니다. 다음 방법으로 이 작업을 수행할 수 있습니다.
- 수동 포트 정리 - 수퍼유저 패치 포트를 신중하게 제거해야 합니다. 네트워크 연결 중단이 필요하지 않습니다.
- 자동화된 포트 정리 - 자동화된 정리를 수행하지만 중단이 필요하며 필요한 브릿지 매핑을 다시 추가해야 합니다. 네트워크 연결 중단을 허용할 수 있는 경우 예약된 유지 관리 기간 동안 이 옵션을 선택합니다.
OVN 브리지 매핑이 제거되면 OVN 컨트롤러에서 연결된 패치 포트를 자동으로 정리합니다.
10.4.1. OVS 패치 포트 수동으로 정리 링크 복사링크가 클립보드에 복사되었습니다!
OVS 브리지 매핑을 제거한 후 연결된 패치 포트도 제거해야 합니다.
사전 요구 사항
- 정리 중인 패치 포트는 OVN(Open Virtual Switch) 포트여야 합니다.
- 수동 패치 포트 정리를 수행하는 데 시스템 중단이 필요하지 않습니다.
이름 지정 규칙에 따라 정리할 패치 포트를 식별할 수 있습니다.
-
br-$external_bridge패치 포트의 이름은phy-<external bridge name>(예: phy-br-ex2)입니다. -
br-int패치 포트의 이름은 int-<external bridge name>(예:int-br-ex2)입니다.
-
절차
ovs-vsctl을 사용하여 제거된 브리지 매핑 항목과 연결된 OVS 패치 포트를 제거합니다.ovs-vsctl del-port br-ex2 datacentre ovs-vsctl del-port br-tenant tenant
# ovs-vsctl del-port br-ex2 datacentre # ovs-vsctl del-port br-tenant tenantCopy to Clipboard Copied! Toggle word wrap Toggle overflow neutron-openvswitch-agent를 다시 시작하십시오.service neutron-openvswitch-agent restart
# service neutron-openvswitch-agent restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.2. OVS 패치 포트 자동 정리 링크 복사링크가 클립보드에 복사되었습니다!
OVS 브리지 매핑을 제거한 후 연결된 패치 포트도 제거해야 합니다.
OVN 브리지 매핑이 제거되면 OVN 컨트롤러에서 연결된 패치 포트를 자동으로 정리합니다.
사전 요구 사항
- 정리 중인 패치 포트는 OVN(Open Virtual Switch) 포트여야 합니다.
-
neutron-ovs-cleanup명령을 사용하여 패치 포트를 자동으로 정리하면 네트워크 연결이 중단되며 예약된 유지 관리 기간 동안만 수행해야 합니다. -
플래그
--ovs_all_ports를 사용하여br-int에서 모든 패치 포트를 제거하고,에서 터널 끝을 정리하며, 브리지에서 브리지로의 패치 포트를 사용합니다.br-tun -
neutron-ovs-cleanup명령은 모든 OVS 브리지에서 모든 패치 포트(인스턴스, qdhcp/qrouter)를 언플러그합니다.
절차
--명령을 실행합니다.ovs_all_ports 플래그를 사용하여 neutron-ovs-cleanup중요이 단계에 따라 네트워킹이 중단됩니다.
/usr/bin/neutron-ovs-cleanup --config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini --log-file /var/log/neutron/ovs-cleanup.log --ovs_all_ports
# /usr/bin/neutron-ovs-cleanup --config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini --log-file /var/log/neutron/ovs-cleanup.log --ovs_all_portsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Overcloud를 재배포하여 연결을 복원합니다.
openstack overcloud deploy명령을 다시 실행하면 브리지 매핑 값이 다시 적용됩니다.참고재시작 후 OVS 에이전트는 bridge_mappings에 없는 연결을 방해하지 않습니다. 따라서 br-
ex2에 연결된가 있고br-intbr-ex2에 일부 흐름이 있는 경우, OVS 에이전트 또는 노드를 다시 시작할 때 bridge_mappings 구성에서br-int를 제거해도 두 브리지의 연결이 끊어지지 않습니다.
11장. VLAN 인식 인스턴스 링크 복사링크가 클립보드에 복사되었습니다!
11.1. VLAN 트렁크 및 VLAN 투명 네트워크 링크 복사링크가 클립보드에 복사되었습니다!
인스턴스는 단일 가상 NIC를 통해 VLAN 태그가 지정된 트래픽을 보내고 받을 수 있습니다. 이 기능은 VLAN 태그가 지정된 트래픽을 예상하는 NFV 애플리케이션(VNF)에 특히 유용하므로 단일 가상 NIC가 여러 고객 또는 서비스를 제공할 수 있습니다.
ML2/OVN 배포에서는 VLAN 투명 네트워크를 사용하여 VLAN 인식 인스턴스를 지원할 수 있습니다. ML2/OVN 또는 ML2/OVS 배포의 대안으로 트렁크를 사용하여 VLAN 인식 인스턴스를 지원할 수 있습니다.
VLAN 투명한 네트워크에서 VM 인스턴스에 VLAN 태그를 설정합니다. VLAN 태그는 네트워크를 통해 전송되고 동일한 VLAN의 VM 인스턴스에서 사용하며 다른 인스턴스 및 장치에서 무시됩니다. VLAN 투명한 네트워크에서 VLAN은 VM 인스턴스에서 관리됩니다. OpenStack Networking 서비스(neutron)에서 VLAN을 설정할 필요가 없습니다.
VLAN 트렁크는 VLAN을 단일 트렁크 포트에 결합하여 VLAN 인식 인스턴스를 지원합니다. 예를 들어 프로젝트 데이터 네트워크는 VLAN 또는 터널링(VXLAN, GRE 또는 Geneve) 분할을 사용할 수 있으며 인스턴스에서 VLAN ID로 태그가 지정된 트래픽을 확인할 수 있습니다. 네트워크 패킷은 인스턴스에 삽입되기 직전에 태그가 지정되며 전체 네트워크 전체에서 태그를 지정할 필요가 없습니다.
다음 테이블에서는 VLAN 투명한 네트워크 및 VLAN 트렁크의 특정 기능을 비교합니다.
| 투명 (Transparent) | 트렁크 | |
|---|---|---|
| 메커니즘 드라이버 지원 | ML2/OVN | ML2/OVN, ML2/OVS |
| VLAN 설정에서 관리 | VM 인스턴스 | OpenStack Networking 서비스(neutron) |
| IP 할당 | VM 인스턴스에서 구성 | DHCP에서 할당 |
| VLAN ID | 유연함. 인스턴스에서 VLAN ID를 설정할 수 있습니다. | 고정되어 있습니다. 인스턴스에서 트렁크에 구성된 VLAN ID를 사용해야 합니다. |
11.2. ML2/OVN 배포에서 VLAN 투명성 활성화 링크 복사링크가 클립보드에 복사되었습니다!
VLAN 태그가 지정된 트래픽을 VM(가상 머신) 인스턴스 간에 보내야 하는 경우 VLAN 투명성을 활성화합니다. VLAN 투명한 네트워크에서 neutron에서 구성하지 않고 VM에서 직접 VLANS를 구성할 수 있습니다.
사전 요구 사항
- ML2/OVN을 메커니즘 드라이버로 사용하여 Red Hat OpenStack Platform 16.1 이상을 배포합니다.
- VLAN 또는 Geneve 유형의 프로바이더 네트워크. 플랫 유형 공급자 네트워크를 사용한 배포에 VLAN 투명성을 사용하지 마십시오.
- 외부 스위치가 두 VLAN에서 ethertype 0x8100을 사용하여 802.1q VLAN 스태킹을 지원하는지 확인합니다. OVN VLAN 투명성은 외부 프로바이더 VLAN 이더넷이 0x88A8 또는 0x9100으로 설정된 802.1ad QinQ를 지원하지 않습니다.
절차
언더클라우드 노드의 환경 파일에서
EnableVLANTransparency매개변수를True로 설정합니다. 예를 들어 다음 행을 ovn-extras.yaml에 추가합니다.parameter_defaults: EnableVLANTransparency: Trueparameter_defaults: EnableVLANTransparency: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 환경과 관련된 기타 환경 파일과 함께
openstack overcloud deploy명령에 환경 파일을 포함하고 오버클라우드를 배포합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow <other_overcloud_environment_files>를 기존 배포에 포함된 환경 파일 목록으로 바꿉니다.네트워크를 만듭니다. 다음 예와 같이
--transparent-vlan인수를 사용합니다.예제
openstack network create network-name --transparent-vlan
$ openstack network create network-name --transparent-vlanCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참여하는 각 VM에 VLAN 인터페이스를 설정합니다. VLAN 투명성에 필요한 추가 태그 지정을 수용하려면 인터페이스 MTU를 underlay 네트워크의 MTU보다 4바이트 미만으로 설정합니다. 예를 들어, underlay 네트워크 MTU가 1500인 경우 인터페이스 MTU를 1496로 설정합니다.
다음 예제 명령은 eth0에 MTU가 1496인 VLAN 인터페이스를 추가합니다. VLAN은 50이고 인터페이스 이름은 vlan50입니다.
예제
ip link add link eth0 name vlan50 type vlan id 50 mtu 1496 ip link set vlan50 up ip addr add 192.128.111.3/24 dev vlan50
ip link add link eth0 name vlan50 type vlan id 50 mtu 1496 ip link set vlan50 up ip addr add 192.128.111.3/24 dev vlan50Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
- vlan50 IP 주소를 사용하여 VLAN에서 두 VM 간에 ping합니다.
- eth0에서 tcpdump를 사용하여 패킷이 VLAN 태그가 그대로 도착하는지 확인합니다.
11.3. trunk 플러그인 검토 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat openStack 배포 중에 trunk 플러그인은 기본적으로 활성화됩니다. 컨트롤러 노드의 구성을 검토할 수 있습니다.
컨트롤러 노드에서 /var/lib/config-data/neutron/etc/neutron/neutron.conf 파일에서 trunk 플러그인이 활성화되어 있는지 확인합니다.
service_plugins=router,qos,trunk
service_plugins=router,qos,trunkCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.4. 트렁크 연결 생성 링크 복사링크가 클립보드에 복사되었습니다!
VLAN 태그 지정된 트래픽에 대한 트렁크를 구현하려면 상위 포트를 생성하고 기존 neutron 네트워크에 새 포트를 연결합니다. 새 포트를 연결하면 OpenStack Networking에서 생성한 상위 포트에 트렁크 연결을 추가합니다. 그런 다음 하위 포트를 만듭니다. 이러한 하위 포트는 VLAN을 인스턴스에 연결하여 트렁크에 연결할 수 있습니다. 인스턴스 운영 체제 내에서 하위 포트와 연결된 VLAN의 트래픽에 태그를 지정하는 하위 인터페이스를 생성해야 합니다.
트렁크된 VLAN에 액세스해야 하는 인스턴스가 포함된 네트워크를 식별합니다. 이 예제에서는 공용 네트워크입니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 상위 트렁크 포트를 만들어 인스턴스가 연결되는 네트워크에 연결합니다. 이 예에서는 공용 네트워크에 parent-trunk-port라는 neutron 포트를 만듭니다. 이 트렁크는 상위 포트입니다. 이를 사용하여 하위 포트를 생성할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 2단계에서 생성한 포트를 사용하여 트렁크를 생성합니다. 이 예에서 트렁크의 이름은
parent-trunk입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 트렁크 연결을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 트렁크 연결 세부 정보를 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.5. 트렁크에 하위 포트 추가 링크 복사링크가 클립보드에 복사되었습니다!
neutron 포트를 만듭니다.
이 포트는 트렁크에 대한 하위 포트 연결입니다. 또한 상위 포트에 할당한 MAC 주소를 지정해야 합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고오류가 발생하면
HttpException: conflict, 다른 네트워크에서 상위 트렁크 포트가 있는 포트에 하위 포트를 생성 중인지 확인합니다. 이 예에서는 상위 트렁크 포트에 공용 네트워크를 사용하고 하위 포트에 private 네트워크를 사용합니다.포트를 trunk(
parent-trunk)과 연결하고 VLAN ID(55)를 지정합니다.openstack network trunk set --subport port=subport-trunk-port,segmentation-type=vlan,segmentation-id=55 parent-trunk
openstack network trunk set --subport port=subport-trunk-port,segmentation-type=vlan,segmentation-id=55 parent-trunkCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.6. 트렁크를 사용하도록 인스턴스 구성 링크 복사링크가 클립보드에 복사되었습니다!
하위 포트에 할당된 RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스(neutron)의 MAC 주소를 사용하도록 VM 인스턴스 운영 체제를 구성해야 합니다. 하위 포트 생성 단계에서 특정 MAC 주소를 사용하도록 하위 포트를 구성할 수도 있습니다.
사전 요구 사항
컴퓨팅 노드의 실시간 마이그레이션을 수행하는 경우 RHOSP 네트워킹 서비스 RPC 응답 타임아웃이 RHOSP 배포에 적절하게 설정되어 있는지 확인합니다. RPC 응답 시간 초과 값은 사이트마다 다를 수 있으며 시스템 속도에 따라 달라집니다. 일반적인 권장 사항은 값을 트렁크 포트당 120초 이상으로 설정하는 것입니다.
RHOSP 배포의 트렁크 포트 바인딩 프로세스를 측정한 다음 RHOSP Networking 서비스 RPC 응답 타임아웃을 적절하게 설정하는 것이 좋습니다. RPC 응답 시간 초과 값을 낮게 유지하려고 하지만 RHOSP 네트워킹 서비스에서 RPC 응답을 받을 수 있는 충분한 시간도 제공합니다. 자세한 내용은 11.7절. “네트워킹 서비스 RPC 타임아웃 구성”의 내용을 참조하십시오.
절차
네트워크 트렁크
명령을사용하여 네트워크 트렁크의 구성을 검토합니다.예제
openstack network trunk list
$ openstack network trunk listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
openstack network trunk show parent-trunk
$ openstack network trunk show parent-trunkCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 상위
port-id를 vNIC로 사용하는 인스턴스를 생성합니다.예제
openstack server create --image cirros --flavor m1.tiny --security-group default --key-name sshaccess --nic port-id=20b6fdf8-0d43-475a-a0f1-ec8f757a4a39 testInstance
openstack server create --image cirros --flavor m1.tiny --security-group default --key-name sshaccess --nic port-id=20b6fdf8-0d43-475a-a0f1-ec8f757a4a39 testInstanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.7. 네트워킹 서비스 RPC 타임아웃 구성 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) Networking 서비스(neutron) RPC 응답 타임아웃을 수정해야 하는 경우가 있을 수 있습니다. 예를 들어 시간 초과 값이 너무 작으면 트렁크 포트를 사용하는 컴퓨팅 노드의 실시간 마이그레이션이 실패할 수 있습니다.
RPC 응답 시간 초과 값은 사이트마다 다를 수 있으며 시스템 속도에 따라 달라집니다. 일반적인 권장 사항은 값을 트렁크 포트당 120초 이상으로 설정하는 것입니다.
사이트에서 트렁크 포트를 사용하는 경우 가장 좋은 방법은 RHOSP 배포의 트렁크 포트 바인딩 프로세스 시간을 측정한 다음 RHOSP Networking 서비스 RPC 응답 타임아웃을 적절하게 설정하는 것입니다. RPC 응답 시간 초과 값을 낮게 유지하려고 하지만 RHOSP 네트워킹 서비스에서 RPC 응답을 받을 수 있는 충분한 시간도 제공합니다.
수동 hieradata 덮어쓰기 rpc_response_timeout 을 사용하면 RHOSP 네트워킹 서비스의 RPC 응답 시간 초과 값을 설정할 수 있습니다.
절차
Undercloud 호스트에서 stack 사용자로 로그인한 사용자 지정 YAML 환경 파일을 만듭니다.
예제
vi /home/stack/templates/my-modules-environment.yaml
$ vi /home/stack/templates/my-modules-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보RHOSP Orchestration 서비스(heat)에서는 템플릿 이라는 플랜 세트를 사용하여 환경을 설치하고 구성합니다. heat 템플릿에 대한 사용자 지정을 제공하는 특수 유형의 템플릿 파일인 사용자 지정 환경 파일을 사용하여 오버클라우드의 특정 부분을 사용자 지정할 수 있습니다.
ExtraConfig의 YAML 환경 파일에서rpc_response_timeout에 적절한 값(초)을 설정합니다. (기본값은 60초입니다.)예제
parameter_defaults: ExtraConfig: neutron::rpc_response_timeout: 120parameter_defaults: ExtraConfig: neutron::rpc_response_timeout: 120Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고RHOSP Orchestration 서비스(heat)는 사용자 정의 환경 파일에 설정한 값으로 모든 RHOSP 노드를 업데이트하지만 이 값은 RHOSP 네트워킹 구성 요소에만 영향을 미칩니다.
openstack overcloud deploy명령을 실행하고 코어 heat 템플릿, 환경 파일 및 이 새 사용자 지정 환경 파일을 포함합니다.중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하므로 환경 파일의 순서가 중요합니다.
예제
openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-modules-environment.yaml
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-modules-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.8. 트렁크 상태 이해 링크 복사링크가 클립보드에 복사되었습니다!
-
활성: 트렁크가 예상대로 작동하고 현재 요청이 없습니다. -
DOWN: 트렁크의 가상 및 실제 리소스가 동기화되지 않습니다. 이는 협상 중에 임시 상태일 수 있습니다. -
BUILD: 요청이 있고 리소스가 프로비저닝 중입니다. 성공적으로 완료되면 트렁크가ACTIVE로 돌아갑니다. -
DEGRADED: 배포 요청이 완료되지 않았으므로 트렁크가 부분적으로만 프로비저닝되었습니다. 하위 포트를 제거하고 다시 시도하는 것이 좋습니다. -
ERROR: 배포 요청이 실패했습니다. 오류로 트렁크를 되돌려주는 리소스를 제거합니다.ERROR상태에서는 하위 포트를 더 추가하지 마십시오. 이로 인해 더 많은 문제가 발생할 수 있기 때문입니다.
12장. RBAC 정책 구성 링크 복사링크가 클립보드에 복사되었습니다!
12.1. RBAC 정책 개요 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack Networking의 역할 기반 액세스 제어(RBAC) 정책을 통해 공유 Neutron 네트워크를 세부적으로 제어할 수 있습니다. OpenStack Networking에서는 RBAC 테이블을 사용하여 프로젝트 간 Neutron 네트워크 공유를 제어하므로 관리자가 네트워크에 인스턴스를 연결할 수 있는 권한이 부여된 프로젝트를 제어할 수 있습니다.
따라서 클라우드 관리자는 일부 프로젝트에서 네트워크를 생성하는 기능을 제거할 수 있으며 대신 해당 프로젝트에 해당하는 기존 네트워크에 연결할 수 있습니다.
12.2. RBAC 정책 생성 링크 복사링크가 클립보드에 복사되었습니다!
이 예제 절차에서는 역할 기반 액세스 제어(RBAC) 정책을 사용하여 공유 네트워크에 대한 프로젝트 액세스 권한을 부여하는 방법을 설명합니다.
사용 가능한 네트워크 목록을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 프로젝트 목록을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow auditors 프로젝트 (4b0b98f8c040f38ba4f7146e8680f5)에 대한 액세스 권한을 부여하는
web-servers네트워크에 대한 RBAC 항목을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
결과적으로 auditors 프로젝트의 사용자는 인스턴스를 web-servers 네트워크에 연결할 수 있습니다.
12.3. RBAC 정책 검토 링크 복사링크가 클립보드에 복사되었습니다!
openstack network rbac list명령을 실행하여 기존 역할 기반 액세스 제어(RBAC) 정책의 ID를 검색합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack network rbac-show명령을 실행하여 특정 RBAC 항목의 세부 정보를 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.4. RBAC 정책 삭제 링크 복사링크가 클립보드에 복사되었습니다!
openstack network rbac list명령을 실행하여 기존 역할 기반 액세스 제어(RBAC) 정책의 ID를 검색합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 삭제하려는 RBAC의 ID를 사용하여
openstack network rbac delete명령을 실행하여 RBAC를 삭제합니다.openstack network rbac delete 314004d0-2261-4d5e-bda7-0181fcf40709 Deleted rbac_policy: 314004d0-2261-4d5e-bda7-0181fcf40709
# openstack network rbac delete 314004d0-2261-4d5e-bda7-0181fcf40709 Deleted rbac_policy: 314004d0-2261-4d5e-bda7-0181fcf40709Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.5. 외부 네트워크에 대한 RBAC 정책 액세스 권한 부여 링크 복사링크가 클립보드에 복사되었습니다!
--action access_as_external 매개 변수를 사용하여 외부 네트워크에 대한 RBAC(역할 기반 액세스 제어) 정책 액세스(게이트웨이 인터페이스가 연결된 네트워크)에 액세스할 수 있습니다.
웹 서버 네트워크에 대한 RBAC를 생성하고 엔지니어링 프로젝트(c717f263785d4679b16a122516247deb)에 대한 액세스 권한을 부여하려면 다음 예제 절차의 단계를 완료합니다.
--action access_as_external옵션을 사용하여 새 RBAC 정책을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 결과적으로 Engineering 프로젝트의 사용자는 네트워크를 보거나 인스턴스를 연결할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13장. DVR(Distributed Virtual routing) 구성 링크 복사링크가 클립보드에 복사되었습니다!
13.1. DVR(Distributed Virtual routing) 이해 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform을 배포할 때 중앙 집중식 라우팅 모델이나 DVR 중에서 선택할 수 있습니다.
각 모델에는 장단점이 있습니다. 이 문서를 사용하여 중앙 집중식 라우팅 또는 DVR이 요구 사항에 더 잘 맞는지 여부를 신중하게 계획하십시오.
새로운 기본 RHOSP 배포에서는 Open Virtual Network 메커니즘 드라이버(ML2/OVN)와 함께 DVR 및 Modular Layer 2 플러그인을 사용합니다.
DVR은 ML2/OVS 배포에서 기본적으로 비활성화되어 있습니다.
13.1.1. 계층 3 라우팅 개요 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform Networking 서비스(neutron)는 프로젝트 네트워크에 대한 라우팅 서비스를 제공합니다. 라우터가 없으면 프로젝트 네트워크의 VM 인스턴스가 공유 L2 브로드캐스트 도메인을 통해 다른 인스턴스와 통신할 수 있습니다. 라우터를 만들고 프로젝트 네트워크에 할당하면 해당 네트워크의 인스턴스가 다른 프로젝트 네트워크 또는 업스트림과 통신할 수 있습니다(라우터에 대해 외부 게이트웨이가 정의된 경우).
13.1.2. 라우팅 흐름 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform)의 라우팅 서비스는 세 가지 주요 흐름으로 분류할 수 있습니다.
- East-West 라우팅 - 동일한 프로젝트에서 서로 다른 네트워크 간 트래픽 라우팅. 이 트래픽은 OpenStack 배포를 그대로 두지 않습니다. 이 정의는 IPv4 및 IPv6 서브넷 모두에 적용됩니다.
- 유동 IP를 사용한 북남 라우팅 - 유동 IP 주소 지정은 수정할 수 있고 인스턴스 간에 유동적인 일대일 NAT입니다. 유동 IP는 유동 IP와 Neutron 포트 간의 일대일 연결로 모델링되지만 NAT 변환을 수행하는 neutron 라우터와 연결하여 구현됩니다. 유동 IP 자체는 라우터에 외부 연결을 제공하는 uplink 네트워크에서 가져옵니다. 따라서 인스턴스는 외부 리소스(예: 인터넷의 끝점) 또는 다른 방법과 통신할 수 있습니다. 유동 IP는 IPv4 개념이며 IPv6에는 적용되지 않습니다. 프로젝트에서 사용하는 IPv6 주소 지정은 프로젝트 전체에 겹치지 않고 GUA(Global Unicast Addresses)를 사용하므로 NAT 없이 라우팅할 수 있습니다.
- 유동 IP( SNAT라고도 함)가 없는 North-South 라우팅 - 네트워킹 서비스는 유동 IP가 할당되지 않은 인스턴스에 대한 기본 포트 주소 변환(PAT) 서비스를 제공합니다. 이 서비스를 사용하면 인스턴스가 라우터를 통해 외부 엔드포인트와 통신할 수 있지만 다른 방법으로는 통신할 수 없습니다. 예를 들어 인스턴스는 인터넷에서 웹 사이트를 검색할 수 있지만 외부의 웹 브라우저는 인스턴스 내에서 호스팅되는 웹 사이트를 검색할 수 없습니다. SNAT는 IPv4 트래픽에만 적용됩니다. 또한 GUAs 접두사가 할당된 네트워킹 서비스 네트워크에는 네트워킹 서비스 라우터 외부 게이트웨이 포트에 NAT가 필요하지 않습니다.
13.1.3. 중앙 집중식 라우팅 링크 복사링크가 클립보드에 복사되었습니다!
원래 네트워킹 서비스(neutron)는 Neutron L3 에이전트가 관리하는 프로젝트의 가상 라우터가 모두 전용 노드 또는 노드(네트워크 노드 또는 컨트롤러 노드라고 함)에 배포되는 중앙 집중식 라우팅 모델로 설계되었습니다. 즉 라우팅 기능이 필요할 때마다(동부/서부 IP 또는 SNAT) 트래픽이 토폴로지의 전용 노드를 통과합니다. 이로 인해 여러 과제가 발생했고 차선의 트래픽 흐름이 발생했습니다. 예를 들면 다음과 같습니다.
- 인스턴스 간 트래픽이 컨트롤러 노드를 통과합니다. L3를 사용하여 두 인스턴스가 서로 통신해야 하는 경우 트래픽이 컨트롤러 노드에 도달해야 합니다. 인스턴스가 동일한 컴퓨팅 노드에 예약되어 있더라도 트래픽은 여전히 컴퓨팅 노드를 종료하고 컨트롤러를 통과하며 컴퓨팅 노드로 다시 라우팅해야 합니다. 이는 성능에 부정적인 영향을 미칩니다.
- 유동 IP가 있는 인스턴스는 컨트롤러 노드를 통해 패킷을 수신하고 전송합니다. 외부 네트워크 게이트웨이 인터페이스는 컨트롤러 노드에서만 사용할 수 있으므로 트래픽이 인스턴스에서 발생하거나 외부 네트워크에서 인스턴스로 향하든 컨트롤러 노드를 통과해야 합니다. 결과적으로 대규모 환경에서 컨트롤러 노드는 트래픽 로드가 많은 영향을 받습니다. 이 경우 성능과 확장성에 영향을 줄 수 있으며 외부 네트워크 게이트웨이 인터페이스에서 대역폭을 충분히 수용하기 위한 신중한 계획이 필요합니다. SNAT 트래픽에 동일한 요구 사항이 적용됩니다.
L3 에이전트를 더 잘 확장하기 위해 네트워킹 서비스는 L3 HA 기능을 사용하여 여러 노드에 가상 라우터를 배포할 수 있습니다. 컨트롤러 노드가 손실된 경우 HA 라우터는 다른 노드의 대기 모드로 장애 조치를 수행하며 HA 라우터 페일오버가 완료될 때까지 패킷 손실이 발생합니다.
13.2. DVR 개요 링크 복사링크가 클립보드에 복사되었습니다!
배포된 가상 라우팅(DVR)은 대체 라우팅 설계를 제공합니다. DVR은 컨트롤러 노드의 장애 도메인을 격리하고 L3 에이전트를 배포하고 모든 컴퓨팅 노드에 라우터를 예약하여 네트워크 트래픽을 최적화합니다. DVR에는 이러한 특성이 있습니다.
- East-West 트래픽은 분산 방식으로 컴퓨팅 노드에 직접 라우팅됩니다.
- 유동 IP를 사용한 North-South 트래픽이 계산 노드에 배포되고 라우팅됩니다. 이를 위해서는 외부 네트워크를 모든 컴퓨팅 노드에 연결해야 합니다.
- 유동 IP가 없는 North-South 트래픽은 분산되지 않으며 전용 컨트롤러 노드가 필요합니다.
-
노드가 SNAT 트래픽만 제공하도록 컨트롤러 노드의 L3 에이전트는
dvr_snat모드를 사용합니다. - neutron 메타데이터 에이전트는 모든 계산 노드에 배포되고 배포됩니다. 메타데이터 프록시 서비스는 모든 분산 라우터에서 호스팅됩니다.
13.3. DVR 알려진 문제 및 주의 사항 링크 복사링크가 클립보드에 복사되었습니다!
- DVR에 대한 지원은 ML2 코어 플러그인 및 OVS(Open vSwitch) 메커니즘 드라이버 또는 ML2/OVN 메커니즘 드라이버로 제한됩니다. 다른 백엔드는 지원되지 않습니다.
- ML2/OVS DVR 배포에서 Red Hat OpenStack Platform 로드 밸런싱 서비스(octavia)에 대한 네트워크 트래픽은 컴퓨팅 노드 대신 컨트롤러 및 네트워크 노드를 통과합니다.
ML2/OVS 메커니즘 드라이버 네트워크 백엔드 및 DVR을 사용하면 VIP를 생성할 수 있습니다. 그러나
allowed_address_cidrs를 사용하여 바인딩된 포트에 할당된 IP 주소는 가상 포트 IP 주소(/32)와 일치해야 합니다.대신바인딩된 포트에 CIDR 형식 IP 주소를 사용하는 경우 포트 전달은 백엔드에 구성되지 않으며 바인딩된 IP 포트에 도달하는 데 필요한 CIDR의 모든 IP에 대한 트래픽이 실패합니다.- DVR이 활성화된 경우에도 SNAT(소스 네트워크 주소 변환) 트래픽이 분산되지 않습니다. SNAT는 작동하지만 모든 수신/ 송신 트래픽은 중앙 집중식 컨트롤러 노드를 통과해야 합니다.
ML2/OVS 배포에서는 DVR이 활성화된 경우에도 IPv6 트래픽이 분산되지 않습니다. 모든 수신/ 송신 트래픽은 중앙 집중식 컨트롤러 노드를 통과합니다. ML2/OVS와 함께 IPv6 라우팅을 광범위하게 사용하는 경우 DVR을 사용하지 마십시오.
ML2/OVN 배포에서는 모든 east/west 트래픽이 항상 분산되며 DVR이 구성되면 North/south 트래픽이 분산됩니다.
-
ML2/OVS 배포에서 DVR은 L3 HA와 함께 지원되지 않습니다. Red Hat OpenStack Platform 16.1 director와 함께 DVR을 사용하면 L3 HA가 비활성화됩니다. 즉, 네트워크 노드(및 L3 에이전트 간 부하 공유)에 라우터가 예약되지만 하나의 에이전트가 실패하면 이 에이전트에서 호스팅하는 모든 라우터도 실패합니다. 이는 SNAT 트래픽에만 영향을 미칩니다. 이러한 경우
allow_automatic_l3agent_failover기능을 사용하는 것이 좋습니다. 이 경우 하나의 네트워크 노드가 실패하면 라우터를 다른 노드로 다시 스케줄링할 수 있습니다. - neutron DHCP 에이전트에서 관리하는 DHCP 서버는 분산되지 않으며 여전히 컨트롤러 노드에 배포됩니다. DHCP 에이전트는 라우팅 설계(중앙화 또는 DVR)에 관계없이 컨트롤러 노드의 고가용성 구성에 배포됩니다.
- 컴퓨팅 노드에는 외부 브리지에 연결된 외부 네트워크의 인터페이스가 필요합니다. 이 인터페이스를 사용하여 외부 라우터 게이트웨이의 VLAN 또는 플랫 네트워크에 연결하고, 유동 IP를 호스트하고, 유동 IP를 사용하는 VM에 SNAT를 수행합니다.
- ML2/OVS 배포에서 각 컴퓨팅 노드에는 추가 IP 주소가 필요합니다. 이는 외부 게이트웨이 포트 및 유동 IP 네트워크 네임스페이스를 구현하기 때문입니다.
- 프로젝트 데이터 분리에는 VLAN, GRE, VXLAN이 모두 지원됩니다. GRE 또는 VXLAN을 사용하는 경우 L2 채우기 기능을 활성화해야 합니다. Red Hat OpenStack Platform director는 설치하는 동안 L2 채우기를 적용합니다.
13.4. 지원되는 라우팅 아키텍처 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform)는 나열된 RHOSP 버전에서 중앙 집중식 고가용성(HA) 라우팅 및 분산 가상 라우팅(DVR)을 모두 지원합니다.
- RHOSP 중앙 집중식 HA 라우팅 지원이 RHOSP 8에서 시작되었습니다.
- RHOSP 12에서 RHOSP 분산 라우팅 지원이 시작되었습니다.
13.5. ML2 OVS를 사용하여 DVR 배포 링크 복사링크가 클립보드에 복사되었습니다!
ML2/OVS 배포에서 DVR(분산 가상 라우팅)을 배포하고 관리하려면 heat 템플릿 및 환경 파일에서 설정을 구성합니다.
heat 템플릿 설정을 사용하여 호스트 네트워킹을 프로비저닝합니다.
- Compute 및 Controller 노드 둘 다에서 외부 네트워크 트래픽에 대해 실제 네트워크에 연결된 인터페이스를 구성합니다.
- 외부 네트워크 트래픽용 인터페이스를 사용하여 계산 및 컨트롤러 노드에 브리지를 만듭니다.
또한 프로비저닝된 네트워킹 환경과 일치하도록 Networking 서비스(neutron)를 구성하고 해당 브릿지를 사용하도록 트래픽을 허용합니다.
기본 설정은 지침으로만 제공됩니다. 네트워크 격리, 전용 NIC 또는 기타 여러 변수 요인에 대한 사용자 지정이 필요할 수 있는 프로덕션 또는 테스트 환경에서는 작동하지 않습니다. 환경을 설정할 때는 L2 에이전트에서 사용하는 브리지 매핑 유형 매개 변수와 L3 에이전트와 같은 기타 에이전트의 외부 브리지를 올바르게 구성해야 합니다.
다음 예제 절차에서는 일반적인 기본값을 사용하여 개념 증명 환경을 구성하는 방법을 보여줍니다.
절차
OS::TripleO::Compute::Net::SoftwareConfig의 값이 파일 overcloud-resource-registry.yaml 또는 배포 명령에 포함된 환경 파일의OS::TripleO::Controller::Net::SoftwareConfig값과 일치하는지 확인합니다.이 값은 net_config_bridge.yaml 과 같은 파일의 이름을 지정합니다. 명명된 파일은 외부 네트워크 컴퓨팅 노드 L2 에이전트에 대한 Neutron 브리지 매핑을 구성합니다. 브리지는 DVR 배포의 컴퓨팅 노드에 호스팅된 유동 IP 주소의 트래픽을 라우팅합니다. 일반적으로 이 파일 이름 값은 environments/net-multiple-nics.yaml 과 같이 오버클라우드를 배포할 때 사용하는 네트워크 환경 파일에서 찾을 수 있습니다.
참고컴퓨팅 노드의 네트워크 구성을 사용자 지정하는 경우 대신 사용자 지정 파일에 적절한 구성을 추가해야 할 수 있습니다.
계산 노드에 외부 브리지가 있는지 확인합니다.
-
openstack-tripleo-heat-templates디렉터리의 로컬 복사본을 만듭니다. -
$ cd <local_copy_of_templates_directory. process-templates스크립트를 실행하여 템플릿을 임시 출력 디렉터리에 렌더링합니다../tools/process-templates.py -r <roles_data.yaml> \ -n <network_data.yaml> -o <temporary_output_directory>
$ ./tools/process-templates.py -r <roles_data.yaml> \ -n <network_data.yaml> -o <temporary_output_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<temporary_output_directory>/network/config에서 역할 파일을 확인합니다.
-
-
필요한 경우 컨트롤러 노드와 일치하는 외부 브리지를 포함하도록 계산 템플릿을 사용자 지정하고 환경 파일의
OS::TripleO::Compute::Net::SoftwareConfig에 사용자 지정 파일 경로 이름을 지정합니다. 오버클라우드를 배포할 때 배포 명령에 environments/services/neutron-ovs-dvr.yaml 파일을 포함합니다.
openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs-dvr.yaml
$ openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs-dvr.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow L3 HA가 비활성화되었는지 확인합니다.
참고L3 에이전트의 외부 브리지 구성은 Red Hat OpenStack Platform 13에서 더 이상 사용되지 않으며 Red Hat OpenStack Platform 15에서 제거되었습니다.
13.6. 중앙 집중식 라우터를 분산 라우팅으로 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 L3 HA 중앙 집중식 라우팅을 사용하는 Red Hat OpenStack Platform 배포를 위한 분산 라우팅으로 업그레이드하는 방법에 대해 설명합니다.
절차
- 배포를 업그레이드하고 올바르게 작동하는지 확인합니다.
- director 스택 업데이트를 실행하여 DVR을 구성합니다.
- 기존 라우터를 통해 라우팅이 올바르게 작동하는지 확인합니다.
L3 HA 라우터를 직접 배포 하도록 전환할 수 없습니다. 대신 각 라우터에 대해 L3 HA 옵션을 비활성화한 다음 분산 옵션을 활성화합니다.
라우터를 비활성화합니다.
예제
openstack router set --disable router1
$ openstack router set --disable router1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 고가용성 지우기:
예제
openstack router set --no-ha router1
$ openstack router set --no-ha router1Copy to Clipboard Copied! Toggle word wrap Toggle overflow DVR을 사용하도록 라우터를 구성합니다.
예제
openstack router set --distributed router1
$ openstack router set --distributed router1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 라우터를 활성화합니다.
예제
openstack router set --enable router1
$ openstack router set --enable router1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 분산 라우팅이 올바르게 작동하는지 확인합니다.
13.7. DVR(분산 가상 라우팅)을 비활성화한 상태에서 ML2/OVN OpenStack 배포 링크 복사링크가 클립보드에 복사되었습니다!
새로운 RHOSP(Red Hat OpenStack Platform) 배포는 ML2/OVN(Open Virtual Network 메커니즘 드라이버) 및 DVR을 사용하여 Neutron 모듈식 계층 2 플러그인에 기본 설정됩니다.
DVR 토폴로지에서 유동 IP 주소가 있는 계산 노드는 가상 시스템 인스턴스와 라우터에 외부 연결(north-south 트래픽)을 제공하는 네트워크 간에 트래픽을 라우팅합니다. 인스턴스(동부 트래픽) 간 트래픽도 분산됩니다.
DVR을 비활성화하여 선택적으로 배포할 수 있습니다. 이는 북-남 DVR을 비활성화하므로 북-남 트래픽이 컨트롤러 또는 네트워크 노드를 트래버스해야 합니다. East-west 라우팅은 DVR이 비활성화된 경우에도 항상 ML2/OVN 배포에 배포됩니다.
사전 요구 사항
- RHOSP 16.1 배포 사용자 지정 및 배포 준비.
절차
사용자 지정 환경 파일을 생성하고 다음 구성을 추가합니다.
parameter_defaults: NeutronEnableDVR: false
parameter_defaults: NeutronEnableDVR: falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 구성을 적용하려면 오버클라우드를 배포하고 사용자 지정 환경 파일을 다른 환경 파일과 함께 스택에 추가합니다. 예를 들면 다음과 같습니다.
(undercloud) $ openstack overcloud deploy --templates \ -e [your environment files] -e /home/stack/templates/<custom-environment-file>.yaml
(undercloud) $ openstack overcloud deploy --templates \ -e [your environment files] -e /home/stack/templates/<custom-environment-file>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
14장. IPv6를 사용한 프로젝트 네트워킹 링크 복사링크가 클립보드에 복사되었습니다!
14.1. IPv6 서브넷 옵션 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 프로젝트 네트워크에서 IPv6 서브넷을 만들 때 주소 모드와 라우터 알림 모드를 지정하여 다음 표에 설명된 특정 결과를 얻을 수 있습니다.
RHOSP는 ML2/OVN 배포에서 IPv6 접두사 위임을 지원하지 않습니다. Global Unicast Address 접두사를 수동으로 설정해야 합니다.
| RRA 모드 | 주소 모드 | 결과 |
|---|---|---|
| ipv6_ra_mode=not set | ipv6-address-mode=slaac | 인스턴스는 SLAAC(상태 비저장 주소 자동 구성)를 사용하여 외부 라우터(OpenStack 네트워킹에서 관리되지 않음)에서 IPv6 주소를 받습니다. 참고 OpenStack Networking은 SLAAC에 대해 EUI-64 IPv6 주소 할당만 지원합니다. 이를 통해 기본 64비트와 MAC 주소를 기반으로 호스트 자체 할당 주소로 IPv6 네트워킹을 간소화할 수 있습니다. 다른 넷마스크 및 SLAAC의 address_assign_type 을 사용하여 서브넷을 생성할 수 없습니다. |
| ipv6_ra_mode=not set | ipv6-address-mode=dhcpv6-stateful | 인스턴스에서 DHCPv6 상태를 사용하여 IPv6 주소 및 선택적 정보를 OpenStack Networking(dnsmasq)에서 받습니다. |
| ipv6_ra_mode=not set | ipv6-address-mode=dhcpv6-stateless | 인스턴스에서 SLAAC를 사용하여 외부 라우터에서 IPv6 주소를 수신하고 DHCPv6 상태 비저장 을 사용하여 OpenStack Networking(dnsmasq)에서 선택적 정보를 받습니다. |
| ipv6_ra_mode=slaac | ipv6-address-mode=not-set | 인스턴스에서 SLAAC를 사용하여 OpenStack Networking(radvd)에서 IPv6 주소를 받습니다. |
| ipv6_ra_mode=dhcpv6-stateful | ipv6-address-mode=not-set | 인스턴스에서 DHCPv6 상태를 사용하여 외부 DHCPv6 서버에서 IPv6 주소 및 선택적 정보를 받습니다. |
| ipv6_ra_mode=dhcpv6-stateless | ipv6-address-mode=not-set | 인스턴스에서 SLAAC를 사용하여 OpenStack Networking(radvd)에서 IPv6 주소를 수신하고 DHCPv6 상태 비저장 을 사용하는 외부 DHCPv6 서버의 선택적 정보를 받습니다. |
| ipv6_ra_mode=slaac | ipv6-address-mode=slaac | 인스턴스에서 SLAAC 를 사용하여 OpenStack Networking(radvd)에서 IPv6 주소를 받습니다. |
| ipv6_ra_mode=dhcpv6-stateful | ipv6-address-mode=dhcpv6-stateful | 인스턴스에서 DHCPv6 상태 저장을 사용하여dnsmasq(OpenStack 네트워킹)에서 IPv6 주소를 수신하고 DHCPv6 상태를 사용하는dnsmasq(OpenStack Networking)의 선택적 정보를 받습니다 . |
| ipv6_ra_mode=dhcpv6-stateless | ipv6-address-mode=dhcpv6-stateless | 인스턴스에서 SLAAC 를 사용하여 OpenStack Networking(radvd)에서 IPv6 주소를 수신하고 DHCPv6 상태 비저장 을 사용하는dnsmasq(OpenStack Networking)의 선택적 정보를 받습니다. |
14.2. Stateful DHCPv6을 사용하여 IPv6 서브넷 생성 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack) 프로젝트 네트워크에서 IPv6 서브넷을 만들 수 있습니다.
예를 들어 QA라는 프로젝트에서 database-servers라는 네트워크에서 Stateful DHCPv6을 사용하여 IPv6 서브넷을 생성할 수 있습니다.
절차
IPv6 서브넷을 만들 프로젝트의 프로젝트 ID를 검색합니다. 이러한 값은 OpenStack 배포 간에 고유하므로 이 예제의 값과 값이 다릅니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenStack Networking(neutron)에 있는 모든 네트워크 목록을 검색하고 IPv6 서브넷을 호스팅하려는 네트워크의 이름을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack subnet create명령에 프로젝트 ID, 네트워크 이름 및 ipv6 주소 모드를 포함합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증 단계
네트워크 목록을 검토하여 이 구성을 확인합니다. database-servers 에 대한 항목은 이제 새로 생성된 IPv6 서브넷을 반영합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 결과
이 구성의 결과로 QA 프로젝트에서 생성하는 인스턴스에서 database-servers 서브넷에 추가할 때 DHCP IPv6 주소를 수신할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15장. 프로젝트 할당량 관리 링크 복사링크가 클립보드에 복사되었습니다!
15.1. 프로젝트 할당량 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack Networking(neutron)에서는 할당량 사용을 지원하여 테넌트/프로젝트에서 생성한 리소스 수를 제한할 수 있습니다.
절차
/var/lib/config-data/neutron/etc/neutron/neutron.conf 파일에서 다양한 네트워크 구성 요소에 대한 프로젝트 할당량을 설정할 수 있습니다.
예를 들어 프로젝트에서 생성할 수 있는 라우터 수를 제한하려면
quota_router값을 변경합니다.quota_router = 10
quota_router = 10Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서 각 프로젝트는 최대 10개의 라우터로 제한됩니다.
할당량 설정 목록은 바로 따르는 섹션을 참조하십시오.
15.2. L3 할당량 옵션 링크 복사링크가 클립보드에 복사되었습니다!
다음은 계층 3 (L3) 네트워킹에 사용할 수있는 할당량 옵션입니다.
- quota_floatingip - 프로젝트에 사용할 수 있는 유동 IP 수입니다.
- quota_network - 프로젝트에서 사용할 수 있는 네트워크 수입니다.
- quota_port - 프로젝트에서 사용할 수 있는 포트 수입니다.
- quota_router - 프로젝트에서 사용할 수 있는 라우터 수입니다.
- quota_subnet - 프로젝트에서 사용할 수 있는 서브넷 수입니다.
- quota_vip - 프로젝트에서 사용할 수 있는 가상 IP 주소 수입니다.
15.3. 방화벽 할당량 옵션 링크 복사링크가 클립보드에 복사되었습니다!
다음은 프로젝트의 방화벽 관리에 사용할 수 있는 할당량 옵션입니다.
- quota_firewall - 프로젝트에서 사용할 수 있는 방화벽 수입니다.
- quota_firewall_policy - 프로젝트에서 사용할 수 있는 방화벽 정책 수입니다.
- quota_firewall_rule - 프로젝트에 사용할 수 있는 방화벽 규칙 수입니다.
15.4. 보안 그룹 할당량 옵션 링크 복사링크가 클립보드에 복사되었습니다!
네트워킹 서비스 할당량 엔진은 보안 그룹 및 보안 그룹 규칙을 관리하며 default 보안 그룹(및 IPv4 및 IPv6에 대한 모든 송신 트래픽을 수락하는 두 개의 기본 보안 그룹 규칙)을 생성하기 전에 모든 할당량을 0으로 설정할 수 없습니다. 새 프로젝트를 생성할 때 Networking 서비스는 네트워크 또는 포트가 생성될 때까지 또는 보안 그룹 또는 보안 그룹 규칙을 나열할 때까지 기본 보안 그룹을 생성하지 않습니다.
다음은 프로젝트에서 생성할 수 있는 보안 그룹 수를 관리하는 데 사용할 수 있는 할당량 옵션입니다.
- quota_security_group - 프로젝트에서 사용할 수 있는 보안 그룹 수입니다.
- quota_security_group_rule - 프로젝트에 사용할 수 있는 보안 그룹 규칙 수입니다.
15.5. 관리 할당량 옵션 링크 복사링크가 클립보드에 복사되었습니다!
다음은 관리자가 프로젝트 할당량을 관리하기 위해 사용할 수 있는 추가 옵션입니다.
- default_quota* - 프로젝트에서 사용할 수 있는 리소스의 기본 수입니다.
quota_health_monitor* - 프로젝트에서 사용할 수 있는 상태 모니터 수입니다.
상태 모니터는 리소스를 사용하지 않지만 OpenStack Networking에서는 상태 모니터를 리소스 소비자로 간주하므로 할당량 옵션을 사용할 수 있습니다.
quota_member - 프로젝트에서 사용할 수 있는 풀 구성원 수입니다.
풀 구성원은 리소스를 사용하지 않지만 OpenStack Networking에서는 풀 멤버를 리소스 소비자로 간주하므로 할당량 옵션을 사용할 수 있습니다.
- quota_pool - 프로젝트에서 사용할 수 있는 풀 수입니다.
16장. 라우팅된 공급자 네트워크 배포 링크 복사링크가 클립보드에 복사되었습니다!
16.1. 라우팅된 공급자 네트워크의 이점 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform에서 운영자는 라우팅 공급자 네트워크(RPN)를 생성할 수 있습니다. RPN은 일반적으로 에지 배포에서 사용되며 하나의 세그먼트만 있는 기존 네트워크 대신 여러 계층 2 네트워크 세그먼트를 사용합니다.
RPN은 하나의 네트워크만 볼 수 있기 때문에 최종 사용자를 위한 클라우드를 간소화합니다. 클라우드 운영자의 경우 RPN은 확장성과 내결함성을 제공합니다. 예를 들어 주요 오류가 발생하면 전체 네트워크 실패 대신 하나의 세그먼트만 영향을 받습니다.
라우팅된 공급자 네트워크(RPN) 전에 운영자는 일반적으로 다음 아키텍처 중 하나를 선택해야 했습니다.
- 단일 대규모 계층 2 네트워크
- 여러 개의 작은 계층 2 네트워크
단일 계층 2 네트워크는 확장 시 복잡해지고 내결함성이 향상됩니다(실패 도메인 증가).
여러 개의 작은 계층 2 네트워크는 더 나은 확장 및 장애 도메인을 축소할 수 있지만 최종 사용자에게는 복잡성이 발생할 수 있습니다.
Red Hat OpenStack Platform 16.1.1 이상에서는 ML2/OVS 또는 SR-IOV 메커니즘 드라이버를 사용하여 RPN을 배포할 수 있습니다.
16.2. 라우팅된 공급자 네트워크의 기본 사항 링크 복사링크가 클립보드에 복사되었습니다!
세그먼트와 서브넷 간의 연결은 라우팅 공급자 네트워크(RPN)와 다른 유형의 네트워크를 구분합니다. 각 네트워크 세그먼트에는 해당 세그먼트에 명시적으로 속하는 서브넷이 하나 이상 필요합니다. OpenStack Networking 서비스(neutron)는 세그먼트와 연결된 특정 네트워크의 서브넷 0 또는 모든 서브넷을 적용합니다. 예를 들어, 세그먼트가 있는 서브넷이 포함된 네트워크에서 세그먼트 없이 서브넷을 만들려고 하면 오류가 발생합니다.
RPN의 경우 VM(가상 머신) 인스턴스에서 사용할 수 있는 IP 주소는 특정 계산 노드에서 사용 가능한 네트워크의 세그먼트에 따라 다릅니다. 네트워킹 서비스 포트는 하나의 네트워크 세그먼트에만 연결할 수 있습니다.
기존 네트워킹과 유사하게 계층 2(스위칭)는 동일한 네트워크 세그먼트에서 포트 간 트래픽 전송을 처리하고 3 계층(라우팅)은 세그먼트 간 트래픽 전송을 처리합니다.
네트워킹 서비스는 세그먼트 간에 계층 3 서비스를 제공하지 않습니다. 대신 물리적 네트워크 인프라를 사용하여 서브넷을 라우팅합니다. 따라서 네트워킹 서비스 및 물리적 네트워크 인프라에 모두 기존 프로바이더 네트워크와 유사한 라우팅된 프로바이더 네트워크에 대한 구성이 포함되어야 합니다.
Compute 서비스(nova) 스케줄러는 네트워크 세그먼트를 인식하지 못하므로 RPN을 배포할 때 각 리프 또는 랙 세그먼트 또는 DCN 에지 사이트를 계산 서비스 호스트 집계 또는 가용 영역에 매핑해야 합니다.
DHCP-metadata 서비스가 필요한 경우 로컬 DHCP 에이전트가 배포되었는지 확인하려면 각 에지 사이트 또는 네트워크 세그먼트에 대한 가용성 영역을 정의해야 합니다.
16.3. 라우팅된 공급자 네트워크의 제한 사항 링크 복사링크가 클립보드에 복사되었습니다!
라우팅된 공급자 네트워크(RPN)는 모든 메커니즘 드라이버에서 지원하지 않으며 다음 목록에 명시된 대로 계산 서비스 스케줄러 및 기타 소프트웨어에 대한 제한 사항이 있습니다.
라우팅된 공급자 네트워크는 ML2/OVS 및 SR-IOV 메커니즘 드라이버에서만 지원됩니다.
OVN(Open Virtual Network)은 지원되지 않습니다.
- Red Hat OpenStack Platform 16.1.4 이상에서는 OVS-DPDK(DHCP 제외)에서 원격 및 에지 배포를 지원하는 기술 프리뷰에 있습니다.
- 중앙 SNAT 또는 유동 IP를 사용한 North-south 라우팅은 지원되지 않습니다.
- SR-IOV 또는 PCI 패스스루를 사용하는 경우 물리적 네트워크(physnet) 이름은 중앙 및 원격 사이트나 세그먼트에서 동일해야 합니다. 세그먼트 ID를 재사용할 수 없습니다.
계산 서비스(nova) 스케줄러는 세그먼트를 인식하지 않습니다. (각 세그먼트 또는 에지 사이트를 계산 호스트 집계 또는 가용 영역에 매핑해야 합니다.) 현재 다음 두 개의 VM 인스턴스 부팅 옵션만 사용할 수 있습니다.
-
port-id를 사용하여 부팅하고 IP 주소가 없어 부팅하여 계산 가용성 영역(세그먼트 또는 에지 사이트)을 지정합니다. -
Compute 가용 영역(세그먼트 또는 에지 사이트)을 지정하여
network-id를 사용하여 부팅합니다.
-
- 콜드 또는 실시간 마이그레이션은 대상 Compute 가용 영역(세그먼트 또는 에지 사이트)을 지정하는 경우에만 작동합니다.
16.4. 라우팅 공급자 네트워크 준비 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform)에서 라우팅 공급자 네트워크를 생성하기 전에 수행해야 하는 몇 가지 작업이 있습니다.
절차
네트워크 내에서 각 세그먼트에 대해 고유한 실제 네트워크 이름을 사용합니다. 그러면 서브넷 간에 동일한 분할 세부 정보를 재사용할 수 있습니다.
예를 들어 특정 프로바이더 네트워크의 모든 세그먼트에서 동일한 VLAN ID를 사용합니다.
세그먼트 간 라우팅 구현.
세그먼트의 각 서브넷에는 해당 서브넷에 있는 라우터 인터페이스의 게이트웨이 주소가 포함되어야 합니다.
Expand 표 16.1. 라우팅의 샘플 세그먼트 세그먼트 버전 주소 gateway segment1
4
203.0.113.0/24
203.0.113.1
segment1
6
fd00:203:0:113::/64
fd00:203:0:113::1
segment2
4
198.51.100.0/24
198.51.100.1
segment2
6
fd00:198:51:100::/64
fd00:198:51:100::1
세그먼트를 계산 노드에 매핑합니다.
라우팅된 공급자 네트워크는 계산 노드가 다른 세그먼트에 있음을 나타냅니다. 라우터 프로바이더 네트워크의 모든 계산 호스트가 해당 세그먼트 중 하나에 직접 연결되어 있는지 확인합니다.
Expand 표 16.2. 컴퓨팅 노드 매핑의 샘플 세그먼트 호스트 랙 물리적 네트워크 compute0001
랙 1
세그먼트 1
compute0002
랙 1
세그먼트 1
…
…
…
compute0101
랙 2
세그먼트 2
compute0102
랙 2
세그먼트 2
compute0102
랙 2
세그먼트 2
…
…
…
세그먼트당 하나 이상의 DHCP 에이전트를 배포합니다.
기존 프로바이더 네트워크와 달리 DHCP 에이전트는 네트워크 내에서 둘 이상의 세그먼트를 지원할 수 없습니다. 노드 수를 줄이기 위해 네트워크 노드가 아닌 세그먼트가 포함된 계산 노드에 DHCP 에이전트를 배포합니다.
Expand 표 16.3. 세그먼트 매핑당 샘플 DCHP 에이전트 호스트 랙 물리적 네트워크 network0001
랙 1
세그먼트 1
network0002
랙 1
세그먼트 1
…
…
…
사용자 지정 역할 파일을 사용하여 컴퓨팅 노드에 DCHP 에이전트 및 네트워킹 서비스 메타데이터 에이전트를 배포합니다.
예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 지정 환경 파일에서 다음 키-값 쌍을 추가합니다.
parameter_defaults: .... NeutronEnableIsolatedMetadata: 'True' ....parameter_defaults: .... NeutronEnableIsolatedMetadata: 'True' ....Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHOSP Placement 서비스,
python3-osc-placement패키지가 Undercloud에 설치되어 있는지 확인합니다.이 패키지는 RHOSP 16.1.6 이상에서 언더클라우드에서 사용할 수 있습니다. 이전 버전의 RHOSP의 경우 패키지를 수동으로 설치해야 합니다. 실행 중인 RHOSP 버전을 확인하려면 언더클라우드에 다음 명령을 입력합니다.
cat /etc/rhosp-release Red Hat OpenStack Platform release 16.1.5 GA (Train)
$ cat /etc/rhosp-release Red Hat OpenStack Platform release 16.1.5 GA (Train)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배치 서비스를 설치하려면 root로 언더클라우드에 로그인하고 다음 명령을 실행합니다.
yum install python3-osc-placement
# yum install python3-osc-placementCopy to Clipboard Copied! Toggle word wrap Toggle overflow
16.5. 라우팅 공급자 네트워크 생성 링크 복사링크가 클립보드에 복사되었습니다!
라우팅된 공급자 네트워크(RPN)는 하나의 네트워크만 표시하므로 최종 사용자를 위해 RHOSP(Red Hat OpenStack Platform) 클라우드를 단순화합니다. 클라우드 운영자의 경우 RPN은 확장성과 내결함성을 제공합니다.
이 절차를 수행하면 두 개의 네트워크 세그먼트가 있는 RPN을 생성합니다. 각 세그먼트에는 하나의 IPv4 서브넷과 하나의 IPv6 서브넷이 있습니다.
사전 요구 사항
- xref:prepare-routed-prov-network_deploy-routed-prov-networks 단계를 완료합니다.
절차
기본 세그먼트를 포함하는 VLAN 프로바이더 네트워크를 생성합니다.
이 예제에서 VLAN 공급자 네트워크의 이름은
multisegment1이고,provider1이라는 실제 네트워크와 ID가128인 VLAN을 사용합니다.예제
openstack network create --share --provider-physical-network provider1 \ --provider-network-type vlan --provider-segment 128 multisegment1
$ openstack network create --share --provider-physical-network provider1 \ --provider-network-type vlan --provider-segment 128 multisegment1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 네트워크 세그먼트의 이름을
segment1로 바꿉니다.세그먼트 ID를 가져옵니다.
openstack network segment list --network multisegment1
$ openstack network segment list --network multisegment1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
+--------------------------------------+----------+--------------------------------------+--------------+---------+ | ID | Name | Network | Network Type | Segment | +--------------------------------------+----------+--------------------------------------+--------------+---------+ | 43e16869-ad31-48e4-87ce-acf756709e18 | None | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | vlan | 128 | +--------------------------------------+----------+--------------------------------------+--------------+---------+
+--------------------------------------+----------+--------------------------------------+--------------+---------+ | ID | Name | Network | Network Type | Segment | +--------------------------------------+----------+--------------------------------------+--------------+---------+ | 43e16869-ad31-48e4-87ce-acf756709e18 | None | 6ab19caa-dda9-4b3d-abc4-5b8f435b98d9 | vlan | 128 | +--------------------------------------+----------+--------------------------------------+--------------+---------+Copy to Clipboard Copied! Toggle word wrap Toggle overflow 세그먼트 ID를 사용하여 네트워크 세그먼트의 이름을
segment1로 바꿉니다 :openstack network segment set --name segment1 43e16869-ad31-48e4-87ce-acf756709e18
$ openstack network segment set --name segment1 43e16869-ad31-48e4-87ce-acf756709e18Copy to Clipboard Copied! Toggle word wrap Toggle overflow
프로바이더 네트워크에 두 번째 세그먼트를 만듭니다.
이 예에서 네트워크 세그먼트는
provider2라는 물리적 네트워크와 ID가129인 VLAN을 사용합니다.예제
openstack network segment create --physical-network provider2 \ --network-type vlan --segment 129 --network multisegment1 segment2
$ openstack network segment create --physical-network provider2 \ --network-type vlan --segment 129 --network multisegment1 segment2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 네트워크에 segment
1 및 segment가 포함되어 있는지 확인합니다.2 세그먼트openstack network segment list --network multisegment1
$ openstack network segment list --network multisegment1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow segment1 세그먼트에하나의 IPv4 서브넷과 IPv6 서브넷 1개를 만듭니다.이 예에서 IPv4 서브넷은
203.0.113.0/24를 사용합니다.예제
openstack subnet create \ --network multisegment1 --network-segment segment1 \ --ip-version 4 --subnet-range 203.0.113.0/24 \ multisegment1-segment1-v4
$ openstack subnet create \ --network multisegment1 --network-segment segment1 \ --ip-version 4 --subnet-range 203.0.113.0/24 \ multisegment1-segment1-v4Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서 IPv6 서브넷은
fd00:203:0:113::/64를 사용합니다.예제
openstack subnet create \ --network multisegment1 --network-segment segment1 \ --ip-version 6 --subnet-range fd00:203:0:113::/64 \ --ipv6-address-mode slaac multisegment1-segment1-v6
$ openstack subnet create \ --network multisegment1 --network-segment segment1 \ --ip-version 6 --subnet-range fd00:203:0:113::/64 \ --ipv6-address-mode slaac multisegment1-segment1-v6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고기본적으로 공급자 네트워크의 IPv6 서브넷은 상태 비저장 주소 자동 구성(SLAAC) 및 라우터 알림을 위해 물리적 네트워크 인프라를 사용합니다.
segment2 세그먼트에하나의 IPv4 서브넷과 IPv6 서브넷 1개를 만듭니다.이 예에서 IPv4 서브넷은
198.51.100.0/24를 사용합니다.예제
openstack subnet create \ --network multisegment1 --network-segment segment2 \ --ip-version 4 --subnet-range 198.51.100.0/24 \ multisegment1-segment2-v4
$ openstack subnet create \ --network multisegment1 --network-segment segment2 \ --ip-version 4 --subnet-range 198.51.100.0/24 \ multisegment1-segment2-v4Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서 IPv6 서브넷은
fd00:198:51:100::/64를 사용합니다.예제
openstack subnet create \ --network multisegment1 --network-segment segment2 \ --ip-version 6 --subnet-range fd00:198:51:100::/64 \ --ipv6-address-mode slaac multisegment1-segment2-v6
$ openstack subnet create \ --network multisegment1 --network-segment segment2 \ --ip-version 6 --subnet-range fd00:198:51:100::/64 \ --ipv6-address-mode slaac multisegment1-segment2-v6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
각 IPv4 서브넷이 하나 이상의 DHCP 에이전트와 연결되는지 확인합니다.
openstack network agent list --agent-type dhcp --network multisegment1
$ openstack network agent list --agent-type dhcp --network multisegment1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 계산 서비스 배치 API의 각 세그먼트 IPv4 서브넷에 대한 인벤토리가 생성되었는지 확인합니다.
모든 세그먼트 ID에 대해 이 명령을 실행합니다.
SEGMENT_ID=053b7925-9a89-4489-9992-e164c8cc8763 openstack resource provider inventory list $SEGMENT_ID
$ SEGMENT_ID=053b7925-9a89-4489-9992-e164c8cc8763 $ openstack resource provider inventory list $SEGMENT_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
이 샘플 출력에서는 세그먼트 중 하나만 표시됩니다.
+----------------+------------------+----------+----------+-----------+----------+-------+ | resource_class | allocation_ratio | max_unit | reserved | step_size | min_unit | total | +----------------+------------------+----------+----------+-----------+----------+-------+ | IPV4_ADDRESS | 1.0 | 1 | 2 | 1 | 1 | 30 | +----------------+------------------+----------+----------+-----------+----------+-------+
+----------------+------------------+----------+----------+-----------+----------+-------+ | resource_class | allocation_ratio | max_unit | reserved | step_size | min_unit | total | +----------------+------------------+----------+----------+-----------+----------+-------+ | IPV4_ADDRESS | 1.0 | 1 | 2 | 1 | 1 | 30 | +----------------+------------------+----------+----------+-----------+----------+-------+Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compute 서비스의 각 세그먼트에 대한 호스트 집계가 생성되었는지 확인합니다.
openstack aggregate list
$ openstack aggregate listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
이 예에서는 세그먼트 중 하나만 표시됩니다.
+----+---------------------------------------------------------+-------------------+ | Id | Name | Availability Zone | +----+---------------------------------------------------------+-------------------+ | 10 | Neutron segment id 053b7925-9a89-4489-9992-e164c8cc8763 | None | +----+---------------------------------------------------------+-------------------+
+----+---------------------------------------------------------+-------------------+ | Id | Name | Availability Zone | +----+---------------------------------------------------------+-------------------+ | 10 | Neutron segment id 053b7925-9a89-4489-9992-e164c8cc8763 | None | +----+---------------------------------------------------------+-------------------+Copy to Clipboard Copied! Toggle word wrap Toggle overflow 하나 이상의 인스턴스를 시작합니다. 각 인스턴스는 특정 계산 노드에서 사용하는 세그먼트에 따라 IP 주소를 가져옵니다.
참고포트 생성 요청에서 사용자가 고정 IP를 지정하면 해당 특정 IP가 포트에 즉시 할당됩니다. 그러나 포트를 만들어 인스턴스에 전달하면 기존 네트워크와 다른 동작이 생성됩니다. port create 요청에 고정 IP가 지정되지 않은 경우 Networking 서비스는 특정 계산 노드가 명확하게 표시될 때까지 포트에 IP 주소를 디스퍼스 할당합니다. 예를 들어 이 명령을 실행하는 경우 다음을 수행합니다.
openstack port create --network multisegment1 port1
$ openstack port create --network multisegment1 port1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
16.6. 라우팅되지 않은 네트워크를 라우팅 공급자 네트워크로 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
네트워크 세그먼트의 ID와 네트워크 서브넷을 연결하여 라우팅되지 않은 네트워크를 라우팅 공급자 네트워크(RPN)로 마이그레이션할 수 있습니다.
사전 요구 사항
마이그레이션 중인 라우팅되지 않은 네트워크에는 하나의 세그먼트와 하나의 서브넷 만 포함되어야 합니다.
중요다중 서브넷 또는 네트워크 세그먼트가 포함된 라우팅되지 않은 공급자 네트워크에서 RPN으로 안전하게 마이그레이션할 수 없습니다. 라우팅되지 않은 네트워크에서 서브넷 할당 풀의 주소는 포트가 바인딩된 네트워크 세그먼트를 고려하지 않고 포트에 할당됩니다.
절차
마이그레이션할 네트워크의 경우 현재 네트워크 세그먼트의 ID를 가져옵니다.
예제
openstack network segment list --network my_network
$ openstack network segment list --network my_networkCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
+--------------------------------------+------+--------------------------------------+--------------+---------+ | ID | Name | Network | Network Type | Segment | +--------------------------------------+------+--------------------------------------+--------------+---------+ | 81e5453d-4c9f-43a5-8ddf-feaf3937e8c7 | None | 45e84575-2918-471c-95c0-018b961a2984 | flat | None | +--------------------------------------+------+--------------------------------------+--------------+---------+
+--------------------------------------+------+--------------------------------------+--------------+---------+ | ID | Name | Network | Network Type | Segment | +--------------------------------------+------+--------------------------------------+--------------+---------+ | 81e5453d-4c9f-43a5-8ddf-feaf3937e8c7 | None | 45e84575-2918-471c-95c0-018b961a2984 | flat | None | +--------------------------------------+------+--------------------------------------+--------------+---------+Copy to Clipboard Copied! Toggle word wrap Toggle overflow 마이그레이션할 네트워크의 경우 현재 서브넷의 ID를 가져옵니다.
예제
openstack network segment list --network my_network
$ openstack network segment list --network my_networkCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
+--------------------------------------+-----------+--------------------------------------+---------------+ | ID | Name | Network | Subnet | +--------------------------------------+-----------+--------------------------------------+---------------+ | 71d931d2-0328-46ae-93bc-126caf794307 | my_subnet | 45e84575-2918-471c-95c0-018b961a2984 | 172.24.4.0/24 | +--------------------------------------+-----------+--------------------------------------+---------------+
+--------------------------------------+-----------+--------------------------------------+---------------+ | ID | Name | Network | Subnet | +--------------------------------------+-----------+--------------------------------------+---------------+ | 71d931d2-0328-46ae-93bc-126caf794307 | my_subnet | 45e84575-2918-471c-95c0-018b961a2984 | 172.24.4.0/24 | +--------------------------------------+-----------+--------------------------------------+---------------+Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서브넷의 현재
segment_id에None의 값이 있는지 확인합니다.예제
openstack subnet show my_subnet --c segment_id
$ openstack subnet show my_subnet --c segment_idCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
+------------+-------+ | Field | Value | +------------+-------+ | segment_id | None | +------------+-------+
+------------+-------+ | Field | Value | +------------+-------+ | segment_id | None | +------------+-------+Copy to Clipboard Copied! Toggle word wrap Toggle overflow subnet
_id 서브넷 값을 네트워크 세그먼트ID로 변경합니다.예를 들면 다음과 같습니다.
openstack subnet set --network-segment 81e5453d-4c9f-43a5-8ddf-feaf3937e8c7 my_subnet
$ openstack subnet set --network-segment 81e5453d-4c9f-43a5-8ddf-feaf3937e8c7 my_subnetCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
서브넷이 이제 원하는 네트워크 세그먼트와 연결되어 있는지 확인합니다.
예제
openstack subnet show my_subnet --c segment_id
$ openstack subnet show my_subnet --c segment_idCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
+------------+--------------------------------------+ | Field | Value | +------------+--------------------------------------+ | segment_id | 81e5453d-4c9f-43a5-8ddf-feaf3937e8c7 | +------------+--------------------------------------+
+------------+--------------------------------------+ | Field | Value | +------------+--------------------------------------+ | segment_id | 81e5453d-4c9f-43a5-8ddf-feaf3937e8c7 | +------------+--------------------------------------+Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17장. 허용된 주소 쌍 구성 링크 복사링크가 클립보드에 복사되었습니다!
17.1. 허용되는 주소 쌍의 개요 링크 복사링크가 클립보드에 복사되었습니다!
허용되는 주소 쌍은 특정 MAC 주소, IP 주소 또는 둘 다 서브넷에 관계없이 네트워크 트래픽이 포트를 통과하도록 허용하는 경우입니다. 허용된 주소 쌍을 정의할 때 빠른 데이터 플레인 페일오버를 활성화하기 위해 두 VM 인스턴스 간에 IP 주소를 복제하는 VRRP(Virtual Router Redundancy Protocol)와 같은 프로토콜을 사용할 수 있습니다.
Red Hat OpenStack Platform 명령줄 클라이언트 openstack port 명령을 사용하여 허용되는 주소 쌍을 정의합니다.
허용되는 주소 쌍에서 더 넓은 IP 주소 범위를 가진 default 보안 그룹을 사용해서는 안 됩니다. 이렇게 하면 단일 포트가 동일한 네트워크 내의 다른 모든 포트에 대해 보안 그룹을 우회할 수 있습니다.
예를 들어 이 명령은 네트워크의 모든 포트에 영향을 미치고 모든 보안 그룹을 무시합니다.
openstack port set --allowed-address mac-address=3e:37:09:4b,ip-address=0.0.0.0/0 9e67d44eab334f07bf82fa1b17d824b6
# openstack port set --allowed-address mac-address=3e:37:09:4b,ip-address=0.0.0.0/0 9e67d44eab334f07bf82fa1b17d824b6
ML2/OVN 메커니즘 드라이버 네트워크 백엔드를 사용하면 VIP를 생성할 수 있습니다. 그러나 allowed_address_cidrs를 사용하여 바인딩된 포트에 할당된 IP 주소는 가상 포트 IP 주소(/32)와 일치해야 합니다.
대신 바인딩된 포트에 CIDR 형식 IP 주소를 사용하는 경우 포트 전달은 백엔드에 구성되지 않으며 바인딩된 IP 포트에 도달하는 데 필요한 CIDR의 모든 IP에 대한 트래픽이 실패합니다.
17.2. 포트 생성 및 하나의 주소 쌍 허용 링크 복사링크가 클립보드에 복사되었습니다!
허용되는 주소 쌍을 사용하여 포트를 만들면 서브넷에 관계없이 네트워크 트래픽이 포트를 통과할 수 있습니다.
허용되는 주소 쌍에서 IP 주소 범위가 더 넓은 기본 보안 그룹을 사용하지 마십시오. 이렇게 하면 단일 포트가 동일한 네트워크 내의 다른 모든 포트에 대해 보안 그룹을 우회할 수 있습니다.
절차
다음 명령을 사용하여 포트를 생성하고 하나의 주소 쌍을 허용합니다.
openstack port create --network <network> --allowed-address mac-address=<mac_address>,ip-address=<ip_cidr> <port_name>
$ openstack port create --network <network> --allowed-address mac-address=<mac_address>,ip-address=<ip_cidr> <port_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.3. 허용되는 주소 쌍 추가 링크 복사링크가 클립보드에 복사되었습니다!
허용되는 주소 쌍을 포트에 추가하여 서브넷에 관계없이 네트워크 트래픽이 포트를 통과하도록 할 수 있습니다.
허용되는 주소 쌍에서 IP 주소 범위가 더 넓은 기본 보안 그룹을 사용하지 마십시오. 이렇게 하면 단일 포트가 동일한 네트워크 내의 다른 모든 포트에 대해 보안 그룹을 우회할 수 있습니다.
절차
다음 명령을 사용하여 허용되는 주소 쌍을 추가합니다.
openstack port set --allowed-address mac-address=<mac_address>,ip-address=<ip_cidr> <port>
$ openstack port set --allowed-address mac-address=<mac_address>,ip-address=<ip_cidr> <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고mac_address 및 포트의수 없습니다.ip_address와 일치하는 allowed-address쌍을 설정할mac_address 및와 일치하는 트래픽이 이미 포트를 통과할 수 있으므로 이러한 설정이 적용되지 않기 때문입니다.ip_address
18장. 일반적인 관리 네트워킹 작업 링크 복사링크가 클립보드에 복사되었습니다!
계층 2 채우기 드라이버 구성 또는 내부 DNS에서 포트에 할당된 이름을 지정하는 등 Red Hat OpenStack Platform Networking 서비스(neutron)에서 관리 작업을 수행해야 하는 경우가 있습니다.
18.1. L2 채우기 드라이버 구성 링크 복사링크가 클립보드에 복사되었습니다!
L2 채우기 드라이버를 사용하면 브로드캐스트, 멀티캐스트 및 유니캐스트 트래픽을 대규모 오버레이 네트워크에서 확장할 수 있습니다. 기본적으로 Open vSwitch GRE 및 VXLAN은 대상 네트워크를 호스팅하지 않는 에이전트를 포함하여 모든 에이전트에 브로드캐스트를 복제합니다. 이 설계에는 중요한 네트워크 및 처리 오버헤드가 수용되어야 합니다. L2 채우기 드라이버에서 도입한 대체 설계는 ARP 확인을 위해 부분 메시와 MAC 학습 트래픽을 구현합니다. 또한 네트워크를 호스팅하는 노드 간에만 특정 네트워크에 대한 터널을 만듭니다. 이 트래픽은 대상 유니캐스트로 캡슐화하여 필요한 에이전트에만 전송됩니다.
L2 채우기 드라이버를 활성화하려면 다음 단계를 완료합니다.
1. 메커니즘 드라이버 목록에 추가하여 L2 채우기 드라이버를 활성화합니다. 또한 GRE, VXLAN 또는 둘 다와 같은 하나 이상의 터널링 드라이버를 활성화해야 합니다. ml2_conf.ini 파일에 적절한 구성 옵션을 추가합니다.
[ml2] type_drivers = local,flat,vlan,gre,vxlan,geneve mechanism_drivers = l2population
[ml2]
type_drivers = local,flat,vlan,gre,vxlan,geneve
mechanism_drivers = l2population
Neutron의 Linux Bridge ML2 드라이버 및 에이전트는 Red Hat OpenStack Platform 11에서 더 이상 사용되지 않습니다. Open vSwitch(OVS) 플러그인 OpenStack Platform director의 기본 설정으로, Red Hat에서 일반적으로 사용하는 것이 좋습니다.
2. openvswitch_agent.ini 파일에서 L2 채우기를 활성화합니다. L2 에이전트가 포함된 각 노드에서 활성화합니다.
[agent] l2_population = True
[agent]
l2_population = True
ARP 응답 흐름을 설치하려면 arp_responder 플래그를 구성합니다.
[agent] l2_population = True arp_responder = True
[agent]
l2_population = True
arp_responder = True
18.2. VRRP 패킷 손실을 방지하기 위해 keepalived 튜닝 링크 복사링크가 클립보드에 복사되었습니다!
단일 호스트의 HA(고가용성) 라우터 수가 높은 경우 HA 라우터가 오버라이드되면 VRRP(Virtual Router Redundancy Protocol) 메시지가 IRQ 큐를 오버플로할 수 있습니다. 이 오버플로는 OVS(Open vSwitch)가 이러한 VRRP 메시지를 응답하고 전달하지 못하도록 중지합니다.
VRRP 패킷 과부하를 방지하려면 Controller 역할의 ExtraConfig 섹션에서 ha_vrrp_advert_int 매개 변수를 사용하여 VRRP 알림 간격을 늘려야 합니다.
절차
stack 사용자로 언더클라우드에 로그인하고
stackrc파일을 가져와 director 명령줄 툴을 활성화합니다.예제
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 지정 YAML 환경 파일을 만듭니다.
예제
vi /home/stack/templates/my-neutron-environment.yaml
$ vi /home/stack/templates/my-neutron-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보Red Hat OpenStack Platform Orchestration 서비스(heat)는 templates 라는 플랜 세트를 사용하여 환경을 설치하고 구성합니다. heat 템플릿에 대한 사용자 지정을 제공하는 특수 유형의 템플릿 파일인 사용자 지정 환경 파일을 사용하여 오버클라우드의 특정 부분을 사용자 지정할 수 있습니다.
YAML 환경 파일에서 사이트에 고유한 값과
ha_vrrp_advert_int인수를 사용하여 VRRP 알림 간격을 늘립니다. (기본값은2초입니다.)적절한 ARP 메시지에 대한 값을 설정할 수도 있습니다.
ha_vrrp_garp_master_repeat- master 상태로 전환된 후 한 번에 전송할 적절한 ARP 메시지 수입니다. (기본값은 5 메시지입니다.)
ha_vrrp_garp_master_delay더 낮은 우선 순위 advert가 master 상태에서 수신된 후 좋은 ARP 메시지의 두 번째 집합에 대한 지연이 발생합니다. (기본값은 5초입니다.)
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
openstack overcloud deploy명령을 실행하고 코어 heat 템플릿, 환경 파일 및 이 새 사용자 지정 환경 파일을 포함합니다.중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하기 때문에 환경 파일의 순서가 중요합니다.
예제
openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yaml
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
18.3. DNS가 포트에 할당하는 이름 지정 링크 복사링크가 클립보드에 복사되었습니다!
포트 확장(dns_domain_ports)에 대해 RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스(neutron) dns_domain을 활성화할 때 내부 DNS에서 포트에 할당된 이름을 지정할 수 있습니다.
YAML 형식의 환경 파일에서 RHOSP Orchestration(heat) NeutronPluginExtensions 매개변수를 선언하여 포트 확장에 대해 dns_domain을 활성화합니다. 해당 매개변수인 NeutronDnsDomain 을 사용하여 도메인 이름을 지정하여 기본값인 openstacklocal 을 덮어씁니다. 오버클라우드를 재배포한 후 OpenStack 클라이언트 포트 명령, 포트 세트 또는 포트 생성을 --dns-name 과 함께 사용하여 포트 이름을 할당할 수 있습니다.
또한 포트 확장의 dns_domain이 활성화되면 계산 서비스에서 VM 인스턴스 부팅 중에 인스턴스의 hostname 속성으로 dns_name 속성을 자동으로 채웁니다. 부팅 프로세스가 끝나면 dnsmasq는 인스턴스 호스트 이름으로 할당된 포트를 인식합니다.
절차
stack 사용자로 언더클라우드에 로그인하고
stackrc파일을 가져와 director 명령줄 툴을 활성화합니다.예제
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 지정 YAML 환경 파일(
my-neutron-environment.yaml)을 만듭니다.참고괄호 안의 값은 이 절차의 예제 명령에 사용되는 샘플 값입니다. 이러한 샘플 값을 사이트에 적합한 값으로 바꿉니다.
예제
vi /home/stack/templates/my-neutron-environment.yaml
$ vi /home/stack/templates/my-neutron-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보언더클라우드에는 오버클라우드 생성 계획을 구성하는 오케스트레이션 서비스 템플릿 세트가 포함되어 있습니다. 핵심 오케스트레이션 서비스 템플릿 컬렉션의 매개변수와 리소스를 재정의하는 YAML 형식의 파일인 환경 파일을 사용하여 오버클라우드의 특정 부분을 사용자 지정할 수 있습니다. 환경 파일은 필요한 수만큼 추가할 수 있습니다.
환경 파일에서
parameter_defaults섹션을 추가합니다. 이 섹션에서 포트 확장자 dns_domain_ports에 대해 dns_domain을 추가합니다.예제
parameter_defaults: NeutronPluginExtensions: "qos,port_security,dns_domain_ports"
parameter_defaults: NeutronPluginExtensions: "qos,port_security,dns_domain_ports"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고dns_domain_ports를 설정하는 경우 배포에서 DNS 통합 확장 기능인dns_domain도 사용하지 않는지 확인합니다. 이러한 확장 기능은 호환되지 않으며 두 확장을 동시에 정의할 수 없습니다.또한
parameter_defaults섹션에서NeutronDnsDomain매개변수를 사용하여 도메인 이름(example.com)을 추가합니다.예제
parameter_defaults: NeutronPluginExtensions: "qos,port_security,dns_domain_ports" NeutronDnsDomain: "example.com"parameter_defaults: NeutronPluginExtensions: "qos,port_security,dns_domain_ports" NeutronDnsDomain: "example.com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack overcloud deploy명령을 실행하고 핵심 오케스트레이션 템플릿, 환경 파일 및 이 새 환경 파일을 포함합니다.중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하기 때문에 환경 파일의 순서가 중요합니다.
예제
openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yaml
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Overcloud에 로그인하고 네트워크(
공용)에 새 포트(new_port)를 만듭니다. 포트에 DNS 이름(my_port)을 할당합니다.예제
source ~/overcloudrc openstack port create --network public --dns-name my_port new_port
$ source ~/overcloudrc $ openstack port create --network public --dns-name my_port new_portCopy to Clipboard Copied! Toggle word wrap Toggle overflow 포트(new
_port)의 세부 정보를 표시합니다.예제
openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
$ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_portCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 결과
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dns_assignment에서 포트의 정규화된 도메인 이름(fqdn) 값에는NeutronDnsDomain을 사용하여 이전에 설정한 DNS 이름(my_port) 및 도메인 이름(example.com)의 연결이 포함됩니다.방금 만든 포트(new
_)를 만듭니다.port)를 사용하여 새 VM 인스턴스( my_vm예제
openstack server create --image rhel --flavor m1.small --port new_port my_vm
$ openstack server create --image rhel --flavor m1.small --port new_port my_vmCopy to Clipboard Copied! Toggle word wrap Toggle overflow 포트(new
_port)의 세부 정보를 표시합니다.예제
openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
$ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_portCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 결과
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 계산 서비스는
dns_name속성을 원래 값(my_port)에서 포트가 연결된 인스턴스 이름(my_vm)으로 변경합니다.
18.4. 포트에 DHCP 속성 할당 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat Openstack Plaform) Networking 서비스(neutron) 확장을 사용하여 네트워킹 기능을 추가할 수 있습니다. 추가 DHCP 옵션 확장(extra_dhcp_opt)을 사용하여 DHCP 속성으로 DHCP 클라이언트 포트를 구성할 수 있습니다. 예를 들어 tftp-server,server-ip-address 또는 bootfile-name 과 같은 PXE 부팅 옵션을 DHCP 클라이언트 포트에 추가할 수 있습니다.
extra_dhcp_opt 특성 값은 DHCP 옵션 오브젝트의 배열이며, 각 오브젝트에는 opt_name 및 opt_value 가 포함되어 있습니다. IPv4는 기본 버전이지만 세 번째 옵션 ip-version=6 을 포함하여 IPv6로 변경할 수 있습니다.
VM 인스턴스가 시작되면 RHOSP Networking 서비스는 DHCP 프로토콜을 사용하여 포트 정보를 인스턴스에 제공합니다. 실행 중인 인스턴스에 이미 연결된 포트에 DHCP 정보를 추가하는 경우 인스턴스가 재시작될 때 인스턴스에서 새 DHCP 포트 정보만 사용합니다.
가장 일반적인 DHCP 포트 속성은 bootfile-name,dns-server,domain-name,mtu,server-ip-address, tftp-server 입니다. opt_name 에 허용되는 값의 전체 세트는 DHCP 사양을 참조하십시오.
사전 요구 사항
- RHOSP 관리자 권한이 있어야 합니다.
절차
-
언더클라우드 호스트에
stack사용자로 로그인합니다. 언더클라우드 인증 정보 파일을 소싱합니다.
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 지정 YAML 환경 파일을 만듭니다.
예제
vi /home/stack/templates/my-octavia-environment.yaml
$ vi /home/stack/templates/my-octavia-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 환경 파일에는
parameter_defaults키워드가 포함되어야 합니다. 이러한 키워드 아래에extra_dhcp_opt를 추가 DHCP 옵션 확장을 추가합니다.예제
parameter_defaults: NeutronPluginExtensions: "qos,port_security,extra_dhcp_opt"
parameter_defaults: NeutronPluginExtensions: "qos,port_security,extra_dhcp_opt"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배포 명령을 실행하고 코어 heat 템플릿, 환경 파일 및 이 새 사용자 지정 환경 파일을 포함합니다.
중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하기 때문에 환경 파일의 순서가 중요합니다.
예제
openstack overcloud deploy --templates \ -e <your_environment_files> \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/octavia.yaml \ -e /home/stack/templates/my-octavia-environment.yaml
$ openstack overcloud deploy --templates \ -e <your_environment_files> \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/octavia.yaml \ -e /home/stack/templates/my-octavia-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
자격 증명 파일을 가져옵니다.
예제
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 네트워크(
공용)에 새 포트(new_port)를 만듭니다. DHCP 사양의 유효한 속성을 새 포트에 할당합니다.예제
openstack port create --extra-dhcp-option \ name=domain-name,value=test.domain --extra-dhcp-option \ name=ntp-server,value=192.0.2.123 --network public new_port
$ openstack port create --extra-dhcp-option \ name=domain-name,value=test.domain --extra-dhcp-option \ name=ntp-server,value=192.0.2.123 --network public new_portCopy to Clipboard Copied! Toggle word wrap Toggle overflow 포트(new
_port)의 세부 정보를 표시합니다.예제
openstack port show new_port -c extra_dhcp_opts
$ openstack port show new_port -c extra_dhcp_optsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.5. 커널 모듈 로드 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform)의 일부 기능을 사용하려면 특정 커널 모듈을 로드해야 합니다. 예를 들어 OVS 방화벽 드라이버에서는 두 VM 인스턴스 간 GRE 터널링을 지원하도록 the nf_conntrack_proto_gre 커널 모듈을 로드해야 합니다.
특수 오케스트레이션 서비스(heat) 매개변수인 ExtraKernelModule을 사용하면 heat에서 GRE 터널링과 같은 기능에 필요한 커널 모듈에 대한 구성 정보를 저장할 수 있습니다. 나중에 일반 모듈 관리 중에 이러한 필수 커널 모듈이 로드됩니다.
절차
Undercloud 호스트에서 stack 사용자로 로그인한 사용자 지정 YAML 환경 파일을 만듭니다.
예제
vi /home/stack/templates/my-modules-environment.yaml
$ vi /home/stack/templates/my-modules-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보Heat는 템플릿 이라는 플랜 세트를 사용하여 환경을 설치하고 구성합니다. heat 템플릿에 대한 사용자 지정을 제공하는 특수 유형의 템플릿 파일인 사용자 지정 환경 파일을 사용하여 오버클라우드의 특정 부분을 사용자 지정할 수 있습니다.
parameter_defaults아래의 YAML 환경 파일에서ExtraKernelModles를 로드할 모듈 이름으로 설정합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack overcloud deploy명령을 실행하고 코어 heat 템플릿, 환경 파일 및 이 새 사용자 지정 환경 파일을 포함합니다.중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하므로 환경 파일의 순서가 중요합니다.
예제
openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-modules-environment.yaml
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-modules-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Heat에 모듈을 올바르게 로드한 경우 컴퓨팅 노드에서
lsmod명령을 실행할 때 출력이 표시됩니다.예제
sudo lsmod | grep nf_conntrack_proto_gre
sudo lsmod | grep nf_conntrack_proto_greCopy to Clipboard Copied! Toggle word wrap Toggle overflow
19장. 계층 3 고가용성(HA) 구성 링크 복사링크가 클립보드에 복사되었습니다!
19.1. HA(고가용성)가 없는 RHOSP 네트워킹 서비스 링크 복사링크가 클립보드에 복사되었습니다!
HA(고가용성) 기능이 없는 RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스는 물리적 노드 장애에 취약합니다.
일반적인 배포에서는 프로젝트에서 물리적 네트워킹 서비스 계층 3(L3) 에이전트 노드에서 실행되도록 예약된 가상 라우터를 만듭니다. 이는 L3 에이전트 노드가 손실되고 종속 가상 시스템이 나중에 외부 네트워크와의 연결이 끊어지면 문제가 됩니다. 유동 IP 주소도 사용할 수 없습니다. 또한 라우터가 호스트하는 모든 네트워크 간에 연결이 끊어집니다.
19.2. 계층 3 고가용성(HA) 개요 링크 복사링크가 클립보드에 복사되었습니다!
이 액티브/패시브 고가용성(HA) 구성은 업계 표준 VRRP(RFC 3768에 정의된 대로)를 사용하여 프로젝트 라우터 및 유동 IP 주소를 보호합니다. 가상 라우터는 여러 RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스 노드에 무작위로 예약되며, 하나는 활성 라우터로 지정되고 나머지 라우터는 standby 역할로 사용됩니다.
L3) HA를 배포하려면 유동 IP 범위 및 외부 네트워크에 대한 액세스를 포함하여 중복 네트워킹 서비스 노드에서 유사한 구성을 유지 관리해야 합니다.
다음 다이어그램에서 활성 라우터 1 및 라우터 2 라우터 는 별도의 물리적 L3 네트워킹 서비스 에이전트 노드에서 실행되고 있습니다. L3 HA는 해당 노드에 백업 가상 라우터를 예약했으며 물리적 노드 장애가 발생하는 경우 서비스를 다시 시작할 준비가 되었습니다. L3 에이전트 노드가 실패하면 L3 HA가 영향을 받는 가상 라우터 및 유동 IP 주소를 작업 노드에 다시 예약합니다.
장애 조치 이벤트 중에 유동 IP를 통한 인스턴스 TCP 세션은 영향을 받지 않고 새 L3 노드로 마이그레이션됩니다. SNAT 트래픽만 페일오버 이벤트의 영향을 받습니다.
L3 에이전트는 액티브/액티브 HA 모드에서 추가로 보호됩니다.
19.3. 계층 3 HA(고가용성) 페일오버 조건 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스의 계층 3(L3) HA(고가용성)는 다음 이벤트에서 보호 리소스를 자동으로 다시 예약합니다.
- 네트워킹 서비스 L3 에이전트 노드가 종료되거나 하드웨어 장애로 인해 전원이 손실됩니다.
- L3 에이전트 노드는 물리적 네트워크에서 격리되며 연결이 끊어집니다.
L3 에이전트 서비스를 수동으로 중지해도 장애 조치 이벤트가 발생하지 않습니다.
19.4. 3 계층 HA(고가용성)에 대한 프로젝트 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스 계층 3(L3) HA(고가용성) 구성은 백엔드에서 발생하며 프로젝트에 표시되지 않습니다. 프로젝트는 정상적으로 가상 라우터를 계속 만들고 관리할 수 있지만 L3 HA 구현을 설계할 때 알아야 할 몇 가지 제한 사항이 있습니다.
- L3 HA는 프로젝트당 최대 255개의 가상 라우터를 지원합니다.
- 내부 VRRP 메시지는 각 프로젝트에 대해 자동으로 생성되는 별도의 내부 네트워크 내에서 전송됩니다. 이 프로세스는 사용자에게 투명하게 수행됩니다.
-
ML2/OVS에서 HA(고가용성) 라우터를 구현할 때 각 L3 에이전트는 각 라우터에
haproxy및neutron-keepalived-state-change-monitor프로세스를 생성합니다. 각 프로세스는 약 20MB의 메모리를 사용합니다. 기본적으로 각 HA 라우터는 3개의 L3 에이전트에 상주하며 각 노드의 리소스를 사용합니다. 따라서 RHOSP 네트워크 크기를 조정할 때 구현하려는 HA 라우터 수를 지원하기에 충분한 메모리를 할당했는지 확인합니다.
19.5. RHOSP Networking 서비스에 대한 HA(고가용성) 변경 링크 복사링크가 클립보드에 복사되었습니다!
관리자가 라우터를 생성할 때 --ha=True/False 플래그를 설정할 수 있도록 RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스(neutron) API가 업데이트되어 에서 /var/ lib/config-data/neutron/etc/neutron.confl3_ha 의 기본 구성을 덮어씁니다.
neutron-server로 HA(고가용성) 변경:
- L3 계층 3(L3) HA는 네트워킹 서비스에서 사용하는 스케줄러(랜덤 또는 최소 라우터)에 관계없이 활성 역할을 무작위로 할당합니다.
- 데이터베이스 스키마가 가상 라우터에 대한 VIP(가상 IP 주소) 할당을 처리하도록 수정되었습니다.
- L3 HA 트래픽을 지시하기 위해 전송 네트워크가 생성됩니다.
Networking 서비스 L3 에이전트에 대한 HA 변경 사항:
- 부하 분산 및 HA 기능을 제공하는 새로운 keepalived 관리자가 추가되었습니다.
- IP 주소는 VIP로 변환됩니다.
19.6. RHOSP Networking 서비스 노드에서 레이어 3 HA(고가용성) 활성화 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) director는 RHOSP 컨트롤러가 두 개 이상 있고 분산 가상 라우팅(DVR)을 사용하지 않는 경우 기본적으로 가상 라우터에 고가용성(HA)을 활성화합니다. RHOSP Orchestration 서비스(heat) 매개변수인 max_l3_agents_per_router 를 사용하면 HA 라우터가 예약된 RHOSP Networking 서비스 계층 3(L3) 에이전트의 최대 수를 설정할 수 있습니다.
사전 요구 사항
- RHOSP 배포에서 DVR을 사용하지 않습니다.
- 최소 두 개의 RHOSP 컨트롤러가 배포되어 있습니다.
절차
stack 사용자로 언더클라우드에 로그인하고
stackrc파일을 가져와 director 명령줄 툴을 활성화합니다.예제
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 지정 YAML 환경 파일을 만듭니다.
예제
vi /home/stack/templates/my-neutron-environment.yaml
$ vi /home/stack/templates/my-neutron-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보오케스트레이션 서비스(heat)에서는 템플릿 이라는 플랜 세트를 사용하여 환경을 설치하고 구성합니다. heat 템플릿에 대한 사용자 지정을 제공하는 특수 유형의 템플릿 파일인 사용자 지정 환경 파일을 사용하여 오버클라우드의 특정 부분을 사용자 지정할 수 있습니다.
YAML 환경 파일에서
NeutronL3HA매개 변수를true로 설정합니다. 이렇게 하면 director가 기본적으로 설정하지 않은 경우에도 HA가 활성화됩니다.parameter_defaults: NeutronL3HA: 'true'
parameter_defaults: NeutronL3HA: 'true'Copy to Clipboard Copied! Toggle word wrap Toggle overflow HA 라우터가 예약된 최대 L3 에이전트 수를 설정합니다.
max_l3_agents_per_router매개변수를 배포의 최솟값과 총 네트워크 노드 수의 값으로 설정합니다. (0 값은 라우터가 모든 에이전트에 예약됨을 나타냅니다.)예제
parameter_defaults: NeutronL3HA: 'true' ControllerExtraConfig: neutron::server::max_l3_agents_per_router: 2parameter_defaults: NeutronL3HA: 'true' ControllerExtraConfig: neutron::server::max_l3_agents_per_router: 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는 4개의 Networking 서비스 노드를 배포하는 경우 L3 에이전트 두 개만 각 HA 가상 라우터(활성 하나의 활성 및 하나의 대기)를 보호합니다.
max_l3_agents_per_router값을 사용 가능한 네트워크 노드 수보다 크게 설정하는 경우 새 L3 에이전트를 추가하여 대기 라우터 수를 확장할 수 있습니다. 배포하는 모든 새로운 L3 에이전트 노드에 대해 네트워킹 서비스는max_l3_agents_per_router제한에 도달할 때까지 가상 라우터의 추가 대기 버전을 예약합니다.openstack overcloud deploy명령을 실행하고 코어 heat 템플릿, 환경 파일 및 이 새 사용자 지정 환경 파일을 포함합니다.중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하기 때문에 환경 파일의 순서가 중요합니다.
예제
openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yaml
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고NeutronL3HA가true로 설정되면 기본적으로 생성된 모든 가상 라우터를 HA 라우터로 설정합니다. 라우터를 생성할 때openstack router create명령에--no-ha옵션을 포함하여 HA 옵션을 덮어쓸 수 있습니다.openstack router create --no-ha
# openstack router create --no-haCopy to Clipboard Copied! Toggle word wrap Toggle overflow
19.7. HA(고가용성) RHOSP Networking 서비스 노드 구성 검토 링크 복사링크가 클립보드에 복사되었습니다!
절차
가상 라우터 네임스페이스에서
ip address명령을 실행하여 ha- 접두사가 붙은 결과에서 HA(고가용성) 장치를 반환합니다.ip netns exec qrouter-b30064f9-414e-4c98-ab42-646197c74020 ip address <snip> 2794: ha-45249562-ec: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 12:34:56:78:2b:5d brd ff:ff:ff:ff:ff:ff inet 169.254.0.2/24 brd 169.254.0.255 scope global ha-54b92d86-4f
# ip netns exec qrouter-b30064f9-414e-4c98-ab42-646197c74020 ip address <snip> 2794: ha-45249562-ec: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 12:34:56:78:2b:5d brd ff:ff:ff:ff:ff:ff inet 169.254.0.2/24 brd 169.254.0.255 scope global ha-54b92d86-4fCopy to Clipboard Copied! Toggle word wrap Toggle overflow
계층 3 HA를 활성화하면 가상 라우터 및 유동 IP 주소가 개별 노드 장애로 보호됩니다.
20장. Networker 노드 교체 링크 복사링크가 클립보드에 복사되었습니다!
특정 상황에서 고가용성 클러스터에 Networker 프로필이 있는 RHOSP(Red Hat OpenStack Platform) 노드가 실패할 수 있습니다. 자세한 내용은 Director 설치 및 사용 가이드의 프로필에 노드 태그 지정을 참조하십시오. 이러한 경우 클러스터에서 노드를 삭제하고 Networking 서비스(neutron) 에이전트를 실행하는 새 Networker 노드로 교체해야 합니다.
이 섹션의 주제는 다음과 같습니다.
20.1. 네트워크 노드 교체 준비 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) 오버클라우드에서 Networker 노드를 교체하려면 여러 준비 단계를 수행해야 합니다. 필요한 모든 준비 단계를 완료하면 Networker 노드 교체 프로세스 중에 합병증을 방지하는 데 도움이 됩니다.
사전 요구 사항
- RHOSP 배포는 3개 이상의 Networker 노드가 있는 고가용성입니다.
절차
- stack 사용자로 언더클라우드에 로그인합니다.
언더클라우드 인증 정보 파일을 소싱합니다.
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 언더클라우드에서 overcloud 스택의 현재 상태를 확인합니다.
openstack stack list --nested
$ openstack stack list --nestedCopy to Clipboard Copied! Toggle word wrap Toggle overflow overcloud 스택 및 해당 하위 스택의 상태가
CREATE_COMPLETE또는UPDATE_COMPLETE여야 합니다.Relax-and-Recover 툴을 실행하여 언더클라우드 노드의 최근 백업 이미지가 있는지 확인합니다.
자세한 내용은 언더클라우드 및 컨트롤 플레인 노드 백업 및 복원 가이드를 참조하십시오.
- root로 컨트롤러 노드에 로그인합니다.
컨테이너에서 대화형 bash 쉘을 열고 Galera 클러스터의 상태를 확인합니다.
pcs status
# pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 컨트롤러 노드가
마스터모드에 있는지 확인합니다.샘플 출력
* Container bundle set: galera-bundle [cluster.common.tag/rhosp16-openstack-mariadb:pcmklatest]: * galera-bundle-0 (ocf::heartbeat:galera): Master controller-0 * galera-bundle-1 (ocf::heartbeat:galera): Master controller-1 * galera-bundle-2 (ocf::heartbeat:galera): Master controller-2* Container bundle set: galera-bundle [cluster.common.tag/rhosp16-openstack-mariadb:pcmklatest]: * galera-bundle-0 (ocf::heartbeat:galera): Master controller-0 * galera-bundle-1 (ocf::heartbeat:galera): Master controller-1 * galera-bundle-2 (ocf::heartbeat:galera): Master controller-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHOSP director 노드에 로그인하고 nova-compute 서비스를 확인합니다.
sudo systemctl status tripleo_nova_compute openstack baremetal node list
$ sudo systemctl status tripleo_nova_compute $ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에 모든 유지보수 이외의 모드 노드가 up으로 표시됩니다.
모든 언더클라우드 서비스가 실행 중인지 확인합니다.
sudo systemctl -t service
$ sudo systemctl -t serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
20.2. 네트워크 노드 교체 링크 복사링크가 클립보드에 복사되었습니다!
특정 상황에서 고가용성 클러스터에 Networker 프로필이 있는 RHOSP(Red Hat OpenStack Platform) 노드가 실패할 수 있습니다. 네트워크 노드를 교체하려면 openstack overcloud deploy 명령을 실행하여 오버클라우드를 새 노드로 업데이트해야 합니다.
사전 요구 사항
- RHOSP 배포는 3개 이상의 Networker 노드가 있는 고가용성입니다.
- 추가하는 노드는 네트워크를 통해 클러스터의 다른 노드에 연결할 수 있어야 합니다.
- 에서 설명한 단계를 수행했습니다. 20.1절. “네트워크 노드 교체 준비”
절차
-
stack사용자로 언더클라우드에 로그인합니다. 언더클라우드 인증 정보 파일을 소싱합니다.
예제
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 삭제할 노드의 인덱스를 확인합니다.
openstack baremetal node list -c UUID -c Name -c "Instance UUID"
$ openstack baremetal node list -c UUID -c Name -c "Instance UUID"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow baremetal 노드 유지보수 set 명령을 사용하여 노드를 유지보수 모드로 설정합니다.예제
openstack baremetal node maintenance set e6499ef7-3db2-4ab4-bfa7-ef59539bf972
$ openstack baremetal node maintenance set e6499ef7-3db2-4ab4-bfa7-ef59539bf972Copy to Clipboard Copied! Toggle word wrap Toggle overflow JSON 파일을 생성하여 RHOSP director가 포함된 노드 풀에 새 노드를 추가합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 자세한 내용은 Director 설치 및 사용 가이드 의 오버클라우드에 노드 추가를 참조하십시오.
openstack overcloud node import명령을 실행하여 새 노드를 등록합니다.예제
openstack overcloud node import newnode.json
$ openstack overcloud node import newnode.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 노드를 등록한 후 다음 명령을 사용하여 인트로스펙션 프로세스를 시작합니다.
openstack baremetal node manage <node> openstack overcloud node introspect <node> --provide
$ openstack baremetal node manage <node> $ openstack overcloud node introspect <node> --provideCopy to Clipboard Copied! Toggle word wrap Toggle overflow openstack baremetal node set명령을 사용하여 Networker 프로필로 새 노드의 태그를 지정합니다.예제
openstack baremetal node set --property \ capabilities='profile:networker,boot_option:local' \ 91eb9ac5-7d52-453c-a017-c0e3d823efd0$ openstack baremetal node set --property \ capabilities='profile:networker,boot_option:local' \ 91eb9ac5-7d52-453c-a017-c0e3d823efd0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 삭제하려는 노드의 인덱스를 정의하는
~/templates/remove-networker.yaml환경 파일을 생성합니다.예제
parameters: NetworkerRemovalPolicies: [{'resource_list': ['1']}]parameters: NetworkerRemovalPolicies: [{'resource_list': ['1']}]Copy to Clipboard Copied! Toggle word wrap Toggle overflow ~/templates/node-count-networker.yaml환경 파일을 생성하고 파일에 있는 Networker 노드의 총 개수를 설정합니다.예제
parameter_defaults: OvercloudNetworkerFlavor: networker NetworkerCount: 3
parameter_defaults: OvercloudNetworkerFlavor: networker NetworkerCount: 3Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack overcloud deploy명령을 실행하고 코어 heat 템플릿, 환경 파일 및 수정한 환경 파일을 포함합니다.중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하기 때문에 환경 파일의 순서가 중요합니다.
openstack overcloud deploy --templates \ -e <your_environment_files> \ -e /home/stack/templates/node-count-networker.yaml \ -e /home/stack/templates/remove-networker.yaml
$ openstack overcloud deploy --templates \ -e <your_environment_files> \ -e /home/stack/templates/node-count-networker.yaml \ -e /home/stack/templates/remove-networker.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow RHOSP director는 기존 Networker 노드를 삭제하고, 새 노드를 생성한 후 오버클라우드 스택을 업데이트합니다.
검증
오버클라우드 스택의 상태를 확인합니다.
openstack stack list --nested
$ openstack stack list --nestedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 Networker 노드가 나열되고 이전 노드가 제거되었는지 확인합니다.
openstack server list -c ID -c Name -c Status
$ openstack server list -c ID -c Name -c StatusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
20.3. 노드 예약 및 네트워킹 서비스 정리 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) Networker 노드를 교체하기 위한 일환으로 데이터베이스에서 삭제된 노드에서 모든 Networking 서비스 에이전트를 제거합니다. 이렇게 하면 네트워킹 서비스에서 에이전트를 서비스 외부("dead")로 식별하지 않습니다. ML2/OVS 사용자의 경우 삭제된 노드에서 에이전트를 제거하면 DHCP 리소스를 다른 네트워크 노드에 자동으로 다시 예약할 수 있습니다.
사전 요구 사항
- RHOSP 배포는 3개 이상의 Networker 노드가 있는 고가용성입니다.
절차
- stack 사용자로 언더클라우드에 로그인합니다.
오버클라우드 인증 정보 파일을 소싱합니다.
예제
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow RHOSP 네트워킹 서비스 프로세스가 존재하고
overcloud-networker-1의 서비스 외(xxx)가 표시되는지 확인합니다.openstack network agent list -c ID -c Binary -c Host -c Alive | grep overcloud-networker-1
$ openstack network agent list -c ID -c Binary -c Host -c Alive | grep overcloud-networker-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow ML2/OVN의 샘플 출력
+--------------------------------------+-----------------------+-------+-------------------------------+ | ID | Host | Alive | Binary | +--------------------------------------+-----------------------+-------+-------------------------------+ | 26316f47-4a30-4baf-ba00-d33c9a9e0844 | overcloud-networker-1 | xxx | ovn-controller | +--------------------------------------+-----------------------+-------+-------------------------------+
+--------------------------------------+-----------------------+-------+-------------------------------+ | ID | Host | Alive | Binary | +--------------------------------------+-----------------------+-------+-------------------------------+ | 26316f47-4a30-4baf-ba00-d33c9a9e0844 | overcloud-networker-1 | xxx | ovn-controller | +--------------------------------------+-----------------------+-------+-------------------------------+Copy to Clipboard Copied! Toggle word wrap Toggle overflow ML2/OVS의 샘플 출력
Copy to Clipboard Copied! Toggle word wrap Toggle overflow overcloud-networker-1에 등록된 에이전트의 UUID를 캡처합니다.AGENT_UUIDS=$(openstack network agent list -c ID -c Host -c Alive -c Binary -f value | grep overcloud-networker-1 | cut -d\ -f1)
$ AGENT_UUIDS=$(openstack network agent list -c ID -c Host -c Alive -c Binary -f value | grep overcloud-networker-1 | cut -d\ -f1)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터베이스에서 나머지
overcloud-networker-1에이전트를 삭제합니다.for agent in $AGENT_UUIDS; do neutron agent-delete $agent ; done
$ for agent in $AGENT_UUIDS; do neutron agent-delete $agent ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 샘플 출력
Deleted agent(s): 26316f47-4a30-4baf-ba00-d33c9a9e0844
Deleted agent(s): 26316f47-4a30-4baf-ba00-d33c9a9e0844Copy to Clipboard Copied! Toggle word wrap Toggle overflow
21장. 태그가 있는 가상 장치 식별 링크 복사링크가 클립보드에 복사되었습니다!
21.1. 가상 장치 태그 지정 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform에서 여러 네트워크 인터페이스 또는 블록 장치로 VM 인스턴스를 시작하는 경우 장치 태그를 사용하여 각 장치의 의도된 역할을 인스턴스 운영 체제에 전달할 수 있습니다. 태그는 인스턴스 부팅 시 장치에 할당되며 메타데이터 API 및 구성 드라이브(활성화된 경우)를 통해 인스턴스 운영 체제에서 사용할 수 있습니다.
절차
가상 장치에 태그를 지정하려면 인스턴스를 만들 때 태그 매개 변수인
--block-device및--nic을 사용합니다.예제
nova boot test-vm --flavor m1.tiny --image cirros \ --nic net-id=55411ca3-83dd-4036-9158-bf4a6b8fb5ce,tag=nfv1 \ --block-device id=b8c9bef7-aa1d-4bf4-a14d-17674b370e13,bus=virtio,tag=database-server NFVappServer
$ nova boot test-vm --flavor m1.tiny --image cirros \ --nic net-id=55411ca3-83dd-4036-9158-bf4a6b8fb5ce,tag=nfv1 \ --block-device id=b8c9bef7-aa1d-4bf4-a14d-17674b370e13,bus=virtio,tag=database-server NFVappServerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 결과 태그는 기존 인스턴스 메타데이터에 추가되며 메타데이터 API 및 구성 드라이브 모두를 통해 사용할 수 있습니다.
이 예에서 다음 devices 섹션에서는 메타데이터를 채웁니다.
meta_data.json파일의 샘플 콘텐츠:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 장치 태그 메타데이터는 메타데이터 API에서
GET /openstack/latest/meta_data.json을 사용하여 사용할 수 있습니다.구성 드라이브가 활성화되고 인스턴스 운영 체제의
/configdrive에 마운트된 경우/configdrive/openstack/latest/meta_data.json에 메타데이터도 있습니다.