7.5. OpenStackNetConfig를 사용하여 네트워크 격리를 위한 VLAN 네트워크 생성
구성 가능한 네트워크에 대한 네트워크 격리를 구현하려면 추가 네트워크를 생성해야 합니다. 이 네트워크 분리를 수행하려면 구성 가능 네트워크를 개별 VLAN 네트워크에 배치할 수 있습니다. IP 주소 할당 외에도 OpenStackNetConfig 리소스에는 OpenShift Virtualization에서 가상 머신을 VLAN 네트워크에 연결하는 데 사용하는 네트워크 구성 정책을 정의하는 정보가 포함되어 있습니다.
기본 Red Hat OpenStack Platform 네트워크를 사용하려면 각 네트워크를 정의하는 OpenStackNetConfig 리소스를 생성해야 합니다.
표 7.1. 기본 Red Hat OpenStack Platform 네트워크
네트워크 | VLAN | CIDR | 할당 |
---|---|---|---|
외부 | 10 | 10.0.0.0/24 | 10.0.0.10 - 10.0.0.250 |
InternalApi | 20 | 172.17.0.0/24 | 172.17.0.10 - 172.17.0.250 |
스토리지 | 30 | 172.18.0.0/24 | 172.18.0.10 - 172.18.0.250 |
StorageMgmt | 40 | 172.19.0.0/24 | 172.19.0.10 - 172.19..250 |
테넌트 | 50 | 172.20.0.0/24 | 172.20.0.10 - 172.20.0.250 |
각 네트워크에 대해 다른 네트워킹 세부 정보를 사용하려면 사용자 지정 network_data.yaml
파일을 만들어야 합니다.
사전 요구 사항
- OpenShift Container Platform 클러스터가 작동하고 director Operator가 올바르게 설치되었는지 확인합니다.
-
워크스테이션에
oc
명령줄 툴을 설치했는지 확인합니다.
절차
네트워크 구성에 사용할 파일을 생성합니다. VLAN 네트워크의 리소스 사양을 포함합니다. 예를 들어, 각 작업자 노드의
enp6s0
및enp7s0
이더넷 장치에 연결된 Linux 브리지br-ex
및br-osp
를 통해 VLAN 태그된 트래픽을 관리하는 내부 API, 스토리지, 스토리지 mgmt, 테넌트 및 외부 네트워크에 대한 사양은 다음과 같습니다.kind: OpenStackNetConfig metadata: name: openstacknetconfig spec: attachConfigurations: br-osp: nodeNetworkConfigurationPolicy: nodeSelector: node-role.kubernetes.io/worker: "" desiredState: interfaces: - bridge: options: stp: enabled: false port: - name: enp7s0 description: Linux bridge with enp7s0 as a port name: br-osp state: up type: linux-bridge mtu: 1500 br-ex: nodeNetworkConfigurationPolicy: nodeSelector: node-role.kubernetes.io/worker: "" desiredState: interfaces: - bridge: options: stp: enabled: false port: - name: enp6s0 description: Linux bridge with enp6s0 as a port name: br-ex state: up type: linux-bridge mtu: 1500 # optional DnsServers list dnsServers: - 172.22.0.1 # optional DnsSearchDomains list dnsSearchDomains: - osptest.test.metalkube.org - some.other.domain # DomainName of the OSP environment domainName: osptest.test.metalkube.org networks: - name: Control nameLower: ctlplane subnets: - name: ctlplane ipv4: allocationEnd: 172.22.0.250 allocationStart: 172.22.0.10 cidr: 172.22.0.0/24 gateway: 172.22.0.1 attachConfiguration: br-osp - name: InternalApi nameLower: internal_api mtu: 1350 subnets: - name: internal_api attachConfiguration: br-osp vlan: 20 ipv4: allocationEnd: 172.17.0.250 allocationStart: 172.17.0.10 cidr: 172.17.0.0/24 - name: External nameLower: external subnets: - name: external ipv4: allocationEnd: 10.0.0.250 allocationStart: 10.0.0.10 cidr: 10.0.0.0/24 gateway: 10.0.0.1 attachConfiguration: br-ex - name: Storage nameLower: storage mtu: 1500 subnets: - name: storage ipv4: allocationEnd: 172.18.0.250 allocationStart: 172.18.0.10 cidr: 172.18.0.0/24 vlan: 30 attachConfiguration: br-osp - name: StorageMgmt nameLower: storage_mgmt mtu: 1500 subnets: - name: storage_mgmt ipv4: allocationEnd: 172.19.0.250 allocationStart: 172.19.0.10 cidr: 172.19.0.0/24 vlan: 40 attachConfiguration: br-osp - name: Tenant nameLower: tenant vip: False mtu: 1500 subnets: - name: tenant ipv4: allocationEnd: 172.20.0.250 allocationStart: 172.20.0.10 cidr: 172.20.0.0/24 vlan: 50 attachConfiguration: br-osp
linux-bridge
에서 네트워크 격리에 VLAN을 사용하면 다음과 같은 일이 발생합니다.-
director Operator는 리소스에 지정된 브리지 인터페이스에 대한 노드 네트워크 구성 정책을 생성하여
nmstate
를 사용하여 작업자 노드에서 브리지를 구성합니다. -
director Operator는 Multus CNI 플러그인 구성을 정의하는 각 네트워크에 대한 네트워크 연결 정의를 생성합니다. 네트워크 연결 정의에서 VLAN ID를 지정하면 Multus CNI 플러그인이 브리지에서
vlan-filtering
을 활성화합니다. -
director Operator는 가상 머신의 각 네트워크에 전용 인터페이스를 연결합니다. 즉,
OpenStackVMSet
의 네트워크 템플릿은 다중 NIC 네트워크 템플릿입니다.
리소스 사양에 다음 값을 설정합니다.
metadata.name
- OpenStackNetConfig의 이름으로 설정합니다.
spec
네트워크 및 네트워크 관련 연결을 위한 네트워크 구성을 설정합니다. 이 섹션에서 사용할 수 있는 값에 대한 설명을 보려면
openstacknetconfig
CRD의 사용자 정의 리소스 정의에서 사양 스키마를 확인합니다.$ oc describe crd openstacknetconfig
네트워크 사양 구성을 완료하면 파일을 저장합니다.
-
director Operator는 리소스에 지정된 브리지 인터페이스에 대한 노드 네트워크 구성 정책을 생성하여
네트워크 구성을 생성합니다.
$ oc apply -f openstacknetconfig.yaml -n openstack
검증
OpenStackNetConfig API 및 생성된 하위 리소스를 확인합니다.
$ oc get openstacknetconfig/openstacknetconfig -n openstack $ oc get openstacknetattachment -n openstack $ oc get openstacknet -n openstack
오류가 표시되면 기본
network-attach-definition
및 노드 네트워크 구성 정책을 확인합니다.$ oc get network-attachment-definitions -n openstack $ oc get nncp