NetScaler VPX 14.1

在云中首次启动 NetScaler 设备时应用 NetScaler VPX 配置

您可以在云环境中首次启动 NetScaler 设备时应用 NetScaler VPX 配置。本文档将此阶段称为 preboot 阶段。因此,在某些情况下,例如 ADC 池化许可,特定的 VPX 实例可以在更短的时间内启动。此功能在 Microsoft Azure、Google Cloud Platform 和 AWS 云中可用。

什么是用户数据

在云环境中预置 VPX 实例时,您可以选择将用户数据传递给该实例。用户数据允许您执行常见的自动化配置任务、自定义实例的启动行为,并在实例启动后运行脚本。首次启动时,NetScaler VPX 实例执行以下任务:

  • 读取用户数据。
  • 解释用户数据中提供的配置。
  • 在启动时,系统会应用新添加的配置。

如何在云实例中提供预启动用户数据

您可以以 XML 格式向云实例提供预启动用户数据。不同的云提供不同的接口来提供用户数据。

使用 AWS 控制台提供预启动用户数据

当您使用 AWS 控制台预置 NetScaler VPX 实例时,导航到 配置实例详细信息 > 高级详细信息,并在 用户数据 字段中提供预启动用户数据配置。

有关每个步骤的详细说明,请参阅 使用 AWS Web 控制台在 AWS 上部署 NetScaler VPX 实例。 有关更多信息,请参阅 AWS 文档中的 启动实例

AWS 控制台用户数据

注意:

预启动用户数据功能的 AWS IMDSv2 仅限模式从 NetScaler VPX 13.1.48.x 及更高版本开始支持。

使用 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 实例时,导航到“创建虚拟机 > 高级”选项卡。在“自定义数据”字段中,提供预启动用户数据配置。

Azure 管理控制台

使用 Azure CLI 提供预启动用户数据

在 Azure CLI 中键入以下命令:

az vm create \
  --resource-group myResourceGroup \
  --name MyVm \
  --image debian \
  --custom-data MyCloudInitScript.txt \
<!--NeedCopy-->

示例:

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 实例时,填写实例属性。展开“管理、安全性、磁盘、网络、单租户”。导航到“管理”选项卡。在“自动化”部分中,在“启动脚本”字段中提供预启动用户数据配置。

有关使用谷歌云平台创建 VPX 实例的详细信息,请参阅 在谷歌云平台上部署 NetScaler VPX 实例

GCP 控制台

使用 gcloud CLI 提供预启动用户数据

在 GCP CLI 中输入以下命令:

gcloud compute instances create INSTANCE_NAMES --metadata-from-file=startup-script=LOCAL_FILE_PATH
<!--NeedCopy-->

metadata-from-file - 从 所指示的文件路径中读取相应的值或用户数据。

有关更多信息,请参阅 gcloud CLI 文档

预启动用户数据格式

预启动用户数据必须以 XML 格式提供给云实例。您在启动期间通过云基础设施提供的 NetScaler 预启动用户数据可包含以下四个部分:

  • <NS-CONFIG> 标签表示的 NetScaler 配置。
  • <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 命令。不会验证 CLI 的语法错误或格式。

NetScaler 设备的配置信息

使用 <NS-CONFIG> 标签提供需要在预启动阶段应用于 VPX 实例的特定 NetScaler VPX 配置。

注意:

<NS-CONFIG> 部分必须包含有效的 ADC CLI 命令。不会验证 CLI 的语法错误或格式。

示例:

在以下示例中,<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> 部分中应用的配置启动,如以下插图所示。

验证 VLAN 配置

验证服务器配置

用户脚本

使用 <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”命令运行。

脚本1

您可以从此处复制前面屏幕截图中显示的配置:

<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”脚本已运行,并已正确创建输出文件。

脚本1输出

示例 2:

在以下示例中,<NS-SCRIPTS> 标签包含两个脚本的详细信息。

  • 第一个脚本以“script-1.sh”的形式保存在“/var”目录中。该脚本填充了指定内容,并在数据包引擎启动后通过命令“sh /var/script-1.sh”运行。
  • 第二个脚本以“file-2.txt”的形式保存在“/var”目录中。此文件填充了指定内容。但它不会运行,因为未提供启动执行命令 <SCRIPT-NS-BOOTUP>

