Citrix ADC

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

可以在云环境中首次启动 Citrix ADC 设备期间应用 Citrix ADC VPX 配置。本文档将此阶段作为预引导阶段进行讨论。因此,在某些情况下,例如 ADC 池许可时,特定的 VPX 实例会在更短的时间内启动。此功能可在 Microsoft Azure、Google 云端平台和 AWS 云中使用。

用户数据是什么

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

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

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

可以使用 XML 格式向云实例提供预引导用户数据。不同的云有不同的接口来提供用户数据。

使用 AWS 控制台提供预引导用户数据

使用 AWS 控制台预配 Citrix ADC VPX 实例时,导航到 Configure Instance Details(配置实例详细信息)> Advanced Details(高级详细信息),然后在 User data(用户数据)字段中提供预引导用户数据配置。

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

AWS 控制台用户数据

使用 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 控制台预配 Citrix ADC VPX 实例时,导航到 Create a virtual machine(创建虚拟机)> Advanced(高级)选项卡。在 Custom data(自定义数据)字段中,提供预引导用户数据配置。

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 控制台配置 Citrix ADC VPX 实例时,请填写实例的属性。展开 Management, security, disks, networking, sole tenancy(管理、安全性、磁盘、网络连接和唯一租赁)。导航到 Management(管理)选项卡。在 Automation(自动化)部分中,在 Startup Script(启动脚本)字段中提供预引导用户数据配置。

有关使用 GCP 创建 VPX 实例的详细信息,请参阅 在 Google Cloud Platform 上部署 Citrix ADC VPX 实例

GCP 控制台

使用 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 格式向云实例提供预引导用户数据。引导期间通过云基础结构提供的 Citrix ADC 预引导用户数据可以包括以下四个部分:

  • <NS-CONFIG> 标记表示的 Citrix ADC 配置。
  • <NS-BOOTSTRAP> 标记表示的 Citrix ADC 的自定义引导。
  • 将用户脚本存储在用 <NS-SCRIPTS> 标记表示的 Citrix ADC 中。
  • <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 实例的特定 Citrix ADC VPX 配置。此配置存储在新的“ns.conf”文件中。首次启动 ADC 时,存储在“ns.conf”文件中的配置将应用到 VPX 实例。

注意:

<NS-CONFIG> 部分必须具有有效的 ADC CLI 命令。没有验证 CLIS 是否存在语法错误或格式问题。

Citrix ADC 配置

使用 <NS-CONFIG> 标记可提供需要在预引导阶段应用到 VPX 实例的特定 Citrix ADC VPX 配置。此配置存储在新的“ns.conf”文件中。首次启动 ADC 时,存储在“ns.conf”文件中的配置将应用到 VPX 实例。

注意:

<NS-CONFIG> 部分必须具有有效的 ADC CLI 命令。没有验证 CLIS 是否存在语法错误或格式问题。

示例:

在以下示例中,<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-->

Citrix ADC VPX 实例附带 <NS-CONFIG> 部分中应用的配置,如下图所示。

验证 VLAN 配置

验证服务器配置

用户脚本

使用 <NS-SCRIPTS> 标记提供必须存储并在 Citrix ADC 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”命令运行。

Script1

你可以从这里复制上面的屏幕截图中显示的配置:

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

script1 输出

示例 2:

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

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

script2

你可以从这里复制上面的屏幕截图中显示的配置:

<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 已运行,输出文件已恰当创建。

script2 输出

许可

启动 VPX 实例时,请使用 <NS-LICENSE-CONFIG> 标记应用 Citrix ADC 池许可。请使用 <NS-LICENSE-CONFIG> 部分中的 <LICENSE-COMMANDS> 标记提供池许可证命令。这些命令必须在语法上有效。

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

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

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

示例:

在以下示例中,应用 <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> 标记。本部分内容通知 Citrix ADC 设备是否避免使用默认引导程序。如果避免使用默认引导程序,本部分内容为您提供了一个选项来提供新的引导序列。

默认引导配置

Citrix ADC 设备中的默认引导配置遵循以下接口分配:

  • Eth0 - 管理接口,具有特定 NSIP 地址。
  • Eth1 - 面向客户端的接口,具有特定 VIP 地址。
  • Eth2 - 面向服务器的接口,具有特定 SNIP 地址。

