ADC

添加位置文件以创建静态邻近数据库

静态邻近数据库是基于 UNIX 的 ASCII 文件。从位置文件添加到此数据库的条目称为静态条目。NetScaler 设备上只能加载一个位置文件。添加新的位置文件会覆盖现有文件。静态邻近数据库中的条目数受到 NetScaler 设备中配置的内存的限制。

静态邻近数据库可以采用默认格式创建,也可以采用源自商业配置的第三方数据库(例如 www.maxmind.comwww.ip2location.com)的格式。

NetScaler 设备包括以下两个 IP 地理位置数据库文件。这些是由 MaxMind 发布的 GeoLite2 文件。

  • Citrix_Netscaler_InBuilt_GeoIP_DB_IPv4
  • Citrix_Netscaler_InBuilt_GeoIP_DB_IPv6

这些数据库文件以 NetScaler 设备支持的格式在目录 /var/netscaler/inbuilt_db 中提供。

您可以将这些 IP 地理位置数据库用作基于静态邻近度的 GSLB 方法的位置文件,也可以在基于位置的策略中使用这些地理位置数据库。

这些数据库提供的详细信息各不相同。除了缺省文件具有格式标记外,没有严格强制执行数据库文件格式。数据库文件是使用逗号作为字段分隔符的 ASCII 文件。字段的结构和位置中 IP 地址的表示方式存在差异。

format 参数描述了 NetScaler 设备的文件结构。为格式选项指定错误的值可能会损坏内部数据。

备注:

  • 升级后,如果 /var/netscaler/inbuilt_db/ 目录包含来自早期 NetScaler 软件版本的数据库文件 (Citrix_Netscaler_InBuilt_GeoIP_DB.csv),则该文件将被保留。
  • 数据库文件的默认位置是 /var/netscaler/locdb,在高可用性 (HA) 设置中,两个 NetScaler 设备的相同位置必须存在该文件的相同副本。
  • 如果位置文件存储在默认位置以外的位置,则指定位置文件的路径。
  • 对于管理分区,默认路径为:/var/partitions/<partitionName>/netscaler/locdb。
  • 一些数据库根据 ISO-3166 提供简短的国家/地区名称,还提供较长的国家/地区名称。NetScaler 在存储和匹配限定符时使用短名称。
  • 要创建静态邻近数据库,请登录 NetScaler 设备的 UNIX 外壳,然后使用编辑器以 NetScaler 支持的格式之一创建包含位置详细信息的文件。
  • NetScaler 设备附带了 GeoLite2 数据库(IPv4 和 IPv6),但是 NetScaler 不定期维护或更新 MaxMind GeoLite2 数据库。如有必要,您可以从 https://www.maxmind.com 中获取 GeoLite2 数据库并将其转换为 NetScaler 数据库格式。有关更多信息,请参阅 将 MaxMind GeoLite2 数据库格式转换为 NetScaler 数据库格式的脚本

使用 CLI 添加静态位置文件

在命令提示符下,键入:

add locationFile <locationFile> [-format <format>]
-  show locationFile
<!--NeedCopy-->

示例:

add locationFile /var/netscaler/locdb/nsgeo1.0 -format netscaler
Done

show locationFile
Location File: /var/netscaler/locdb/nsgeo1.0
Format: netscaler
 Done
>
<!--NeedCopy-->

示例:

add locationFile /var/netscaler/inbuilt_db/Citrix_Netscaler_InBuilt_GeoIP_DB_IPv4 -format netscaler

add locationFile6 /var/netscaler/inbuilt_db/Citrix_Netscaler_InBuilt_GeoIP_DB_IPv6 -format netscaler
<!--NeedCopy-->

要使用 GUI 添加静态位置文件,请执行以下操作:

  1. 导航到 AppExpert > 位置,单击静态数据库选项卡。
  2. 单击“添加”以添加静态位置文件。

您可以使用配置实用程序中的查看 数据库对话框来查看 导入的位置文件数据库。没有等效的 CLI。

要使用 GUI 查看静态位置文件,请执行以下操作:

  1. 导航到 AppExpert > 位置,单击静态数据库选项卡。
  2. 选择静态位置文件,然后从“操作”列表中单击“查看数据库”。

要将位置文件转换为 NetScaler 格式,请执行以下操作:

默认情况下,添加位置文件时,该文件将以 NetScaler 格式保存。您可以将其他格式的位置文件转换为 NetScaler 格式。

注意:

只能从命令行界面访问 nsmap 选项。只能转换为 NetScaler 格式。

要转换静态数据库格式,请在 CLI 提示符下键入以下命令:

nsmap -f <inputFileFormat> -o <outputFileName> <inputFileName>
<!--NeedCopy-->

示例:

 nsmap -f ip-country-region-city -o nsfile.ns ip-country-region-city.csv
<!--NeedCopy-->

将 MaxMind GeoLite2 数据库格式转换为 NetScaler 数据库格式的脚本

