2.8. OI 네트워크 프로비저닝 GDC 연결

예상 소요 시간: 6~8시간

작동 가능한 구성요소 소유자: PNET

2.8.1. 개요

이 단계에서는 운영 제품군 인프라 (OI)와 GDC 네트워크가 연결을 설정할 수 있도록 하는 구성 파일을 프로비저닝합니다.

이 단계에서는 일부 GDC 파일에 액세스해야 하며, 런타임 네트워크 정보를 가져오기 위해 GDC 인스턴스의 루트 관리자 클러스터에 연결해야 합니다.

2.8.2. 시작하기 전에

배포 프로세스의 이 단계에서는 다음 사항이 충족되어야 합니다.

  1. 두 OIR 스위치 모두 케이블로 연결되고, 전원이 켜지고, 적절한 버전으로 업그레이드되고, 기본 및 ACL 구성이 적용됩니다.

  2. 두 OIF 방화벽 모두 케이블로 연결되고, 전원이 켜지고, 적절한 버전으로 업그레이드되고, FIPS-CC 모드가 사용 설정되고, 기본 구성이 적용됩니다.

  3. 전체 GDC 연결 프로비저닝을 완료하려면 GDC 인스턴스가 네트워크 부트스트랩을 완료하고 kind 클러스터에서 루트 관리자 클러스터로 이동해야 합니다.

2.8.3. 준비

다음 정보를 수집하고 환경 변수를 설정하여 다음 단계를 위한 환경을 준비합니다.

OI는 로컬 또는 원격으로 두 가지 방법으로 연결할 수 있습니다. 로컬 연결은 동일한 데이터 센터의 랙 간 광섬유 연결을 사용하여 OI를 GDC에 직접 연결합니다. 원격 연결은 장거리 전송을 사용하여 다른 위치에 연결됩니다. 이 사양은 GDC 상호 연결 구성을 프로비저닝하는 데 필요한 interconnect.yaml 파일에 제공할 수 있습니다. 이 파일에는 GDC 인터커넥트를 구성하는 데 필요한 모든 정보가 포함되어 있습니다.

2.8.3.1. 상호 연결 YAML 사양

속성
설명

zones
[ ] map
OI 배포가 연결해야 하는 GDC 셀에 관한 정보입니다.

GDC 셀 목록에 연결하려면
각 영역에 있는 각 GDC 셀의 정보가 포함된 zones 목록을 지정합니다. 영역 옵션
예:
zones:
- zoneName: kb
- uplinkSpeed: 10
localInstanceIDs: 2

remoteInstanceIDs:
- 1
- cellCfg: path/to/cellcfg

- zoneName: ah
- uplinkSpeed: 100
localInstanceIDs: 3

- cellCfg: path/to/cellcfg

2.8.3.2. 영역 옵션

interconnect.yaml 파일에서 GDC 셀에 관한 정보를 전달합니다.

속성
설명
사용량
zoneName
문자열
OI 배포가 연결해야 하는 GDC 셀 약어입니다.
zones:
- zoneName: kb
uplinkSpeed
uint32
(선택사항) 연결의 업링크 속도를 제공합니다(10 또는 100). 값:10, 100
기본값: 10

uplinkSpeed: 100
localInstance
int
ocit.yaml 파일의 OI 배포 사이트 InstanceID입니다.
로컬 연결은 동일한 데이터 센터의 랙 간 광섬유 연결을 사용하여 Operations Suite Infrastructure Core Rack (OIR) 사이트를 GDC에 직접 연결합니다.
zones:
- zoneName: kb
localInstanceIDs: 1
remoteInstance
[ ] int
ocit.yaml 파일의 OI 배포 사이트 InstanceID(s)
원격 연결은 장거리 전송을 사용하여 다른 위치에 연결됩니다. 주어진 GDC 셀에 연결하기 위해 모든 OIR 사이트의 구성이 생성되도록 remoteInstance 값 목록을 제공할 수 있습니다.
zones:
- zoneName: kb
remoteInstanceIDs:
- 1



zones:
- zoneName: kb
remoteInstanceIDs:
- 1

- 2

- 3



cellCfg
문자열
인터커넥트에 관한 모든 정보가 포함된 GDC 셀 구성 경로입니다. 이는 OIR의 모든 상호 연결 구성을 생성하는 데 사용됩니다.\ interconnect.yaml 파일에 `cellCfg` 가 제공되지 않으면 occonfig 도구는 GDC 셀 부트스트래퍼의 Kubernetes API를 사용하여 `zoneName` 이 GDC 셀 약어와 일치하는 경우 상호 연결 정보를 가져옵니다.
zones:
- cellCfg: /path/to/cellcfg

