4.4. BGP용 데이터 플레인 네트워크 생성
데이터 플레인 네트워크를 생성하려면 NetConfig CR(사용자 정의 리소스)을 정의하고 데이터 플레인 네트워크의 모든 서브넷을 지정합니다. 데이터 플레인에 대해 하나 이상의 컨트롤 플레인 네트워크를 정의해야 합니다. VLAN 네트워크를 정의하여 구성 가능 네트워크(예: InternalAPI,Storage, External )에 대한 네트워크 격리를 생성할 수도 있습니다. 각 네트워크 정의에는 IP 주소 할당이 포함되어야 합니다.
다음 명령을 사용하여 NetConfig CRD 정의 및 사양 스키마를 확인합니다.
$ oc describe crd netconfig
$ oc explain netconfig.spec
프로세스
-
워크스테이션에
netconfig_bgp.yaml이라는 파일을 생성합니다. netconfig_bgp.yaml에 다음 구성을 추가하여NetConfigCR을 생성합니다.apiVersion: network.openstack.org/v1beta1 kind: NetConfig metadata: name: bgp-netconfig namespace: openstacknetconfig_bgp.yaml파일에서 각 데이터 플레인 네트워크의 토폴로지를 정의합니다. OpenShift(RHOSO) 네트워크에서 기본 Red Hat OpenStack Services를 사용하려면 각 네트워크에 대한 사양을 정의해야 합니다. 기본 RHOSO 네트워크에 대한 자세한 내용은 BGP의 OpenShift 네트워크의 기본 Red Hat OpenStack Services를 참조하십시오. 다음 예제에서는 데이터 플레인에 대한 격리된 네트워크를 생성합니다.apiVersion: network.openstack.org/v1beta1 kind: NetConfig metadata: name: bgp-netconfig namespace: openstack spec: networks: - name: ctlplane1 dnsDomain: ctlplane.example.com serviceNetwork: ctlplane mtu: 1500 subnets:2 - name: subnet13 allocationRanges:4 - end: 192.168.122.120 start: 192.168.122.100 - end: 192.168.122.200 start: 192.168.122.150 cidr: 192.168.122.0/24 gateway: 192.168.122.1 - name: subnet2 allocationRanges: - end: 192.168.123.120 start: 192.168.123.100 - end: 192.168.123.200 start: 192.168.123.150 cidr: 192.168.123.0/24 gateway: 192.168.123.1 - name: subnet3 allocationRanges: - end: 192.168.124.120 start: 192.168.124.100 - end: 192.168.124.200 start: 192.168.124.150 cidr: 192.168.124.0/24 gateway: 192.168.124.1 - name: internalapi dnsDomain: internalapi.example.com serviceNetwork: internalapi mtu: 1500 subnets: - name: subnet1 allocationRanges: - end: 172.17.0.250 start: 172.17.0.100 cidr: 172.17.0.0/24 vlan: 205 - name: external dnsDomain: external.example.com mtu: 1500 subnets: - name: subnet1 allocationRanges: - end: 192.168.32.250 start: 192.168.32.130 cidr: 192.168.32.0/20 vlan: 99 - name: storage dnsDomain: storage.example.com mtu: 1500 subnets: - name: subnet1 allocationRanges: - end: 172.18.0.250 start: 172.18.0.100 cidr: 172.18.0.0/24 vlan: 21 - name: tenant dnsDomain: tenant.example.com mtu: 1500 subnets: - name: subnet1 allocationRanges: - end: 172.19.0.250 start: 172.19.0.100 cidr: 172.19.0.0/24 vlan: 22netconfig_bgp.yaml파일에서 각 영역 내에서 연결을 설정하는 네트워크 인터페이스를 정의합니다. 다음 예제에서는eth2의 경우bgpnet0및 'eth3의 경우bgpnet1두 개의 네트워크 인터페이스를 정의합니다. 각 영역의 서브넷이 있습니다.- name: bgpnet01 dnsDomain: bgpnet0.example.com serviceNetwork: bgpnet0 mtu: 1500 subnets: - name: subnet0 allocationRanges: - end: 100.64.0.36 start: 100.64.0.1 cidr: 100.64.0.0/24 gateway: 100.64.0.1 routes: - destination: 0.0.0.0/0 nexthop: 100.64.0.1 - name: subnet1 allocationRanges: - end: 100.64.1.36 start: 100.64.1.1 cidr: 100.64.1.0/24 gateway: 100.64.1.1 routes: - destination: 0.0.0.0/0 nexthop: 100.64.1.1 - name: subnet2 allocationRanges: - end: 100.64.2.36 start: 100.64.2.1 cidr: 100.64.2.0/24 gateway: 100.64.2.1 routes: - destination: 0.0.0.0/0 nexthop: 100.64.2.1 - name: bgpnet12 dnsDomain: bgpnet1.example.com serviceNetwork: bgpnet1 mtu: 1500 subnets: - name: subnet0 allocationRanges: - end: 100.65.0.36 start: 100.65.0.1 cidr: 100.65.0.0/24 gateway: 100.65.0.1 routes: - destination: 0.0.0.0/0 nexthop: 100.65.0.1 - name: subnet1 allocationRanges: - end: 100.65.1.36 start: 100.65.1.1 cidr: 100.65.1.0/24 gateway: 100.65.1.1 routes: - destination: 0.0.0.0/0 nexthop: 100.65.1.1 - name: subnet2 allocationRanges: - end: 100.65.2.36 start: 100.65.2.1 cidr: 100.65.2.0/24 gateway: 100.65.2.1 routes: - destination: 0.0.0.0/0 nexthop: 100.65.2.1netconfig_bgp.yaml파일에서 각 노드에서 서로 통신하는 데 사용되는 루프백 인터페이스bgpmainnet의 IP 주소를 구성합니다.- name: bgpmainnet dnsDomain: bgpmainnet.example.com serviceNetwork: bgpmainnet mtu: 1500 subnets: - name: subnet0 allocationRanges: - end: 99.99.0.36 start: 99.99.0.2 cidr: 99.99.0.0/24 - name: subnet1 allocationRanges: - end: 99.99.1.36 start: 99.99.1.2 cidr: 99.99.1.0/24 - name: subnet2 allocationRanges: - end: 99.99.2.36 start: 99.99.2.2 cidr: 99.99.2.0/24- ' netconfig_bgp.yaml' 정의 파일을 저장합니다.
데이터 플레인 네트워크를 생성합니다.
$ oc create -f netconfig_bgp.yaml -n openstackbgpconfig.yml이라는BGPConfigurationCR 파일을 생성하여 BGP를 통해 Pod의 IP 주소를 알립니다.apiVersion: network.openstack.org/v1beta1 kind: BGPConfiguration metadata: name: bgpconfiguration namespace: openstack spec: {}BGPConfigurationCR을 생성하여 각 Pod에 필요한 FRR 구성을 생성합니다.$ oc create -f bgpconfig.yml
검증
데이터 플레인 네트워크가 생성되었는지 확인합니다.
$ oc get netconfig/openstacknetconfig -n openstack오류가 표시되면 기본
network-attach-definition및 노드 네트워크 구성 정책을 확인합니다.$ oc get network-attachment-definitions -n openstack $ oc get nncpFRR 구성이 생성되었는지 확인합니다.
$ oc get frrconfigurations -n metallb-system