预计完成时间:6-8 小时
可操作组件的所有者:PNET
2.8.1. 概览
此流程步骤会预配配置文件,以允许 Operations Suite 基础架构 (OI) 和 GDC 网络建立连接。
这些步骤需要访问一些 GDC 文件,并且需要连接到 GDC 实例的根管理员集群,才能检索运行时网络信息。
2.8.2. 准备工作
在部署流程的此阶段,必须满足以下条件:
两个 OIR 交换机均已连接线缆、开启电源、升级到相应版本,并已应用基本配置和 ACL 配置。
两个 OIF 防火墙均已连接线缆、开机、升级到相应版本、启用 FIPS-CC 模式,并已应用基本配置。
为了完成整个 GDC 连接配置,GDC 实例必须已完成网络引导,并已从 kind 集群移至根管理员集群。
2.8.3. 准备工作
收集以下信息并设置环境变量,为后续步骤准备环境。
OI 可以通过两种方式连接:本地连接或远程连接。本地连接使用同一数据中心内机架之间的光纤连接将 OI 直接连接到 GDC。
远程连接使用长距离传输连接到其他位置。此规范可在 interconnect.yaml 文件中提供,该文件是预配 GDC 互联配置所必需的。
此文件包含配置 GDC 互连所需的所有信息。
2.8.3.1. 互连 YAML 规范
| 属性 |
说明 |
示例 |
|---|---|---|
zones[ ] 地图 |
有关 OI 部署需要连接到的 GDC 单元的信息。 如需连接到 GDC 单元列表,请指定一个 列表,其中包含每个地区中每个 GDC 单元的信息。 zones可用区选项 |
示例:zones: |
2.8.3.2. 可用区选项
在 interconnect.yaml 文件中包含有关 GDC 单元格的信息:
| 属性 |
说明 |
使用情况 |
|---|---|---|
zoneName字符串 |
OI 部署需要连接到的 GDC Cell 缩写。 | zones: |
uplinkSpeeduint32 |
(可选)提供连接的上行速度:(10 或 100)。
|
值:10、100默认值: 10uplinkSpeed: 100 |
localInstanceint |
ocit.yaml 文件中 OI 部署网站的 InstanceID。本地连接使用同一数据中心内机架之间的光纤连接,将 Operations Suite 基础设施核心机架 (OIR) 站点直接连接到 GDC。 |
zones: |
remoteInstance[ ] int |
来自 ocit.yaml 文件的 OI 部署站点的 InstanceID(s)。远程连接使用长途传输连接到其他位置。 可以提供 remoteInstance 值列表,以便生成所有 OIR 网站的配置,以连接到给定的 GDC 单元。
|
zones: zones: |
cellCfg字符串 |
GDC 单元格配置路径,其中包含有关互连的所有信息。此文件将用于为 OIR 生成所有互连配置。\ 如果 interconnect.yaml 文件中未提供 `cellCfg`,则当 `zoneName` 与 GDC cell 缩写匹配时,occonfig 工具会使用 GDC cell 引导加载程序中的 Kubernetes API 来提取互连信息。 | 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 | 整数 | 要为其生成配置以连接到所提供的 L3-WAN 的 OIC 实例的实例 ID。 |
| bgp | L3-WAN 的 BGP 配置。 | |
| asn | 整数 | 用于设置 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 节点的接口的子网定义。 |
| 端口 | 整数 | 用于连接到 PE 节点的 OCCORE 交换机上的物理端口号。 |
| 子接口 | 整数 | 在物理端口上使用的子接口 ID (dot1q 标记)(如果有)。 |
2.8.3.3.1. 配置示例
以下示例展示了一个 interconnect.yaml 文件,其中运营套件基础设施核心机架 (OIR) 与 L3-WAN 对等互联,在 occoresw01 上有两个上行链路,在 occoresw02 上有一个上行链路:
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 | 用于修补 ACL 以通过 GDC 网络强制执行流量的配置。 |
| occoresw102.incremental | occoresw102 | 用于修补设备以连接到 GDC 实例的配置 |
| occoresw102.acl | occoresw102 | 用于修补 ACL 以通过 GDC 网络强制执行流量的配置。 |
| ocsw101.incremental | ocs1w01 | 用于修补设备以连接到 GDC 实例的配置 |
| ocsw101.acl | ocsw101 | 用于修补 ACL 以通过 GDC 网络强制执行流量的配置。 |
| ocsw102.incremental | ocsw102 | 用于修补设备以连接到 GDC 实例的配置 |
| ocsw102.acl | ocsw102 | 用于修补 ACL 以通过 GDC 网络强制执行流量的配置。 |
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,在以下示例中用作
$OC_WORKSTATIONS_NET
使用以下值填充以下变量,以调整路由政策:
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,在以下示例中用作
$OCCORE_ILOS_NET
使用以下值填充以下变量,以调整路由政策:
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