로컬 연결인 경우 interconnect.yaml 파일을 다음과 같이 구성합니다.

zones:
  - zoneName: ah
    uplinkSpeed: 100
    localInstanceID: 1
    cellCfg: /path/to/cellcfg

원격 연결인 경우 interconnect.yaml 파일을 다음과 같이 구성합니다.

zones:
  - zoneName: ah
    uplinkSpeed: 100
      remoteInstanceIDs:
      - 2
    cellCfg: /path/to/cellcfg

다중 사이트 OI 배포의 경우 interconnect.yaml 파일을 다음과 같이 지정합니다.

zones:
  - zoneName: ah
    uplinkSpeed: 100
    localInstanceID: 1
    remoteInstanceIDs:
      - 2
    cellCfg: /path/to/cellcfg

2.8.3.3. WAN 옵션

다음 표에는 interconnect.yaml 파일의 L3-WAN에 관한 정보가 포함되어 있습니다.

L3-WAN 구성을 프로비저닝하는 경우 생성된 기본 구성에 L3-WAN 기능 플래그가 사용 설정되어 있고 wan-transit ASN이 선언되어 있는지 확인합니다.

속성 유형 설명
wanName 문자열 OIC에 연결되는 L3-WAN의 이름입니다. 인터페이스 및 BGP 인접 관계의 설명에 사용됩니다.
operationsCIDRs [ ] CIDR L3 WAN에서 예상되고 OIC에서 허용되는 CIDR 블록 집합입니다. 이를 통해 고객 NOC와 OC-WORKSTATIONS 간의 연결을 설정할 수 있습니다.
인스턴스 L3-WAN에 연결해야 하는 각 인스턴스의 구성
instanceID int 제공된 L3-WAN에 연결하기 위해 구성이 생성될 OIC 인스턴스의 인스턴스 ID입니다.
bgp L3-WAN의 BGP 구성입니다.
asn int eBGP 연결을 설정할 L3-WAN PE 노드의 BGP ASN입니다.
기기 각 OCCORE 스위치의 특정 구성입니다.
deviceName 문자열 설명에 사용되는 기기 이름입니다. ocit.yaml 파일 (ocit config generation)에서 생성된 구성 파일 이름과 같아야 합니다.
업링크 L3-WAN PE 노드에 연결되는 포트의 특정 구성입니다.
uplinkName 문자열 인터페이스 설명에 사용되는 인터페이스 이름입니다.
bgpPassword 문자열 피어링의 BGP 비밀번호(일반 텍스트)입니다.
ip 문자열 L3-WAN의 PE 노드에 연결된 로컬 포트의 IPv4 주소입니다.
게이트웨이 문자열 PE 노드에 연결되는 원격 포트의 IPv4 주소로, BGP 인접 항목 주소에도 사용됩니다.
서브넷 문자열 PE 노드에 연결하는 인터페이스의 서브넷 정의입니다.
포트 int PE 노드에 연결하는 데 사용되는 OCCORE 스위치의 실제 포트 번호입니다.
하위 인터페이스 int 물리적 포트 위에 사용되는 하위 인터페이스 ID (dot1q 태그)(있는 경우)입니다.

2.8.3.3.1. 구성 예시

다음 예에서는 occoresw01에 업링크 2개, occoresw02에 업링크 1개가 있는 L3-WAN과 피어링되는 Operations Suite Infrastructure Core Rack (OIR)이 있는 interconnect.yaml 파일을 보여줍니다.

zones:
  - zoneName: kb
    uplinkSpeed: 10
    localInstanceID: 1
    cellCfg: /path/to/cellcfg
