ns nat rule
NAT实现方式:
NAT的实现方式有三种,即静态转换(Static Nat)、动态转换(Dynamic Nat) 和 端口多路复用(OverLoad)。
- 静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
- 动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
- 端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
影响netscaler做NAT的参数主要分为以下8类:
- RNAT
- INAT
- IP-Mode: (lb_vsrv)
- netProfile
- USIP
- MAC-Mode: (lb_vsrv)
- Service port=* : (lb_vsrv_VIP:* + ServerIP:*)
- Service use proxy port
使用调试工具进行抓包,并保存为兼容tcpdump格式。
> start nstrace -tcpdump ENABLED -link ENABLED -size 0 Done > > stop nstrace Done >
RNAT: Support: Static-SNAT / Dynamic-SNAT(default) Flow: 192.168.11.201(inside_ClientIP) <---> 192.168.30.191(outside_DestIP) 192.168.11.201(inside_ClientIP) ---> 192.168.30.191(outside_DestIP) 192.168.10.41(NATIP_SNIP) ---> 192.168.30.191(outside_DestIP) # Dynamic-SNAT 192.168.30.191(outside_DestIP) ---> 192.168.10.41(NATIP_SNIP) 192.168.30.191(outside_DestIP) ---> 192.168.11.201(inside_ClientIP) INAT: Support: Static-DNAT(default) Flow: 192.168.30.201(outside_ClientIP) <---> 192.168.10.141(NAT_PublicIP) 192.168.30.201(outside_ClientIP) ---> 192.168.10.141(NAT_PublicIP) 192.168.11.1(inside_SNIP) ---> 192.168.11.61(NAT_PrivateIP) # Static-DNAT 192.168.11.61(NAT_PrivateIP) ---> 192.168.11.1(inside_SNIP) 192.168.10.141(NAT_PublicIP) ---> 192.168.30.201(outside_ClientIP) IP-Mode: (lb_vsrv) Support: Static-SNAT-DNAT / Dynamic-SNAT-DNAT(default) Flow: 192.168.30.201(outside_ClientIP) <---> 192.168.10.106(inside_VIP) 192.168.30.201(outside_ClientIP) ---> 192.168.10.106(inside_VIP) 192.168.11.1(inside_SNIP) ---> 192.168.11.61(inside_ServerIP) # Dynamic-SNAT-DNAT 192.168.11.61(inside_ServerIP) ---> 192.168.11.1(inside_SNIP) 192.168.10.106(inside_VIP) ---> 192.168.30.201(outside_ClientIP) netProfile: priority: lb_vsrv < service Support: Static-SNAT / Dynamic-SNAT(default) Flow: 192.168.30.201(outside_ClientIP) <---> 192.168.10.106(inside_VIP) 192.168.30.201(outside_ClientIP) ---> 192.168.10.106(inside_VIP) 192.168.11.3(netProfile_SNIP) ---> 192.168.11.61(inside_ServerIP) # Dynamic-SNAT 192.168.11.61(inside_ServerIP) ---> 192.168.11.3(netProfile_SNIP) 192.168.10.106(inside_VIP) ---> 192.168.30.201(outside_ClientIP) USIP: Support: Static-SNAT(default)
# CLI: set service svc_xxx -usip YES -useproxyport YES Flow: 192.168.30.201(outside_ClientIP) <---> 192.168.10.106(inside_VIP) 192.168.30.201(outside_ClientIP) ---> 192.168.10.106(inside_VIP) 192.168.30.201(outside_ClientIP) ---> 192.168.11.61(inside_ServerIP) # Static-SNAT(default) 192.168.11.61(inside_ServerIP) ---> 192.168.30.201(outside_ClientIP) 192.168.10.106(inside_VIP) ---> 192.168.30.201(outside_ClientIP) # 一旦启用USIP,所有基于源地址替换的操作全部禁用,不管是默认用SNIP轮训还是指定NetProfile都不生效。 MAC-Mode: (lb_vsrv) Support: Dynamic-SNAT(固定目的IP) Flow: 192.168.30.201(outside_ClientIP) <---> 192.168.10.149(inside_VIP) 192.168.30.201(outside_ClientIP) ---> 192.168.10.149(inside_VIP) 192.168.30.201(outside_ClientIP) ---> 192.168.10.149(inside_VIP) # Dynamic-SNAT(固定目的IP) 192.168.10.51(outside_ServerIP) ---> 192.168.30.201(outside_ClientIP) # 典型使用方式:在三角传输(DSR)传输模式中 , 虚拟服务器需要设置为MAC-Mode,对应的服务设置USIP,并在服务器上设置non-arping interface。 Service port=* : (lb_vsrv_VIP:* + ServerIP:*) Support: Dynamic-PNAT(目的端口不变) Flow: 192.168.30.201:xxxx(outside_ClientIP) <---> 192.168.10.106:zzzz(inside_VIP) 192.168.30.201:xxxx(outside_ClientIP) ---> 192.168.10.106:zzzz(inside_VIP) 192.168.11.1:yyyy(inside_SNIP) ---> 192.168.11.61:zzzz(inside_ServerIP) # Dynamic-PNAT(目的端口不变) 192.168.11.61:zzzz(inside_ServerIP) ---> 192.168.11.1:yyyy(inside_SNIP) 192.168.10.106:zzzz(inside_VIP) ---> 192.168.30.201:xxxx(outside_ClientIP) Service use proxy port : # CLI: set service svc_xxx -usip YES -useproxyport NO Support: Dynamic-PNAT(源端口不变) Flow: 192.168.30.201:xxxx(outside_ClientIP) <---> 192.168.10.106:zzzz(inside_VIP) 192.168.30.201:xxxx(outside_ClientIP) ---> 192.168.10.106:zzzz(inside_VIP) 192.168.30.201:xxxx(outside_ClientIP) ---> 192.168.11.61:yyyy(inside_ServerIP) # Dynamic-PNAT(源端口不变) 192.168.11.61:yyyy(inside_ServerIP) ---> 192.168.30.201:xxxx(outside_ClientIP) 192.168.10.106:zzzz(inside_VIP) ---> 192.168.30.201:xxxx(outside_ClientIP) Notice: SNIP priority: (uint32)IPv4_SNIP_1 > (uint32)IPv4_SNIP_2
方式 | 默认方式 | 可调整方式 |
RNAT | Static-SNAT / Dynamic-SNAT(default) | Static-PNAT / Dynamic-PNAT |
INAT | Static-DNAT(default) | Static-PNAT |
IP-Mode: (lb_vsrv) | Static-SNAT-DNAT / Dynamic-SNAT-DNAT(default) | Static-PNAT / Dynamic-PNAT |
netProfile | Static-SNAT / Dynamic-SNAT(default) | Static-PNAT / Dynamic-PNAT |
USIP | Static-SNAT(default) | Static-PNAT |
MAC-Mode: (lb_vsrv) | Dynamic-SNAT(固定目的IP) | |
Service port=* : (lb_vsrv_VIP:* + ServerIP:*) | Dynamic-PNAT(目的端口不变) | |
Service use proxy port | Dynamic-PNAT(源端口不变) | Static-PNAT / Dynamic-PNAT |
============ End