创建和部署服务图

您必须在 APIC 中使用 Cisco APIC 服务图模板来创建和部署 NetScalers。请务必在创建和部署服务图时使用 ADC 功能配置文件。

在 APIC 中配置图形后,APIC 根据功能定义、与结构的设备连接以及配置为图形部署一部分的实体来自动完成设备配置。作为创建服务图的一部分,APIC 还自动完成网络配置(例如虚拟 LAN 分配及其绑定),在您从 APIC 删除图形后,该配置会立即被删除。

服务图以两层或多层应用程序表示,它们之间插入适当的服务功能。按照合同,在源和目标 EPG 之间插入服务图。

要使用 APIC GUI 创建服务图,请执行以下操作:

  1. 在菜单栏上,转到 租户 > 所有租户

  2. 在“工作”窗格中,双击租户的名称。

  3. 导航 窗格中,选择 *tenant_name* > L4-L7 服务 > L4-L7 服务图模板。

  4. 工作 窗格中,选择 操作 > 创建 L4-L7 服务图模板

  5. 在“创建 L4-L7 服务图模板”对话框的“设备群集”部分中,选择设备群集并执行以下操作:

    1. Graph Name(图形名称)字段中,输入服务图模板的名称。

    2. Graph Type(图形类型)字段中,选择 Create A New One(创建一个新图)。

    3. Device Cluster(设备群集)部分,将设备拖放在使用者端点组和提供商端点组之间以创建服务节点。

      本地化后的图片

    4. 在 <L4-L7device_name information> 部分,执行以下操作:

      1. ADC 字段中,选择“单臂”或“双臂”,具体取决于 NetScaler 在结构中的部署方式。

      2. 配置文件 下拉列表中,选择设备包中提供的功能配置文件。

        本地化后的图片

      3. 单击 SUBMIT(提交)。

  6. 导航 窗格中,单击服务图模板。屏幕上将显示服务图模板的图形拓扑。

    注意

    Cisco APIC 支持连接器的概念,这些连接器在 ADC 群集节点中可见。连接器定义网络流量方向和设备脚本,该脚本根据连接是外部还是内部,动态将分配的虚拟 LAN 绑定到虚拟 IP (VIP) 或子网 IP (SNIP) 地址。此外,虚拟 LAN 还绑定到用于入站流量和出站流量的特定接口。

    本地化后的图片

将服务图模板应用于端点组

创建了服务图模板后,需要使用 APIC GUI 来应用创建的服务图模板。