wan:
  - wanName:L3WANName
    operationsCIDRs:
      - ipFamily: IPv4
        ipv4: 172.22.48.0/24
      - ipFamily: IPv4
        ipv4: 172.22.49.0/24
      - ipFamily: IPv4
        ipv4: 172.22.50.0/24
      - ipFamily: IPv4
        ipv4: 172.22.51.0/24
    instances:
    - instanceID: 1
      bgp:
        asn: 65515
      devices:
        - deviceName: occoresw101
          uplinks:
          - uplinkName: AA
            bgpPassword: admin!123
            numberedIpGroup:
              ipFamily: IPv4
              ipv4:
                ip: 10.1.0.1
                subnet:
                  gateway: 10.1.0.0
                  subnet: 10.1.0.0/31
            port:
              port: 33
          - uplinkName: AB
            bgpPassword: admin!123
            numberedIpGroup:
              ipFamily: IPv4
              ipv4:
                ip: 10.1.0.3
                subnet:
                  gateway: 10.1.0.2
                  subnet: 10.1.0.2/31
            port:
              port: 34
              subinterface: 100
        - deviceName: occoresw102
          uplinks:
          - uplinkName: AC
            bgpPassword: admin!123
            numberedIpGroup:
              ipFamily: IPv4
              ipv4:
                ip: 10.2.0.3
                subnet:
                  gateway: 10.2.0.2
                  subnet: 10.2.0.2/31
            port:
              port: 35

2.8.4. 스위치 구성 생성

이 단계에서는 GDC에 연결을 프로비저닝하기 위해 네트워크 기기에 적용할 패치 구성을 생성합니다.

스위치 구성을 생성합니다.

occonfigtool generate cell config -c /path/to/interconnect.yaml -o path/to/ocit.yaml

이렇게 하면 각 사이트에 대해 다음 구성 파일이 생성됩니다.

구성 파일 기기 함수
occoresw101.incremental occoresw101 GDC 인스턴스에 연결하기 위해 기기를 패치하는 구성
occoresw101.acl occoresw101 GDC 네트워크를 사용하여 트래픽 적용을 위해 ACL을 패치하는 구성입니다.
occoresw102.incremental occoresw102 GDC 인스턴스에 연결하기 위해 기기를 패치하는 구성
occoresw102.acl occoresw102 GDC 네트워크를 사용하여 트래픽 적용을 위해 ACL을 패치하는 구성입니다.
ocsw101.incremental ocs1w01 GDC 인스턴스에 연결하기 위해 기기를 패치하는 구성
ocsw101.acl ocsw101 GDC 네트워크를 사용하여 트래픽 적용을 위해 ACL을 패치하는 구성입니다.
ocsw102.incremental ocsw102 GDC 인스턴스에 연결하기 위해 기기를 패치하는 구성
ocsw102.acl ocsw102 GDC 네트워크를 사용하여 트래픽 적용을 위해 ACL을 패치하는 구성입니다.

2.8.5. 방화벽 정책 생성

방화벽 규칙을 생성하려면 occonfigtool가 루트 관리자 클러스터의 Kubernetes API에 액세스해야 합니다. KUBECONFIG 환경 변수가 root-admin-kubeconfig로 설정되어 있는지 확인합니다.

export KUBECONFIG=/root/release/root-admin/root-admin-kubeconfig
export OCIT_CONFIG_FILE=/path/to/ocit.yaml
export OCIT_INTERCONNECT_CONFIG_FILE=/path/to/interconnect.yaml

다음을 실행하여 방화벽 규칙을 생성합니다.

occonfigtool generate fwrules -c ${OCIT_INTERCONNECT_CONFIG_FILE:?} -o ${OCIT_CONFIG_FILE:?}
구성 파일 기기 함수
firewall-rules.base occorefw01 GDC 인스턴스에 연결하기 위해 기기를 패치하는 구성

2.8.6. 구성 적용

출력 파일을 사용하여 이전 단계에서 스위치방화벽에 사용한 것과 동일한 절차를 사용하여 각 네트워크 기기에 구성을 적용합니다.

2.8.7. GDC RoutePolicy 리소스 업데이트

GDC는 경로 정책을 사용하여 라우팅 테이블에 공지할 수 있는 네트워크를 적용합니다.

OI를 외부 네트워크로 추가할 때는 새 네트워크를 예상하도록 RoutePolicy 커스텀 리소스를 업데이트해야 합니다.

이렇게 하려면 kubectl를 사용하여 루트 관리자 클러스터에 액세스해야 합니다. 적절한 KUBECONFIG 변수가 설정되어 있는지 확인합니다.

export KUBECONFIG=/root/deploy/root-admin/root-admin-kubeconfig

확인하려면 다음을 실행하세요.

kubectl get routepolicy -n gpc-system

다음과 같은 출력 또는 이와 유사한 출력이 표시됩니다.

