NetScaler VPX

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

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

什么是用户数据

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

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

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

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

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

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

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

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

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 命令行界面文档

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

使用 GCP 控制台预配 NetScaler VPX 实例时,请填写实例的属性。展开“管理、安全性、磁盘、网络、单租户”。导航到“管理”选项卡。在“自动化”部分中,在“启动脚本”字段中提供预启动用户数据配置。

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

GCP 控制台

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

在 GCP CLI 中键入以下命令:

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

文件元数据 - 从存储在 的文件中读取值或用户数据。

有关更多信息,请参阅 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 不会验证语法错误或格式。

网思乐 配置

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

注意:

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

示例:

在以下示例中,<NS-CONFIG> 部分包含配置的详细信息。配置了 ID 为“5”的 VLAN 并将其绑定到 SNIP (5.0.0.1)。还配置了负载平衡虚拟服务器 (4.0.0.101)。

ADC 的配置信息

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

<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 在启动时会以高级版启动,并尝试从许可证服务器 (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. 在“描述”选项卡中,您可以验证每个网络接口的属性,如以下插图所示。

亚马逊云 以太网接口1

亚马逊云 以太网接口0

亚马逊云 以太网接口2

您可以在 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 show nsip command

GCP 的自定义引导示例

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

GCP 方法一

在 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”命令来验证子网掩码。

亚马逊云服务 显示 NSIP 方法2

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 门户 > VM 实例 > 网络,并验证三个 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 详细信息。

谷歌云平台网卡详细信息

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

谷歌云平台 show nsip 命令

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

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

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

AWS 的自定义引导示例

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

AWS 自定义引导方法 3

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

<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. 在“描述”选项卡中,您可以验证每个网络接口的属性,如以下插图所示。

亚马逊云科技 eth1 方法3

AWS eth0 的第三种配置方法

AWS eth2 第三种方法

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

AWS 显示 nsip 第三种方法

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

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 详细信息,如插图所示。

NIC 详细信息,如 GCP 控制台中所示

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