예상 소요 시간: 6~8시간
작동 가능한 구성요소 소유자: PNET
2.8.1. 개요
이 단계에서는 운영 제품군 인프라 (OI)와 GDC 네트워크가 연결을 설정할 수 있도록 하는 구성 파일을 프로비저닝합니다.
이 단계에서는 일부 GDC 파일에 액세스해야 하며, 런타임 네트워크 정보를 가져오기 위해 GDC 인스턴스의 루트 관리자 클러스터에 연결해야 합니다.
2.8.2. 시작하기 전에
배포 프로세스의 이 단계에서는 다음 사항이 충족되어야 합니다.
두 OIR 스위치 모두 케이블로 연결되고, 전원이 켜지고, 적절한 버전으로 업그레이드되고, 기본 및 ACL 구성이 적용됩니다.
두 OIF 방화벽 모두 케이블로 연결되고, 전원이 켜지고, 적절한 버전으로 업그레이드되고, FIPS-CC 모드가 사용 설정되고, 기본 구성이 적용됩니다.
전체 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: |
2.8.3.2. 영역 옵션
interconnect.yaml 파일에서 GDC 셀에 관한 정보를 전달합니다.
| 속성 |
설명 |
사용량 |
|---|---|---|
zoneName문자열 |
OI 배포가 연결해야 하는 GDC 셀 약어입니다. | zones: |
uplinkSpeeduint32 |
(선택사항) 연결의 업링크 속도를 제공합니다(10 또는 100).
|
값:10, 100기본값: 10uplinkSpeed: 100 |
localInstanceint |
ocit.yaml 파일의 OI 배포 사이트 InstanceID입니다.로컬 연결은 동일한 데이터 센터의 랙 간 광섬유 연결을 사용하여 Operations Suite Infrastructure Core Rack (OIR) 사이트를 GDC에 직접 연결합니다. |
zones: |
remoteInstance[ ] int |
ocit.yaml 파일의 OI 배포 사이트 InstanceID(s)원격 연결은 장거리 전송을 사용하여 다른 위치에 연결됩니다. 주어진 GDC 셀에 연결하기 위해 모든 OIR 사이트의 구성이 생성되도록 remoteInstance 값 목록을 제공할 수 있습니다.
|
zones: zones: |
cellCfg문자열 |
인터커넥트에 관한 모든 정보가 포함된 GDC 셀 구성 경로입니다. 이는 OIR의 모든 상호 연결 구성을 생성하는 데 사용됩니다.\ interconnect.yaml 파일에 `cellCfg` 가 제공되지 않으면 occonfig 도구는 GDC 셀 부트스트래퍼의 Kubernetes API를 사용하여 `zoneName` 이 GDC 셀 약어와 일치하는 경우 상호 연결 정보를 가져옵니다. | zones: |
로컬 연결인 경우 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-routepolicy 및 mgmtnetworkoperationcenter-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