自定义引导配置

可以跳过默认引导序列并为 Citrix ADC 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 Portal(AWS 门户)> AWS Portal(EC2 实例),然后通过提供自定义引导信息选择您创建的实例。
  2. Description(说明)选项卡中,您可以验证每个网络接口的属性,如下图所示。

AWS eth1

AWS eth0

AWS eth2

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

AWS show nsip method1

Azure 的自定义引导示例

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

Azure custom bootstrap method1

您可以看到 Citrix ADC VPX 实例是使用三个网络接口创建的。导航到 Azure portal(Azure 门户)> VM instance(VM 实例)> Networking(网络连接),然后验证三个 NIC 的网络属性,如下图所示。

Azure server method1

Azure client method1

Azure management method1

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

Azure show nsip 命令

GCP 的自定义引导示例

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

GCP Method1

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

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

GCP method1

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

Gcp-show-nsip-method1

方法 2:通过指定接口、IP 地址和子网掩码来自定义引导

可以指定管理接口、面向客户端的接口和面向服务器的接口及其 IP 地址和子网掩码。

AWS 的自定义引导示例

在以下示例中,您跳过默认引导程序并为 Citrix ADC 设备运行新的引导序列。对于新的引导序列,您需要指定以下详细信息:

  • 管理接口: 接口 - 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 custom bootstrap method2

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

AWS show 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

您可以看到 Citrix ADC VPX 实例是使用三个网络接口创建的。导航到 Azure portal(Azure 门户)> VM instance(VM 实例)> Networking(网络连接),然后验证三个 NIC 的网络属性,如下图所示。

Azure 管理接口方法 2

Azure 客户端接口方法 2

Azure 服务器接口方法 2

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

Azure show nsip 方法 2

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

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

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

GCP NIC 详细信息

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

GCP 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 custom bootstrap method3

你可以从这里复制上面的屏幕截图中显示的配置:

<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(AWS 门户)> AWS Portal(EC2 实例),然后通过提供自定义引导信息选择您创建的实例。
  2. Description(说明)选项卡中,您可以验证每个网络接口的属性,如下图所示。

AWS eth1 方法 3

AWS eth0 方法 3

AWS eth2 方法 3

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

AWS show 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 custom bootstrap method3

<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-->

您可以看到 Citrix ADC VPX 实例是使用三个网络接口创建的。导航到 Azure portal(Azure 门户)> VM instance(VM 实例)> Networking(网络连接),然后验证三个 NIC 的网络属性,如下图所示。

Azure 服务器接口

Azure 客户端接口

Azure 管理界面

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

Azure show nsip method3

GCP 的自定义引导示例

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

GCP method3

你可以从这里复制上面的屏幕截图中显示的配置:

<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 命令,并验证在首次启动 ADC 设备时是否应用了前面 <NS-CONFIG> 部分中提供的配置。

Show NSIP output

## 在 AWS 和 Azure 中附加和分离 NIC 产生的影响 AWS 和 Azure 提供了将网络接口附加到实例以及将网络接口与实例分离的选项。连接或分离接口可能会改变接口位置。因此,Citrix 建议您不要从 ADC VPX 实例中分离接口。如果在配置自定义引导时分离或连接接口,Citrix ADC VPX 实例会将管理接口位置中新的可用接口的主 IP 重新分配为 NSIP。如果在分离接口之后没有其他接口可用,第一个接口将成为 ADC VPX 实例的管理接口。 例如,Citrix ADC VPX 实例带有 3 个接口:Eth0 (SNIP)、Eth1 (NSIP) 和 Eth2 (VIP)。如果将 Eth1 接口与实例(管理接口)分离,ADC 会将下一个可用接口 (Eth2) 配置为管理接口。因此,ADC VPX 实例仍可通过 Eth2 接口的主 IP 访问。如果 Eth2 也不可用,剩余的接口 (Eth0) 将成为管理接口。因此,对 ADC VPX 实例的访问权限仍然存在。 我们假设存在以下不同的接口分配:Eth0 (SNIP)、Eth1 (VIP) 和 Eth2 (NSIP)。如果分离 Eth2 (NSIP)(因为在 Eth2 之后没有新接口可用),第一个接口 (Eth0) 将成为管理接口。