经常会有人问一个IP只有65535(姑且不考虑预留端口),从Big-ip迁移到Netscaler后需不需要增加Ip地址数量来应对大吞吐的场景,尤其是链路负载均衡的应用?

        众所周知,Netscaler对比Big-ip具有明显的节约地址的特点,基本上Netscaler可以用最少2个公网地址(管理地址为私网地址)就可以提供外网服务(NAT在Netscaler上而非防火墙),而Big-ip至少需要4个公网地址。

        在Big-ip的环境下大家会预留很多Ip地址来应对端口不够用的情况,但如果在Netscaler的环境下便可节省大量公网地址。正因为有此特点,赋予了Netscaler内容交换功能实现一个IP承载众多服务的可能,在新版本上也为统一网关功能实现了单一URL来为企业提供统一的业务接口。

        Netscaler的IP具备超高端口复用的特点,一个IP可以有百万个端口供TCP连接使用。一个socket的基本元素是SRC+S_Port+DST+D_Port+协议。只要不是所有的元素同时重叠就可以建立socket。

使用如下命令可以查看SNIP还有多少可用端口:

nsapimgr -d freeports


例如查询每个IP可用端口数:

root@netscaler01# nsapimgr -d freeports

Displaying all free ports of all MIPs...

Index IP              FreePorts

    0 0.0.0.1         16513804

    1 127.0.0.2       1031695

    2 241.0.0.2       1032112

    3 241.0.0.4       1032112

    4 241.0.0.5       16513792

    5 10.0.1.52       1029948