脚本2

您可以从此处复制前面屏幕截图中显示的配置:

<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 已运行,并已正确创建输出文件。

脚本2输出

许可管理

使用 <NS-LICENSE-CONFIG> 标签在启动 VPX 实例时应用 NetScaler 池化许可。在 <NS-LICENSE-CONFIG> 部分中使用 <LICENSE-COMMANDS> 标签提供池化许可命令。这些命令必须在语法上有效。

您可以使用标准池化许可命令在 <LICENSE-COMMANDS> 部分中指定池化许可详细信息,例如许可证类型、容量和许可证服务器。有关详细信息,请参阅配置 NetScaler 池化容量许可

应用 <NS-LICENSE-CONFIG> 后,VPX 在启动时会显示请求的版本,并且 VPX 会尝试从许可证服务器签出配置的许可证。

  • 如果许可证签出成功,则会将配置的带宽应用于 VPX。
  • 如果许可证签出失败,则在大约 10-12 分钟内无法从许可证服务器检索到许可证。结果,系统会重新启动并进入未授权状态。

示例:

在以下示例中,应用 <NS-LICENSE-CONFIG> 后,VPX 在启动时会以 Premium 版本运行,并尝试从许可证服务器 (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 地址和子网掩码的详细信息。

AWS 自定义引导方法1

创建 VM 实例后,在 AWS 门户中,您可以按如下方式验证网络接口属性:

  1. 导航到 AWS 门户 > EC2 实例,然后选择您通过提供自定义引导信息创建的实例。
  2. 描述选项卡中,您可以验证每个网络接口的属性,如以下插图所示。

亚马逊云 eth1

亚马逊云 eth0

亚马逊云 eth2

您可以在 ADC CLI 中运行 show nsip 命令,并验证在 ADC 设备首次启动期间应用于 NetScaler VPX 实例的网络接口。

亚马逊云 显示 nsip 方法1

Azure 的自定义引导示例

您提供自定义引导序列,如以下示例所示。有关更多信息,请参阅如何在云实例中提供预引导用户数据。Eth2 接口被分配为管理接口 (NSIP),Eth1 接口被分配为客户端接口 (VIP),Eth0 接口被分配为服务器接口 (SNIP)。<NS-BOOTSTRAP> 部分仅包含接口详细信息,不包含 IP 地址和子网掩码的详细信息。

Azure 自定义引导方法1

您可以看到 NetScaler VPX 实例是使用三个网络接口创建的。导航到 Azure 门户 > VM 实例 > 网络,并验证这三个 NIC 的网络属性,如以下插图所示。

Azure 服务器方法1

Azure 客户端方法1

Azure 管理方法1

您可以在 ADC CLI 中运行 “show nsip” 命令,并验证 <NS-BOOTSTRAP> 部分中指定的新引导序列是否已应用。您可以运行 “show route” 命令来验证子网掩码。

微软 Azure 中显示 nsip 命令

GCP 的自定义引导示例

您可以按照以下示例提供自定义引导序列。有关更多信息,请参阅 如何在云实例中提供预引导用户数据。Eth1 接口被分配为管理接口 (NSIP),Eth0 接口被分配为客户端接口 (VIP),Eth2 接口被分配为服务器接口 (SNIP)。<NS-BOOTSTRAP> 部分仅包含接口详细信息,不包含 IP 地址和子网掩码的详细信息。

GCP 中的方法1

在 GCP 门户中创建 VM 实例后,您可以按如下方式验证网络接口属性:

  1. 选择您已通过提供自定义引导信息而创建的实例。
  2. 导航到“网络接口属性”并按如下方式验证 NIC 详细信息:

GCP 方法一

您可以在 ADC CLI 中运行 show nsip 命令,并验证在 ADC 设备首次启动期间应用于 NetScaler VPX 实例的网络接口。

GCP 显示 NSIP 的方法一

方法 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。

AWS 自定义引导方法2

您可以在 ADC CLI 中运行 show nsip 命令,并验证 <NS-BOOTSTRAP> 部分中指定的新引导序列是否已应用。您可以运行“show route”命令来验证子网掩码。

AWS 显示 NSIP 的方法二

适用于 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)

Azure 自定义引导方法2