MaxMind GeoIP 数据库不能直接在 NetScaler 中使用。必须将 MaxMind GeoIP 数据库转换为 NetScaler 格式,然后加载 GSLB 静态邻近方法和策略等其他功能进行 IP 位置检测。 您可以使用脚本将 GeoLite2 数据库格式转换为 NetScaler 数据库格式。此脚本可用于转换 IPv4 和 IPv6 文件。 该脚本位于以下位置: https://github.com/citrix/MaxMind-GeoIP-Database-Conversion-Citrix-ADC-Format

将 GeoIP2 数据库转换为 NetScaler 格式的步骤

  1. https://dev.maxmind.com/geoip/geoip2/geolite2/ 下载.csv 格式的 GeoLite2 City 或 GeoLite2 国家/地区数据库。

  2. 将文件复制到 NetScaler 目录(比如 /var)中。使用以下 shell 命令解压缩文件,这将创建一个同名的目录。

    tar -xf <filename>

  3. https://github.com/citrix/MaxMind-GeoIP-Database-Conversion-Citrix-ADC-Format 中下载脚本 Convert_GeoIPDB_To_Netscaler_Format.pl,然后将其复制到步骤 #2 中创建的目录中。

  4. 要检查脚本执行的可接受选项,请运行以下命令:

    perl Convert_GeoIPDB_To_Netscaler_Format.pl –help

    可用的选项包括:

    • <filename> IPv4 输出文件。默认输出文件名:Netscaler_Maxmind_GeoIP_DB_IPv4.csv

    • -p <filename> IPv6 输出文件。默认输出文件名:Netscaler_Maxmind_GeoIP_DB_IPv6.csv

    • -logfile <filename> 包含事件/消息列表的文件

    • -debug 将所有消息打印到 STDOUT

  5. 运行以下命令将 GeoLite2 数据库格式转换为 NetScaler 数据库格式。

    perl Convert_GeoIPDB_To_Netscaler_Format.pl

    注意:

    该操作最长可能需要 5 分钟。

    脚本中使用的默认文件名是基于 MaxMind GeoLite2 City 的数据库的文件名。如果您已经下载了 GeoLite2 Country 数据库,则必须提供相应列出的输入文件名。

    • -b <filename> 要转换的 IPv4 块文件的名称。默认文件名:GeoLite2-City-Blocks-IPv4.csv
    • -i <filename> 要转换的 IPv6 块文件的名称。默认文件名:GeoLite2-City-Blocks-IPv6.csv
    • -l <filename> 要转换的位置文件的名称。默认文件名:GeoLite2-City-Locations-en.csv

    示例:

    perl Convert_GeoIPDB_To_Netscaler_Format.pl -b GeoLite2-City-Blocks-IPv4.csv -i GeoLite2-City-Blocks-IPv6.csv -l  GeoLite2-City-Locations-en.csv
    <!--NeedCopy-->
    

    以下是运行脚本后生成的输出文件。

    • Netscaler_Maxmind_GeoIP_DB_IPv4.csv
    • Netscaler_Maxmind_GeoIP_DB_IPv6.csv
  6. 完成将数据库转换为 NetScaler 格式的操作后,请使用以下命令开始使用它。

    add locationFile <locationFile>

在 NetScaler 设备上添加第三方静态数据库文件

执行以下步骤在 NetScaler 设备上添加第三方静态数据库文件。

  1. 从第三方供应商处获取位置数据库文件,例如 www.maxmind.com

    注意:

    如果从 www.maxmind.com 下载位置数据库文件,则可以使用现成的脚本将其转换为 NetScaler 数据库格式。有关使用该脚本的信息,请参阅将 MaxMind GeoLite2 数据库格式转换为 NetScaler 数据库格式的脚本

    对于从其他第三方供应商下载的位置数据库,必须先将其转换为 NetScaler 数据库格式,然后才能将其添加到 NetScaler 设备中。

  2. 运行以下命令添加静态位置文件:

    add location file <locationfile Name>
    <!--NeedCopy-->
    

    注意:

    • 如果位置数据库文件未放置在默认的 /var/netscaler/locdb 位置,则 <locationfile Name> 必须包含该文件的位置和文件名。
    • 在运行 add location file <locationfile Name> 命令之前:
      • Make sure that the location database file is present in one of the directories of the NetScaler appliance.
      • Run the sync HA files command on the high availability setup and the sync cluster files command in a cluster setup. These commands ensure that the location database file is copied to the secondary appliance of the high availability pair and peer nodes of the cluster.
  3. 运行以下命令以确保已装载位置数据库:

    show locationParameter
    <!--NeedCopy-->
    

    此命令显示与基于邻近度的静态负载平衡相关的位置参数。最多可以加载3M-1(300万减一)条目。当数据库加载正在进行时,该命令将显示 Loading: In progress。加载完成后,该命令将显示 Loading: Idle

  4. 运行以下命令查看 GSLB 站点的位置:

    show gslb service
    <!--NeedCopy-->
    

    注意

    • 如果数据库装载正确,GSLB 站点的位置将自动填充到数据库中。
    • 您只能在设备的配置中指定一个位置文件。
    • 如果未找到传入 IP 地址的匹配项,则使用轮询方法处理请求。
  5. 运行以下命令在设备上配置 GSLB 方法:

    set gslb vserver GSLBVserverName -lbMethod MethodType
    <!--NeedCopy-->
    
添加位置文件以创建静态邻近数据库