NAME                                     AGE
customerpeering-routepolicy              19d
datacenter-routepolicy                   19d
mgmtnetworkoperationcenter-routepolicy   19d
networkoperationcenter-routepolicy       19d

이 단계에서는 networkoperationcenter-routepolicymgmtnetworkoperationcenter-routepolicy을 살펴봅니다.

2.8.7.1. 데이터 네트워크 경로 정책 패치

ocinfo.opscenter.local.txt에서 다음 서브넷 (네트워크 및 접두사 길이 포함)을 가져옵니다.

  • OCCORE-SERVERS(다음 예에서 $OCCORE_SERVERS_NET로 사용됨)
  • 다음 예에서 $OC_WORKSTATIONS_NET로 사용되는 OC-WORKSTATIONS

다음 변수를 채워 경로 정책을 조정하는 데 이러한 값을 사용합니다.

export OCCORE_SERVERS_NET=$OCCORE_SERVERS_NET
export OC_WORKSTATIONS_NET=$OC_WORKSTATIONS_NET

예를 들면 다음과 같습니다.

export OCCORE_SERVERS_NET=172.21.0.0/24
export OC_WORKSTATIONS_NET=172.21.32.0/24

환경 변수를 설정한 후 다음 kubectl 명령어를 실행하여 경로 정책을 업데이트합니다.

kubectl patch routepolicy/networkoperationcenter-routepolicy -n gpc-system \
  --type=json -p="[
    {
        'op': 'add',
        'path': '/spec/in/ipPrefixList/0',
        'value': {
            'action': 'Permit',
            'ipPrefix': '${OCCORE_SERVERS_NET:?}',
            'prefixLengthMatchers': [
                {
                    'operator': 'LE',
                    'prefixLength': 32
                }
            ]
        }
    }
]"

kubectl patch routepolicy/networkoperationcenter-routepolicy -n gpc-system \
  --type=json -p="[
    {
        'op': 'add',
        'path': '/spec/in/ipPrefixList/0',
        'value': {
            'action': 'Permit',
            'ipPrefix': '${OC_WORKSTATIONS_NET:?}',
            'prefixLengthMatchers': [
                {
                    'operator': 'LE',
                    'prefixLength': 32
                }
            ]
        }
    }
]"

출력 예시:

routepolicy.system.private.gdc.goog/networkoperationcenter-routepolicy patched

2.8.7.2. 패치 관리 네트워크 라우팅 정책

ocinfo.opscenter.local.txt에서 다음 서브넷 (네트워크 및 접두사 길이 포함)을 가져옵니다.

  • OCCORE-JUMPHOSTS(다음 예에서 $OCCORE_JUMPHOSTS_NET로 사용됨)
  • 다음 예시에서 $OCCORE_ILOS_NET로 사용되는 OCCORE-ILOS

다음 변수를 채워 경로 정책을 조정하는 데 이러한 값을 사용합니다.

export OCCORE_JUMPHOSTS_NET=$OCCORE_JUMPHOSTS_NET
export OCCORE_ILOS_NET=$OCCORE_ILOS_NET

예를 들면 다음과 같습니다.

export OCCORE_JUMPHOSTS_NET=172.21.2.0/27
export OCCORE_ILOS_NET=172.21.2.32/27

환경 변수를 설정한 후 다음 kubectl 명령어를 실행하여 라우팅 정책을 업데이트합니다.

kubectl patch routepolicy/mgmtnetworkoperationcenter-routepolicy -n gpc-system \
  --type=json -p="[
    {
        'op': 'add',
        'path': '/spec/in/ipPrefixList/0',
        'value': {
            'action': 'Permit',
            'ipPrefix': '${OCCORE_JUMPHOSTS_NET:?}',
            'prefixLengthMatchers': [
                {
                    'operator': 'LE',
                    'prefixLength': 32
                }
            ]
        }
    }
]"

kubectl patch routepolicy/mgmtnetworkoperationcenter-routepolicy -n gpc-system \
  --type=json -p="[
    {
        'op': 'add',
        'path': '/spec/in/ipPrefixList/0',
        'value': {
            'action': 'Permit',
            'ipPrefix': '${OCCORE_ILOS_NET:?}',
            'prefixLengthMatchers': [
                {
                    'operator': 'LE',
                    'prefixLength': 32
                }
            ]
        }
    }
]"

출력 예시:

routepolicy.system.private.gdc.goog/mgmtnetworkoperationcenter-routepolicy patched