深入理解Netscaler INat
深入理解Netscaler INat
http://blog.51cto.com/caojin/1898173
Netscaler的INat主要是用作基于目的地址的转换,将client访问的公网IP通过Netscaler转换成服务器的私网IP,与DNAT作用类似。由于Netscaler默认的工作机制就是同时做源IP:【源端口】+目的IP:【目的端口】的转换,也就是说它默认执行了NAPT(端口映射)但有不完全等同与NAPT。NAPT只替换目的IP和端口,而Netscaler默认是全部替换的。
测试环境:
SNIP:10.110.110.121
10.110.140.151
10.110.140.152
MIP: 10.110.140.153
VIP:111.1.1.1
Client:10.110.110.146
Server VIP:10.110.140.150
Server:10.110.110.130
配置方法:
> add inat <name> <public ip> <private ip>(private ip不能是Netscaler所属的IP包括VIP)
-ftp ( ENABLED | DISABLED )
-mode STATELESS
-proxyIP <ip_addr|ipv6_addr>
-tcpproxy ( ENABLED | DISABLED )
-td <positive_integer>
-tftp ( ENABLED | DISABLED )
-usip ( ON | OFF )
-usnip ( ON | OFF )

When the appliance forwards a packet to a server, the source IP address assigned to the
packet is determined as follows:
If use subnet IP (USNIP) mode is enabled and use source IP (USIP) mode is disabled,
the NetScaler uses a subnet IP address (SNIP) as the source IP address.
If USNIP mode is disabled and USIP mode is disabled, the NetScaler uses a mapped IP
address (MIP) as the source IP address.
If USIP mode is enabled, and USNIP mode is disabled the NetScaler uses the client IP
(CIP) address as the source IP address.
If both USIP and USNIP modes are enabled, USIP mode takes precedence.
You can also configure the NetScaler to use a unique IP address as the source IP
address, by setting the proxyIP parameter.
If none of the above modes is enabled and a unique IP address has not been
specified, the NetScaler attempts to use a MIP as the source IP address.
If both USIP and USNIP modes are enabled and a unique IP address has been
specified, the order of precedence is as follows: USIP-unique IP-USNIP-MIP-Error.
To protect the NetScaler from DoS attacks, you can enable TCP proxy. However, if other
protection mechanisms are used in your network, you may want to disable them.
如果启用了proxy ip,那么与服务器连接就只用一个SNIP,与静态DNAT类似

如果关闭proxy ip,Netscaler将采用轮训的方式,用与私网目的IP一个网段的SNIP来连接服务器,类似动态DNAT

只打开USIP时,Netscaler会用client的源ip来与后台私网连接(由于测试环境没有去client的路由因此没有完成TCP连接)

同时打开USIP和USNIP时,由于USIP的优先级高于USNIP,Netscaler会用client的源ip来与后台私网连接(由于测试环境没有去client的路由因此没有完成TCP连接)

关闭USIP和USNIP后,Netscaler会用MIP来与后台连接

关闭USIP和USNIP,但选择了Proxy IP后,被选择的SNIP优先高于MIP,会用它与后台服务器连接

不管是用USIP还是USNIP,启用了TCP proxy后Netscaler都会用client源IP来与后台连接,tcp proxy可以保护Netscaler抵抗DOS攻击

Mode中的stateless只能应用与IPV4-IPV6的转换
深入理解Netscaler INat的更多相关文章
- Netscaler立身之本—NAT
Netscaler立身之本—NAT http://blog.51cto.com/caojin/1926579 一.前言 ADC的主要作用是作为服务器的反向代理来进行应用发布的,介于客户端和服务器端之间 ...
- Neutron 理解 (7): Neutron 是如何实现负载均衡器虚拟化的 [LBaaS V1 in Juno]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- nginx配置之深入理解
继上一篇<debian+nginx配置初探--php环境.反向代理和负载均衡>成功之后,有点小兴奋,终于不用整lvs那么复杂来搞定负载,但还是有很多概念没弄清楚. 什么是CGI.FastC ...
- Netscaler工作流程
Netscaler工作流程 http://blog.51cto.com/caojin/1898310 Citrix Netscaler有很多功能模块来满足应用交付的需求,为了能够做好的配置和排错工作, ...
- NetScaler的cookieinsert和sourceip联合保持机制
NetScaler的cookieinsert和sourceip联合保持机制 使用NetScaler的cookieinsert和sourceip联合进行session保持机制即主用cookieinser ...
- 理解CSS视觉格式化
前面的话 CSS视觉格式化这个词可能比较陌生,但说起盒模型可能就恍然大悟了.实际上,盒模型只是CSS视觉格式化的一部分.视觉格式化分为块级和行内两种处理方式.理解视觉格式化,可以确定得到的效果是应 ...
- 彻底理解AC多模式匹配算法
(本文尤其适合遍览网上的讲解而仍百思不得姐的同学) 一.原理 AC自动机首先将模式组记录为Trie字典树的形式,以节点表示不同状态,边上标以字母表中的字符,表示状态的转移.根节点状态记为0状态,表示起 ...
- 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信
接理解加密算法(一)--加密算法分类.理解加密算法(二)--TLS/SSL 1 不安全的TCP通信 普通的TCP通信数据是明文传输的,所以存在数据泄露和被篡改的风险,我们可以写一段测试代码试验一下. ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
随机推荐
- js分割字符串
js分割字符串 我想达到通过 : 分割 只要第一次分割,后面的内容不使用分割 不行,没找到可以直接用的方法,不过可以通过其它方式达到效果 eg: str.split(':',2)[0] (第一个分隔符 ...
- ant + jmeter 自动化接口测试环境部署
1.jdk下载安装 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.jmeter下载 jmeter官 ...
- 文件夹选项-安装功能-window服务
我们初次使用windows10在显示一个文件的时候,可能不会将文件的扩展名显示出来,但是我们很多地方又需要更改文件的扩展名,打开文件的扩展名有两种方式 打开此电脑 ->>>点击右上方 ...
- (数据科学学习手札21)sklearn.datasets常用功能详解
作为Python中经典的机器学习模块,sklearn围绕着机器学习提供了很多可直接调用的机器学习算法以及很多经典的数据集,本文就对sklearn中专门用来得到已有或自定义数据集的datasets模块进 ...
- python2.7练习小例子(十六)
16):题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 程序分析:利用 while 或 for 语句,条件为输入的字符不为 '\n'. 程序源代码: #!/u ...
- python2.7练习小例子(十五)
15):题目:输出指定格式的日期. 程序分析:使用 datetime 模块. 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- ...
- 9 udp广播
udp有广播 写信 tcp没有广播· 打电话 #coding=utf-8 import socket, sys dest = ('<broadcast>', 7788) # 创建udp ...
- python 产生有序整数序列
其中一种方法 A = np.linspace(0,n,n)
- 安装Sql Server 2008的时候报错说找不到某个安装文件
在安装Sql Server 2008的时候,报错说找不到某个安装文件,但是这个文件明明在那,百思不得其解. 最后看到一个老外的文章里面说,你要确认,你能访问到这个文件 ...
- Java检测端口的占用情况
突然间想到这个问题,在网上搜了一下 http://blog.csdn.net/danieluk/article/details/18518175 网上有很多文章都是用上面那个方法来解决这个问题的,总感 ...