在云中首次启动 NetScaler 设备时应用 NetScaler VPX 配置
您可以在云环境中首次启动 NetScaler 设备时应用 NetScaler VPX 配置。 本文档将此阶段作为预引导阶段进行讨论。 因此,在某些情况下,例如 ADC 池许可时,特定的 VPX 实例会在更短的时间内启动。 此功能可在 Microsoft Azure、Google 云端平台和 AWS 云中使用。
用户数据是什么
在云环境中预配 VPX 实例时,可以选择将用户数据传递给实例。 用户数据允许您执行常见的自动配置任务、自定义实例的启动行为以及在实例启动后运行脚本。 首次启动时,NetScaler VPX 实例会执行以下任务:
- 读取用户数据。
- 解释用户数据中提供的配置。
- 在启动时应用新添加的配置。
如何在云实例中提供预启动用户数据
可以使用 XML 格式向云实例提供预引导用户数据。 不同的云有不同的接口来提供用户数据。
使用 AWS 控制台提供预引导用户数据
使用 AWS 控制台预配 NetScaler VPX 实例时,导航到 Configure Instance Details(配置实例详细信息)> Advanced Details(高级详细信息),然后在 User data(用户数据)字段中提供预引导用户数据配置。
有关每个步骤的详细说明,请参阅 使用 AWS Web 控制台在 AWS 上部署 NetScaler VPX 实例。 有关更多信息,请参阅有关启动实例的 AWS 文档。
注意:
NetScaler VPX 版本 13.1.48.x 及更高版本支持预启动用户数据功能的仅限 AWS IMDSv2 模式。
使用 AWS CLI 提供预启动用户数据
在 AWS CLI 中键入以下命令:
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type t2.micro \
--count 1 \
--subnet-id subnet-08fc749671b2d077c \
--key-name MyKeyPair \
--security-group-ids sg-0b0384b66d7d692f9 \
--user-data file://my_script.txt
<!--NeedCopy-->
有关更多信息,请参阅有关 运行实例的 AWS 文档。
有关更多信息,请参阅有关 使用实例用户数据的 AWS 文档
使用 Azure 控制台提供预引导用户数据
当您使用 Azure 控制台配置 NetScaler VPX 实例时,导航到 创建虚拟机 高级选项卡。 在 Custom data(自定义数据)字段中,提供预引导用户数据配置。
使用 Azure CLI 提供预引导用户数据
在 Azure CLI 中键入以下命令:
az vm create \
--resource-group myResourceGroup \
--name MyVm \
--image debian \
--custom-data MyCloudInitScript.txt \
<!--NeedCopy-->
Example:
az vm create --resource-group MyResourceGroup -name MyVm --image debian --custom-data MyCloudInitScript.txt
<!--NeedCopy-->
可以将自定义数据或预引导配置作为文件传递给“—custom-data”参数。 在此示例中,文件名为 MyCloudInitScript.txt。
有关更多信息,请参阅 Azure CLI 文档。
使用 GCP 控制台提供预引导用户数据
当您使用 GCP 控制台配置 NetScaler VPX 实例时,请填写实例的属性。 展开 Management, security, disks, networking, sole tenancy(管理、安全性、磁盘、网络连接和唯一租赁)。 导航到 Management(管理)选项卡。 在 Automation(自动化)部分中,在 Startup Script(启动脚本)字段中提供预引导用户数据配置。
有关使用 GCP 创建 VPX 实例的详细信息,请参阅 在 Google Cloud Platform 上部署 NetScaler VPX 实例。
使用 gcloud CLI 提供预启动用户数据
在 GCP CLI 中键入以下命令:
gcloud compute instances create INSTANCE_NAMES --metadata-from-file=startup-script=LOCAL_FILE_PATH
<!--NeedCopy-->
元数据源自文件- 从存储在 <LOCAL_FILE_PATH>。
有关更多信息,请参阅 gcloud CLI 文档
预引导用户数据格式
必须以 XML 格式向云实例提供预引导用户数据。 您在启动期间通过云基础架构提供的 NetScaler 预启动用户数据可以包括以下四个部分:
- NetScaler 配置用
<NS-CONFIG>
标签表示。 - 自定义引导用
<NS-BOOTSTRAP>
标签表示的 NetScaler。 - 将用户脚本存储在以
<NS-SCRIPTS>
标签表示的 NetScaler 中。 - 用
<NS-LICENSE-CONFIG>
标记表示的池许可配置。
可以在 ADC 预引导配置中按任意顺序提供前面的四个部分。 在提供预引导用户数据时,请确保严格遵循以下部分中显示的格式。
注意:
整个预引导用户数据配置必须包含在
<NS-PRE-BOOT-CONFIG>
标记中,如以下示例所示。
示例 1:
<NS-PRE-BOOT-CONFIG>
<NS-CONFIG> </NS-CONFIG>
<NS-BOOTSTRAP> </NS-BOOTSTRAP>
<NS-SCRIPTS> </NS-SCRIPTS>
<NS-LICENSE-CONFIG> </NS-LICENSE-CONFIG>
</NS-PRE-BOOT-CONFIG>
<!--NeedCopy-->
示例 2:
<NS-PRE-BOOT-CONFIG>
<NS-LICENSE-CONFIG> </NS-LICENSE-CONFIG>
<NS-SCRIPTS> </NS-SCRIPTS>
<NS-BOOTSTRAP> </NS-BOOTSTRAP>
<NS-CONFIG> </NS-CONFIG>
</NS-PRE-BOOT-CONFIG>
<!--NeedCopy-->
使用 <NS-CONFIG>
标签提供需要在预启动阶段应用于 VPX 实例的特定 NetScaler VPX 配置。
注意:
<NS-CONFIG>
部分必须具有有效的 ADC CLI 命令。 没有验证 CLIS 是否存在语法错误或格式问题。
NetScaler 配置
使用 <NS-CONFIG>
标签提供需要在预启动阶段应用于 VPX 实例的特定 NetScaler VPX 配置。
注意:
<NS-CONFIG>
部分必须具有有效的 ADC CLI 命令。 没有验证 CLIS 是否存在语法错误或格式问题。
Example:
在以下示例中,<NS-CONFIG>
部分提供了配置的详细信息。 ID 为 “5” 的 VLAN 已配置并绑定到 SNIP (5.0.0.1)。 此外,还配置了负载平衡虚拟服务器 (4.0.0.101)。
你可以从这里复制上面的屏幕截图中显示的配置:
<NS-PRE-BOOT-CONFIG>
<NS-CONFIG>
add vlan 5
add ns ip 5.0.0.1 255.255.255.0
bind vlan 5 -IPAddress 5.0.0.1 255.255.255.0
enable ns feature WL SP LB RESPONDER
add server 5.0.0.201 5.0.0.201
add service preboot_s5_201 5.0.0.201 HTTP 80 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip
NO -useproxyport YES -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO
add lb vserver preboot_v4_101 HTTP 4.0.0.101 80 -persistenceType NONE -cltTimeout 180
</NS-CONFIG>
</NS-PRE-BOOT-CONFIG>
<!--NeedCopy-->
NetScaler VPX 实例提供了本 <NS-CONFIG>
节中应用的配置,如下图所示。
用户脚本
使用 <NS-SCRIPTS>
标签提供必须在 NetScaler VPX 实例中存储和运行的任何脚本。
可以在 <NS-SCRIPTS>
标记中包含许多脚本。 每个脚本都必须包含在 <SCRIPT>
标记中。 每个 <SCRIPT>
部分对应一个脚本,并使用以下子标记包含脚本的所有详细信息。
-
<SCRIPT-NAME>:
指示必须存储的脚本文件的名称。 -
<SCRIPT-CONTENT>:
指示必须存储的文件的内容。 -
<SCRIPT-TARGET-LOCATION>:
指示必须存储此文件的指定目标位置。 如果未提供目标位置,则默认情况下,文件或脚本将保存在“/nsconfig”目录中。 -
<SCRIPT-NS-BOOTUP>:
指定用于运行脚本的命令。- 如果使用
<SCRIPT-NS-BOOTUP>
部分,该部分中提供的命令将存储在“/nsconfig/nsafter.sh”中,并且这些命令在数据包引擎启动后作为“nsafter.sh”执行的一部分运行。 - 如果不使用
<SCRIPT-NS-BOOTUP>
部分,脚本文件将存储在指定的目标位置。
- 如果使用
示例 1:
在此示例中,<NS-SCRIPTS>
标记仅包含一个脚本的详细信息:script-1.sh。 “script-1.sh”脚本保存在“/var”目录中。 脚本使用指定的内容填充,并在数据包引擎启动后使用“sh /var/script-1.sh”命令运行。
你可以从这里复制上面的屏幕截图中显示的配置:
<NS-PRE-BOOT-CONFIG>
<NS-SCRIPTS>
<SCRIPT>
<SCRIPT-CONTENT>
#Shell script
echo "Running script 1" > /var/script-1.output
date >> /var/script-1.output
</SCRIPT-CONTENT>
<SCRIPT-NAME> script-1.sh </SCRIPT-NAME>
<SCRIPT-TARGET-LOCATION> /var/ </SCRIPT-TARGET-LOCATION>
<SCRIPT-NS-BOOTUP>sh /var/script-1.sh</SCRIPT-NS-BOOTUP>
</SCRIPT>
</NS-SCRIPTS>
</NS-PRE-BOOT-CONFIG>
<!--NeedCopy-->
在下面的快照中,您可以验证“script-1.sh”脚本是否保存在“/var/”目录中。 运行“Script-1.sh”脚本,并正确创建输出文件。
示例 2:
在以下示例中,<NS-SCRIPTS>
标记包含两个脚本的详细信息。
- 第一个脚本在“/var”目录中另存为“script-1.sh”。 脚本使用指定的内容填充,并在数据包引擎启动后使用命令“sh /var/script-1.sh”运行。
- 第二个脚本在“/var”目录中另存为“file-2.txt”。 此文件使用指定的内容填充。 但此文件未运行,因为未提供启动执行命令
<SCRIPT-NS-BOOTUP>
你可以从这里复制上面的屏幕截图中显示的配置:
<NS-PRE-BOOT-CONFIG>
<NS-SCRIPTS>
<SCRIPT>
<SCRIPT-CONTENT>
#Shell script
echo "Running script 1" > /var/script-1.output
date >> /var/script-1.output
</SCRIPT-CONTENT>
<SCRIPT-NAME> script-1.sh </SCRIPT-NAME>
<SCRIPT-TARGET-LOCATION> /var/ </SCRIPT-TARGET-LOCATION>
<SCRIPT-NS-BOOTUP>sh /var/script-1.sh</SCRIPT-NS-BOOTUP>
</SCRIPT>
<SCRIPT>
<SCRIPT-CONTENT>
This script has no execution point.
It will just be saved at the target location
NS Consumer module should consume this script/file
</SCRIPT-CONTENT>
<SCRIPT-NAME>file-2.txt</SCRIPT-NAME>
<SCRIPT-TARGET-LOCATION>/var/</SCRIPT-TARGET-LOCATION>
</SCRIPT>
</NS-SCRIPTS>
</NS-PRE-BOOT-CONFIG>
<!--NeedCopy-->
在下面的快照中,您可以验证 script-1.sh 和 file-2.txt 是否在“/var/”目录中创建。 Script-1.sh 已运行,输出文件已恰当创建。
许可
在启动 VPX 实例时使用 <NS-LICENSE-CONFIG>
标签应用 NetScaler 池化许可。 请使用 <NS-LICENSE-CONFIG>
部分中的 <LICENSE-COMMANDS>
标记提供池许可证命令。 这些命令必须在语法上有效。
可以使用标准池许可命令在 <LICENSE-COMMANDS>
部分中指定池许可详细信息,例如许可证类型、容量和许可证服务器。 有关更多信息,请参阅 配置 NetScaler 池容量许可。
应用 <NS-LICENSE-CONFIG>
后,VPX 会在启动时随附所请求的版本,VPX 会尝试从许可证服务器中签出配置的许可证。
- 如果许可证签出成功,配置的带宽将应用到 VPX。
- 如果许可证签出失败,大约在 10-12 分钟内不会从许可证服务器检索许可证。 因此,系统将重新启动并进入未许可状态。
Example:
在以下示例中,应用 <NS-LICENSE-CONFIG>
后,VPX 在启动时会随附 Premium Edition,VPX 会尝试从许可证服务器 (10.102.38.214) 签出配置的许可证。
你可以从这里复制上面的屏幕截图中显示的配置:
<NS-PRE-BOOT-CONFIG>
<NS-LICENSE-CONFIG>
<LICENSE-COMMANDS>
add ns licenseserver 10.102.38.214 -port 2800
set ns capacity -unit gbps -bandwidth 3 edition platinum
</LICENSE-COMMANDS>
</NS-LICENSE-CONFIG>
</NS-PRE-BOOT-CONFIG>
<!--NeedCopy-->
如下图所示,您可以运行“show license server”命令,并验证许可证服务器 (10.102.38.214) 是否已添加到 VPX 中。
引导
使用 <NS-BOOTSTRAP>
标记可提供自定义引导信息。 可以在 <NS-BOOTSTRAP>
部分中使用 <SKIP-DEFAULT-BOOTSTRAP>
和 <NEW-BOOTSTRAP-SEQUENCE>
标记。 本节告知 NetScaler 设备是否要避免使用默认引导。 如果避免使用默认引导程序,本部分内容为您提供了一个选项来提供新的引导序列。
默认引导配置
NetScaler 设备中的默认引导配置遵循以下接口分配:
- Eth0 - 管理接口,具有特定 NSIP 地址。
- Eth1 - 面向客户端的接口,具有特定 VIP 地址。
- Eth2 - 面向服务器的接口,具有特定 SNIP 地址。
自定义引导配置
您可以跳过默认的引导序列,为 NetScaler VPX 实例提供新的引导顺序。 使用 <NS-BOOTSTRAP>
标记可提供自定义引导信息。 例如,可以更改默认引导,其中管理接口 (NSIP)、面向客户端的接口 (VIP) 和面向服务器的接口 (SNIP) 始终按特定顺序提供。
下表显示了具有允许使用的 <SKIP-DEFAULT-BOOTSTRAP>
和 <NEW-BOOTSTRAP-SEQUENCE>
标记的不同值的引导行为。
SKIP-DEFAULT-BOOTSTRAP |
NEW-BOOTSTRAP-SEQUENCE |
引导行为 |
---|---|---|
是 | 是 | 将跳过默认引导行为,并运行 <NS-BOOTSTRAP> 部分中提供的新自定义引导序列。 |
是 | 否 | 将跳过默认的引导行为。 将跳过默认引导行为,并运行 <NS-CONFIG> 部分中提供的引导命令。 |
可以通过以下三种方法自定义引导配置:
- 仅提供接口详细信息
- 提供接口详细信息以及 IP 地址和子网掩码
- 在
<NS-CONFIG>
部分中提供与引导程序相关的命令
方法 1:通过仅指定接口详细信息来自定义引导
可以指定管理接口、面向客户端的接口和面向服务器的接口,但不指定其 IP 地址和子网掩码。 通过查询云基础结构来填充 IP 地址和子网掩码。
AWS 的自定义引导示例
您提供自定义引导序列,如以下示例所示。 有关更多信息,请参阅 如何在云实例中提供预引导用户数据。 Eth1 接口被分配为管理接口 (NSIP),Eth0 接口被分配为客户端接口 (VIP),Eth2 接口被分配为服务器接口 (SNIP)。 <NS-BOOTSTRAP>
部分仅包含接口详细信息,不包含 IP 地址和子网掩码的详细信息。
创建 VM 实例后,您可以在 AWS 门户中验证网络接口属性,如下所示:
- 导航到 AWS Portal(AWS 门户)> AWS Portal(EC2 实例),然后通过提供自定义引导信息选择您创建的实例。
- 在 Description(说明)选项卡中,您可以验证每个网络接口的属性,如下图所示。
您可以在 ADC CLI 中运行 show nsip
命令,并在 ADC 设备首次启动期间验证应用于 NetScaler VPX 实例的网络接口。
Azure 的自定义引导示例
您提供自定义引导序列,如以下示例所示。 有关更多信息,请参阅 如何在云实例中提供预引导用户数据。 Eth1 接口被分配为管理接口 (NSIP),Eth0 接口被分配为客户端接口 (VIP),Eth2 接口被分配为服务器接口 (SNIP)。 <NS-BOOTSTRAP>
部分仅包含接口详细信息,不包含 IP 地址和子网掩码的详细信息。
您可以看到 NetScaler VPX 实例是用三个网络接口创建的。 导航到 Azure portal(Azure 门户)> VM instance(VM 实例)> Networking(网络连接),然后验证三个 NIC 的网络属性,如下图所示。
可以在 ADC CLI 中运行 show nsip
命令,并验证是否应用了 <NS-BOOTSTRAP>
部分中指定的新引导序列。 可以运行“show route”命令来验证子网掩码。
GCP 的自定义引导示例
您提供自定义引导序列,如以下示例所示。 有关更多信息,请参阅 如何在云实例中提供预引导用户数据。 Eth1 接口被分配为管理接口 (NSIP),Eth0 接口被分配为客户端接口 (VIP),Eth2 接口被分配为服务器接口 (SNIP)。 <NS-BOOTSTRAP>
部分仅包含接口详细信息,不包含 IP 地址和子网掩码的详细信息。
在 GCP 门户中创建 VM 实例后,可以按如下方式验证网络接口属性:
- 请通过提供自定义引导信息来选择您创建的实例。
- 导航到网络接口属性并按如下方式验证 NIC 详细信息:
您可以在 ADC CLI 中运行 show nsip
命令,并在 ADC 设备首次启动期间验证应用于 NetScaler VPX 实例的网络接口。
方法 2:通过指定接口、IP 地址和子网掩码来自定义引导
可以指定管理接口、面向客户端的接口和面向服务器的接口及其 IP 地址和子网掩码。
AWS 的自定义引导示例
在以下示例中,您跳过默认引导程序,为 NetScaler 设备运行新的引导序列。 对于新的引导序列,您需要指定以下详细信息:
- 管理接口: 接口 - Eth1,NSIP - 172.31.52.88,子网掩码 - 255.255.240.0
- 面向客户端的接口: 接口 - Eth0,VIP - 172.31.5.155,子网掩码 - 255.255.240.0。
- 面向服务器的接口: 接口 - Eth2,SNIP - 172.31.76.177,子网掩码 - 255.255.240.0。
可以在 ADC CLI 中运行“show nsip”命令,并验证是否应用了 <NS-BOOTSTRAP>
部分中指定的新引导序列。 可以运行“show route”命令来验证子网掩码。
Azure 的自定义引导示例
在以下示例中,提到了 ADC 的新引导序列,并跳过默认引导程序。 您可以提供接口详细信息以及 IP 地址和子网掩码,如下所示:
- 管理接口 (eth2)、NSIP (172.27.2.53) 和子网掩码 (255.255.255.0)
- 面向客户端的接口 (eth1)、VIP (172.27.1.53) 和子网掩码 (255.255.255.0)
- 面向服务器的接口 (eth0)、SNIP (172.27.0.53) 和子网掩码 (255.255.255.0)
您可以看到 NetScaler VPX 实例是用三个网络接口创建的。 导航到 Azure portal(Azure 门户)> VM instance(VM 实例)> Networking(网络连接),然后验证三个 NIC 的网络属性,如下图所示。
可以在 ADC CLI 中运行“show nsip”命令,并验证是否应用了 <NS-BOOTSTRAP>
部分中指定的新引导序列。 可以运行“show route”命令来验证子网掩码。
GCP 的自定义引导示例
在以下示例中,提到了 ADC 的新引导序列,并跳过默认引导程序。 您可以提供接口详细信息以及 IP 地址和子网掩码,如下所示:
- 管理接口 (eth2)、NSIP (10.128.4.31) 和子网掩码 (255.255.255.0)
- 面向客户端的接口 (eth1)、VIP (10.128.0.43) 和子网掩码 (255.255.255.0)
- 面向服务器的接口 (eth0)、SNIP (10.160.0.75) 和子网掩码 (255.255.255.0)
使用自定义引导程序在 GCP 门户中创建 VM 实例后,可以按如下方式验证网络接口属性:
- 请通过提供自定义引导信息来选择您创建的实例。
- 导航到网络接口属性并按如下方式验证 NIC 详细信息。
可以在 ADC CLI 中运行“show nsip”命令,并验证是否应用了 <NS-BOOTSTRAP>
部分中指定的新引导序列。 可以运行“show route”命令来验证子网掩码。
<NS-CONFIG>
部分中提供引导程序相关的命令来自定义引导
方法 3:通过在 可以在 <NS-CONFIG>
部分中提供引导程序相关的命令。 在 <NS-BOOTSTRAP>
部分中,必须将 <NEW-BOOTSTRAP-SEQUENCE>
指定为“否”才能运行 <NS-CONFIG>
部分中的引导命令。 还必须提供用于分配 NSIP、默认路由和 NSVLAN 的命令。 此外,请提供与您使用的云相关的命令。
在提供自定义引导之前,请确保云基础结构支持特定的接口配置。
AWS 的自定义引导示例
在此示例中,<NS-CONFIG>
部分提供了引导程序相关的命令。 <NS-BOOTSTRAP>
部分指示跳过默认引导,并运行 <NS-CONFIG>
部分中提供的自定义引导信息。 还必须提供命令来创建 NSIP、添加默认路由和添加 NSVLAN。
你可以从这里复制上面的屏幕截图中显示的配置:
<NS-PRE-BOOT-CONFIG>
<NS-CONFIG>
set ns config -IPAddress 172.31.52.88 -netmask 255.255.240.0
add route 0.0.0.0 0.0.0.0 172.31.48.1
set ns config -nsvlan 10 -ifnum 1/2 -tagged NO
add route 172.31.0.2 255.255.255.255 172.31.48.1
enable ns feature WL SP LB RESPONDER
add server 5.0.0.201 5.0.0.201
add service preboot_s5_201 5.0.0.201 HTTP 80 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO - useproxyport YES -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO
add lb vserver preboot_v4_101 HTTP 4.0.0.101 80 -persistenceType NONE -cltTimeout 180
</NS-CONFIG>
<NS-BOOTSTRAP>
<SKIP-DEFAULT-BOOTSTRAP>YES</SKIP-DEFAULT-BOOTSTRAP>
<NEW-BOOTSTRAP-SEQUENCE> NO </NEW-BOOTSTRAP-SEQUENCE>
</NS-BOOTSTRAP>
</NS-PRE-BOOT-CONFIG>
<!--NeedCopy-->
创建 VM 实例后,您可以在 AWS 门户中验证网络接口属性,如下所示:
- 导航到 AWS Portal(AWS 门户)> AWS Portal(EC2 实例),然后通过提供自定义引导信息选择您创建的实例。
- 在 Description(说明)选项卡中,您可以验证每个网络接口的属性,如下图所示。
您可以在 ADC CLI 中运行 show nsip
命令,并在 ADC 设备首次启动期间验证应用于 NetScaler VPX 实例的网络接口。
Azure 的自定义引导示例
在此示例中,<NS-CONFIG>
部分提供了引导程序相关的命令。 <NS-BOOTSTRAP>
部分指示跳过默认引导,并运行 <NS-CONFIG>
部分中提供的自定义引导信息。
注意:
对于 Azure 云,实例元数据服务器 (IMDS) 和 DNS 服务器只能通过主接口 (Eth0) 访问。 因此,如果 Eth0 接口未用作管理接口 (NSIP),则 Eth0 接口必须至少配置为 SNIP,以便 IMDS 或 DNS 访问能够正常进行。 还必须添加通过 Eth0 的网关到 IMDS 终端节点 (169.254.169.254) 和 DNS 终端节点 (168.63.129.16) 的路由。
<NS-PRE-BOOT-CONFIG>
<NS-CONFIG>
set ns config -IPAddress 172.27.2.61 -netmask 255.255.255.0
add route 0.0.0.0 0.0.0.0 172.27.2.1
set ns config -nsvlan 10 -ifnum 1/2 -tagged NO
add ns ip 172.27.0.61 255.255.255.0 -type SNIP
add route 169.254.169.254 255.255.255.255 172.27.0.1
add route 168.63.129.16 255.255.255.255 172.27.0.1
add vlan 5
bind vlan 5 -IPAddress 5.0.0.1 255.255.255.0
enable ns feature WL SP LB RESPONDER
add server 5.0.0.201 5.0.0.201
add service preboot_s5_201 5.0.0.201 HTTP 80 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO
add lb vserver preboot_v4_101 HTTP 4.0.0.101 80 -persistenceType NONE -cltTimeout 180
</NS-CONFIG>
<NS-BOOTSTRAP>
<SKIP-DEFAULT-BOOTSTRAP>YES</SKIP-DEFAULT-BOOTSTRAP>
<NEW-BOOTSTRAP-SEQUENCE> NO </NEW-BOOTSTRAP-SEQUENCE>
</NS-BOOTSTRAP>
</NS-PRE-BOOT-CONFIG>
<!--NeedCopy-->
您可以看到 NetScaler VPX 实例是用三个网络接口创建的。 导航到 Azure portal(Azure 门户)> VM instance(VM 实例)> Networking(网络连接),然后验证三个 NIC 的网络属性,如下图所示。
可以在 ADC CLI 中运行“show nsip”命令,并验证是否应用了 <NS-BOOTSTRAP>
部分中指定的新引导序列。 可以运行“show route”命令来验证子网掩码。
GCP 的自定义引导示例
在此示例中,<NS-CONFIG>
部分提供了引导程序相关的命令。 <NS-BOOTSTRAP>
部分表示跳过默认引导,并应用 <NS-CONFIG>
部分中提供的自定义引导信息。
你可以从这里复制上面的屏幕截图中显示的配置:
<NS-PRE-BOOT-CONFIG>
<NS-CONFIG>
set ns config -IPAddress 10.128.0.2 -netmask 255.255.255.0
add route 0.0.0.0 0.0.0.0 10.128.0.1
set ns config -nsvlan 10 -ifnum 1/1 -tagged NO
enable ns feature WL SP LB RESPONDER
add server 5.0.0.201 5.0.0.201
add service preboot_s5_201 5.0.0.201 HTTP 80 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp OFF -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO
add lb vserver preboot_v4_101 HTTP 4.0.0.101 80 -persistenceType NONE -cltTimeout 180
</NS-CONFIG>
<NS-BOOTSTRAP>
<SKIP-DEFAULT-BOOTSTRAP>YES</SKIP-DEFAULT-BOOTSTRAP>
<NEW-BOOTSTRAP-SEQUENCE> NO </NEW-BOOTSTRAP-SEQUENCE>
</NS-BOOTSTRAP>
</NS-PRE-BOOT-CONFIG>
<!--NeedCopy-->
使用自定义引导程序在 GCP 门户中创建 VM 实例后,可以按如下方式验证网络接口属性:
- 请通过提供自定义引导信息来选择您创建的实例。
- 导航到网络接口属性并验证 NIC 详细信息,如图所示。
可以在 ADC CLI 中运行 show nsip
命令,并验证在首次启动 ADC 设备时是否应用了前面 <NS-CONFIG>
部分中提供的配置。
在 AWS 和 Azure 中附加和分离 NIC 产生的影响
AWS 和 Azure 提供了将网络接口附加到实例以及将网络接口与实例分离的选项。 连接或分离接口可能会改变接口位置。 因此,Citrix 建议您不要将接口与 NetScaler VPX 实例分离。 如果您在配置自定义引导时分离或连接接口,NetScaler VPX 实例会将管理接口的主 IP 重新分配为 NSIP 的管理接口。 如果在您分离的接口之后没有其他可用的接口,则第一个接口将成为 NetScaler VPX 实例的管理接口。
例如,一个 NetScaler VPX 实例启动时有 3 个接口:Eth0(SNIP)、Eth1(NSIP)和 Eth2(VIP)。 如果将 Eth1 接口与实例(管理接口)分离,ADC 会将下一个可用接口 (Eth2) 配置为管理接口。 因此,NetScaler VPX 实例仍可通过 Eth2 接口的主要 IP 进行访问。 如果 Eth2 也不可用,剩余的接口 (Eth0) 将成为管理接口。 因此,对 NetScaler VPX 实例的访问权限仍然存在。
我们假设存在以下不同的接口分配:Eth0 (SNIP)、Eth1 (VIP) 和 Eth2 (NSIP)。 如果分离 Eth2 (NSIP)(因为在 Eth2 之后没有新接口可用),第一个接口 (Eth0) 将成为管理接口。