要应用服务图模板,请执行以下操作:

  1. 在菜单栏上,转到 租户 > 所有租户

  2. 在“工作”窗格中,双击租户的姓名。

  3. 在导航窗格中,选择 *tenant_name* > L4-L7 服务 > L4-L7 服务图模板。

  4. 右键单击 template_name ,然后单击“应用 L4-L7 服务图形模板”。

    本地化后的图片

  5. 在“将 L4-L7 服务图模板应用于 EPG”对话框的“EPG 信息”部分中,填写以下字段:

    1. Consumer EPG/External Network(使用者 EPG/外部网络)下拉列表中,选择使用者端点组。

    2. Provider EPG/External Network(提供商 EPG/外部网络)下拉列表中,选择提供商端点组。

    3. Contract Information(合同信息)部分,完成适当的字段。合同信息与 Cisco APIC 特定相关,并作为与 EPG 关联的安全策略的一部分进行配置。

      本地化后的图片

    4. 单击下一步

    5. 图表模板 下拉列表中,选择您创建的服务图形模板。

    6. 在“连接器”部分中,执行以下操作:

      1. 在“类型”字段中,选择“常规”。

      2. BD 下拉列表中,选择网桥域。连接器详细信息属于包含在 Cisco APIC 基础结构模型中的桥接域的一部分。

      3. Cluster Interface(群集接口)下拉列表中,为所选桥接域选择适当的群集接口。

        按照所选服务图模板的要求,Cisco APIC 将所选桥接域用于 NetScaler 设备和结构之间的数据路径流量。

        本地化后的图片

      4. 单击下一步

      参数 屏幕的 必填参数 选项卡上,输入 L2-L3 的特定详细信息,例如配置文件规定的 IP 地址。其他主要参数是样书名称。它可以是 NetScaler Application Delivery Management (ADM) 中提供的内置样书 APIC-HTTP-LB,也可以提供在使用 NetScaler ADM 为应用程序创建样书中创建的样书的名称。

      注意

      样书 名称将服务图详细信息与使用 NetScaler ADM 为给定应用程序创建的 L4-L7 配置联系起来。

      本地化后的图片

      Cisco APIC GUI 允许根据功能(例如负载平衡)过滤参数。可以在 Required Parameters(所需参数)选项卡中查看和设置所有必要参数,可以在 All Parameters(所有参数)选项卡中查看和设置与功能有关的所有其他参数。

      本地化后的图片

      注意

      默认情况下,内置单臂配置文件要求提供 SNIP 详细信息,例如 IP 地址和网络掩码。可以在 Cisco APIC GUI 中单击 All Parameters(所有参数)并展开 Configure Network(配置网络)树来查看其他网络连接参数。此处列出 NetScaler 支持的所有网络参数。可以从 Cisco APIC GUI 实例化任何实体,并为列出的属性提供值。

  6. 单击完成

    重要

    应用服务图模板后,请确保部署的图形中没有故障。您可以通过单击“工作”窗格中的“错误”选项卡来查看故障

    本地化后的图片

    作为 Service Graph 部署的一部分,混合模式设备包将配置详细信息从 Cisco APIC 推送到 NetScaler ADM。NetScaler ADM 在内部将这些配置处理到相应的 NetScaler,并将响应返回给 APIC。成功的图形部署不会出现故障,并且 NetScaler 已成功与相应图形的结构联网。

    APIC 支持使用 API 以不同的方法来配置和部署图形,图形部署包括对 APIC 特定的一些构造的依赖项,例如租户、合同、虚拟 LAN 和命名空间。

    下面的示例方法说明了其中一个方法,即利用 APIC 的 API 来创建和部署 L4-L7 图,假定已在 APIC 中配置 APIC 特定的工件。

    重要

    请务必将这些 XML 有效负载用作参考,并在您的环境中使用 XML 之前对其进行适当的更改。

    下面是一个使用 API 创建和部署服务图的示例:

    1. 创建 AppProfile

    2. 创建服务图详细信息

    3. 将服务图附加到合同

    下面是一个用于创建 AppProfile 的示例 XML 有效负载。AppProfile 包含 EPG,提供商 EPG 包含 NetScaler 特定的实体、属性及其值。在下面的示例 XML 有效负载中,使用一组属性和样书名称创建了 NetScaler 特定的网络实体,例如 NSIP。

    <polUni>
        <fvTenant name="coke">
            <!-- Application Profile -->
            <fvAp dn="uni/tn-coke/ap-sap" name="sap">
                <!-- EPG 1  -->
                <fvAEPg dn="uni/tn-coke/ap-sap/epg-web" name="web">
                    <fvRsBd tnFvBDName="BD_web" />
                    <!-- --------- CONFIG PAYLOAD ---------------- -->
                    <vnsFolderInst ctrctNameOrLbl="Ctrct1" graphNameOrLbl="Graph1" nodeNameOrLbl="ADC" key="Network" name="Network">
                        <vnsFolderInst ctrctNameOrLbl="Ctrct1" graphNameOrLbl="Graph1" nodeNameOrLbl="ADC" key="nsip" name="snip1">
                            <vnsParamInst key="ipaddress" name="ip1" value="110.110.110.2"/>
                            <vnsParamInst key="netmask" name="netmask1" value="255.255.255.0"/>
                            <vnsParamInst key="type" name="tye" value="SNIP"/>
                            <vnsParamInst key="dynamicrouting" name="dynamicrouting" value="DISABLED"/>
                            <vnsParamInst key="hostroute" name="hostroute" value="DISABLED"/>
                        </vnsFolderInst>
                        <vnsFolderInst ctrctNameOrLbl="Ctrct1" graphNameOrLbl="Graph1" nodeNameOrLbl="ADC" key="nsip" name="snip2">
                            <vnsParamInst key="ipaddress" name="ip2" value="220.220.220.2"/>
                            <vnsParamInst key="netmask" name="netmask2" value="255.255.255.0"/>
                            <vnsParamInst key="type" name="tye" value="SNIP"/>
                            <vnsParamInst key="dynamicrouting" name="dynamicrouting" value="DISABLED"/>
                            <vnsParamInst key="hostroute" name="hostroute" value="DISABLED"/>
                        </vnsFolderInst>
                    </vnsFolderInst>
                    <vnsFolderInst ctrctNameOrLbl="Ctrct1" graphNameOrLbl="Graph1" nodeNameOrLbl="ADC" key="Stylebook" name="stylebook_1">
                        <vnsParamInst name="stylebookName" key="name" value="APIC-HTTP-LB"/>
                    </vnsFolderInst>
                    <vnsFolderInst ctrctNameOrLbl="Ctrct1" graphNameOrLbl="Graph1" nodeNameOrLbl="ADC" key="internal_network" name="internal_network">
                        <vnsCfgRelInst name="internal_network_key" key="internal_network_key" targetName="Network/snip1"/>
                    </vnsFolderInst>
                    <vnsFolderInst ctrctNameOrLbl="Ctrct1" graphNameOrLbl="Graph1" nodeNameOrLbl="ADC" key="external_network" name="external_network">
                        <vnsCfgRelInst name="external_network_key" key="external_network_key" targetName="Network/snip2"/>
                    </vnsFolderInst>
                    <vnsFolderInst ctrctNameOrLbl="Ctrct1" graphNameOrLbl="Graph1" nodeNameOrLbl="ADC" key="mFCngStylebook" name="mFCngStylebook_1">
                        <vnsCfgRelInst name="Stylebook_key" key="Stylebook_key" targetName="stylebook_1"/>
                    </vnsFolderInst>
                    <!-- ------- END CONFIG PAYLOAD -------------- -->
                    <fvSubnet ip="110.110.110.110/24" scope="shared"/>
                    <fvRsProv tnVzBrCPName="Ctrct1"></fvRsProv>
                    <fvRsDomAtt tDn="uni/phys-sepg" />
                    <fvRsPathAtt tDn="topology/pod-1/paths-101/pathep-[eth1/38]" encap="vlan-3703" instrImedcy="immediate"/>
                </fvAEPg>
                <!-- EPG 2 -->
                <fvAEPg dn="uni/tn-coke/ap-sap/epg-app"  name="app">
                    <fvRsCons tnVzBrCPName="Ctrct1"/>
                    <fvRsBd tnFvBDName="BD_app" />
                    <fvSubnet ip="220.220.220.220/24" scope="shared"/>
                    <fvRsPathAtt tDn="topology/pod-1/paths-101/pathep-[eth1/37]" encap="vlan-3704" instrImedcy="immediate"/>
                    <fvRsDomAtt tDn="uni/phys-sepg" />
                </fvAEPg>
            </fvAp>
        </fvTenant>
    </polUni>
    <!--NeedCopy-->
    

    下面是一个用于创建服务图详细信息的示例 XML 有效负载:

    <polUni>
        <fvTenant name="coke">
            <vnsAbsGraph name = "Graph1">
                <vnsAbsTermNodeProv name = "Input1">
                    <vnsAbsTermConn name = "C1"></vnsAbsTermConn>
                </vnsAbsTermNodeProv>
                <vnsAbsNode name="ADC" funcType="GoTo">
                    <vnsAbsFuncConn name = "outside" attNotify="true">
                        <vnsRsMConnAtt tDn="uni/infra/mDev-Citrix-NetScalerMAS-1.0/mFunc-ADCFunction/mConn-external" />
                    </vnsAbsFuncConn>
                    <vnsAbsFuncConn name = "inside" attNotify="true">
                        <vnsRsMConnAtt tDn="uni/infra/mDev-Citrix-NetScalerMAS-1.0/mFunc-ADCFunction/mConn-internal" />
                    </vnsAbsFuncConn>
                    <vnsRsNodeToMFunc tDn="uni/infra/mDev-Citrix-NetScalerMAS-1.0/mFunc-ADCFunction"/>
                    <vnsRsDefaultScopeToTerm tDn="uni/tn-coke/AbsGraph-Graph1/AbsTermNodeProv-Input1/outtmnl"/>
                    <vnsRsNodeToAbsFuncProf tDn="uni/infra/mDev-Citrix-NetScalerMAS-1.0/absFuncProfContr/absFuncProfGrp-ADCOneArmServiceProfileGroup/absFuncProf-A
    DCOneArmFunctionProfile"/>
                    <vnsRsNodeToLDev tDn="uni/tn-coke/lDevVip-ADCCluster1"/>
                </vnsAbsNode>
                <vnsAbsTermNodeCon name = "Output1">
                    <vnsAbsTermConn name = "C6"></vnsAbsTermConn>
                </vnsAbsTermNodeCon>
                <vnsAbsConnection name = "CON1">
                    <vnsRsAbsConnectionConns tDn="uni/tn-coke/AbsGraph-Graph1/AbsTermNodeCon-Output1/AbsTConn" />
                    <vnsRsAbsConnectionConns tDn="uni/tn-coke/AbsGraph-Graph1/AbsNode-ADC/AbsFConn-outside" />
                </vnsAbsConnection>
                <vnsAbsConnection name = "CON2">
                    <vnsRsAbsConnectionConns tDn="uni/tn-coke/AbsGraph-Graph1/AbsNode-ADC/AbsFConn-inside" />
                    <vnsRsAbsConnectionConns tDn="uni/tn-coke/AbsGraph-Graph1/AbsTermNodeProv-Input1/AbsTConn" />
                </vnsAbsConnection>
            </vnsAbsGraph>
        </fvTenant>
    </polUni>
    <!--NeedCopy-->
    

    下面是一个用于将服务图附加到合同的示例 XML 有效负载:

    <polUni>
        <fvTenant name="coke">
            <vzBrCP name="Ctrct1">
                <vzSubj name="http">
                    <vzRsSubjGraphAtt tnVnsAbsGraphName="Graph1"/>
                </vzSubj>
            </vzBrCP>
        </fvTenant>
    </polUni>
    <!--NeedCopy-->
    
创建和部署服务图