您可以看到 NetScaler VPX 实例是使用三个网络接口创建的。导航到 Azure 门户 > 虚拟机实例 > 网络,并验证三个 NIC 的网络属性,如以下插图所示。

Azure 管理接口方法2

Azure 客户端接口方法2

Azure 服务器接口方法2

您可以在 ADC CLI 中运行 show nsip 命令,并验证 <NS-BOOTSTRAP> 部分中指定的新引导序列是否已应用。您可以运行“show route”命令来验证子网掩码。

Azure 显示 nsip 第二种方法

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)

谷歌云平台 方法2

在 GCP 门户中使用自定义引导创建 VM 实例后,您可以按如下方式验证网络接口属性:

  1. 请选择您通过提供自定义引导信息所创建的实例。
  2. 导航到“网络接口属性”并按如下方式验证 NIC 详细信息。

GCP 网卡详细信息(/zh-cn/vpx/media/gcp-nic-method2.png)

您可以在 ADC CLI 中运行 show nsip 命令,并验证 <NS-BOOTSTRAP> 部分中指定的新引导序列是否已应用。您可以运行“show route”命令来验证子网掩码。

谷歌云平台显示 nsip 命令

方法 3:通过在 <NS-CONFIG> 部分中提供引导相关命令进行自定义引导

您可以在 <NS-CONFIG> 部分中提供引导相关命令。在 <NS-BOOTSTRAP> 部分中,您必须将 <NEW-BOOTSTRAP-SEQUENCE> 指定为“No”,以运行 <NS-CONFIG> 部分中的引导命令。您还必须提供用于分配 NSIP、默认路由和 NSVLAN 的命令。此外,请提供与您使用的云相关的命令。

在提供自定义引导之前,请确保您的云基础设施支持特定的接口配置。

适用于 AWS 的自定义引导示例

在此示例中,引导相关命令在 <NS-CONFIG> 部分中提供。<NS-BOOTSTRAP> 部分指示跳过默认引导,并运行 <NS-CONFIG> 部分中提供的自定义引导信息。您还必须提供用于创建 NSIP、添加默认路由和添加 NSVLAN 的命令。

AWS 自定义引导方法3(/zh-cn/vpx/media/aws-custom-bootstrap-method3.png)

您可以从此处复制前面屏幕截图中显示的配置:

<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 门户中,您可以按如下方式验证网络接口属性:

  1. 导航到 AWS Portal > EC2 实例,并选择您通过提供自定义引导信息创建的实例。
  2. 在“描述”选项卡中,您可以验证每个网络接口的属性,如以下插图所示。

AWS eth1 接口的第三种方法(/zh-cn/vpx/media/aws-eth1-method3.png)

AWS eth0 接口的第三种方法(/zh-cn/vpx/media/aws-eth0-method3.png)

AWS 环境下的 eth2 配置方法3

您可以在 ADC CLI 中运行 show nsip 命令,并验证在 ADC 设备首次启动期间应用于 NetScaler VPX 实例的网络接口。

AWS 环境下 nsip 显示方法3

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) 的路由。

Azure 自定义引导 方法3

<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 > VM instance > Networking,并验证这三个网卡的网络属性,如以下插图所示。

Azure 服务器接口

Azure 客户端接口

Azure 管理接口

您可以在 ADC CLI 中运行 show nsip 命令,并验证 <NS-BOOTSTRAP> 部分中指定的新引导序列是否已应用。您可以运行 “show route” 命令来验证子网掩码。

Azure 中显示 nsip 的方法三

GCP 的自定义引导示例

在此示例中,引导相关命令在 <NS-CONFIG> 部分提供。<NS-BOOTSTRAP> 部分表示跳过默认引导,并应用 <NS-CONFIG> 部分中提供的自定义引导信息。

GCP 方法三

您可以从此处复制前面屏幕截图中显示的配置:

<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 实例后,您可以按如下方式验证网络接口属性:

  1. 请选择您通过提供自定义引导信息所创建的实例。
  2. 导航到“网络接口属性”并验证 NIC 详细信息,如插图所示。

GCP 控制台中显示的 NIC 详细信息

您可以在 ADC CLI 中运行 show nsip 命令,并验证前面 <NS-CONFIG> 部分中提供的配置是否在 ADC 设备首次启动时应用。

显示 NSIP 输出

在 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) 将成为管理接口。