使用iRule 来选择SNAT pool
- 格式:doc
- 大小:44.50 KB
- 文档页数:4
光纤链路排错经验一、组网:用户采用4台S5500作为接入交换机、1台S5500作为核心交换机组网,4台接入交换机分别在三个仓库以及门卫处与核心机房都是通过2根八芯单模光纤走地井连接,在这5个机房再通过跳纤来连接到交换上。
用户要求实现内网的用户主机访问公共服务器资源,并实现全网互通。
组网如下图所示:二、问题描述:PC现无法访问server服务器,进一步发现S5500光纤端口灯不亮,端口信息显示down状态。
在核心交换机端通过自环测试发现该端口以及光模块正常,接入交换机端也同样测试发现正常。
监控网络正常使用,再将网络接口转接到监控主干链路上,发现网络同样无法正常使用。
三、过程分析:想要恢复链路,首先要排查出故障点,根据故障点情况结合实际恢复链路通畅。
在这里主要分析光纤通路,光信号从接入交换机光口出来通过跳线,转接到主干光纤,然后再通过核心跳线转接到核心交换上。
由于该链路不通,首先要排除两端接口以及光模块问题,这里使用自环检测(如果是超远距离传输光纤线缆需要接光衰然后在自环,防止烧坏光模块)。
当检测完成发现无问题,再测试接入端的光纤跳纤:如果是多模光纤可以将一端接到多模光纤模块的tx口,检测对端是否有光;单模光纤如果没有光功率计可以使用光电笔检测(该方法只能检测出中间无断路,并不能检测出线路光衰较大的情况)。
最后再检测主线路部分,检测方式同跳线一样。
光路走向流程如图所示:四、解决方法:从上述的分析可以看出,只要保证了光信号一出一收两条路径都能正常就可以解决用户无法访问服务器的问题。
为了保证光路正常通路,最好的解决方法就是,通过使用光功率计来检测对端发射光在本端的光功率是否在光口可接受范围内。
由于用户组网使用了一些监控设备来接入该主干光缆,并且该光路现正常使用,通过将网络光纤转接到该监控主干光缆,发现网络光路仍然不通;并且两端端口自环检测正常。
由此可以判断出主要问题在两端的跳纤上。
如图所示:在没有光功率计并且客户业务又比较着急恢复的情况,可以先将两端的接入跳纤更换。
华为交换机基本配置命令一、单交换机VLAN划分命令命令解释system 进入系统视图system-view 进入系统视图quit 退到系统视图undo vlan 20 删除vlan 20sysname 交换机命名disp vlan 显示vlanvlan 20 创建vlan(也可进入vlan 20)port e1/0/1 to e1/0/5 把端口1-5放入VLAN 20 中disp vlan 20 显示vlan里的端口20int e1/0/24 进入端口24port access vlan 20 把当前端口放入vlan 20undo port e1/0/10 表示删除当前VLAN端口10disp curr 显示当前配置二、配置交换机支持TELNETsystem 进入系统视图sysname 交换机命名int vlan 1 进入VLAN 1ip address 192.168.3.100 255.255.255.0 配置IP地址user-int vty 0 4 进入虚拟终端authentication-mode password (aut password) 设置口令模式set authentication password simple 222 (set aut pass sim 222) 设置口令user privilege level 3(use priv lev 3) 配置用户级别disp current-configuration (disp cur) 查看当前配置disp ip int 查看交换机VLAN IP配置删除配置必须退到用户模式reset saved-configuration(reset saved) 删除配置reboot 重启交换机三、跨交换机VLAN的通讯在sw1上:vlan 10 建立VLAN 10int e1/0/5 进入端口5port access vlan 10 把端口5加入vlan 10vlan 20 建立VLAN 20int e1/0/15 进入端口15port access vlan 20 把端口15加入VLAN 20int e1/0/24 进入端口24port link-type trunk 把24端口设为TRUNK端口port trunk permit vlan all 同上在SW2上:vlan 10 建立VLAN 10int e1/0/20 进入端口20port access vlan 10 把端口20放入VLAN 10int e1/0/24 进入端口24port link-type trunk 把24端口设为TRUNK端口port trunk permit vlan all (port trunk permit vlan 10 只能为vlan 10使用)24端口为所有VLAN使用disp int e1/0/24 查看端口24是否为TRUNKundo port trunk permit vlan all 删除该句四、路由的配置命令system 进入系统模式sysname 命名int e1/0 进入端口ip address 192.168.3.100 255.255.255.0 设置IPundo shutdown 打开端口disp ip int e1/0 查看IP接口情况disp ip int brief 查看IP接口情况user-int vty 0 4 进入口令模式authentication-mode password(auth pass) 进入口令模式set authentication password simple 222 37 设置口令user privilege level 3 进入3级特权save 保存配置reset saved-configuration 删除配置(用户模式下运行)undo shutdown 配置远程登陆密码int e1/4ip route 192.168.3.0(目标网段) 255.255.255.0 192.168.12.1(下一跳:下一路由器的接口)静态路由ip route 0.0.0.0 0.0.0.0 192.168.12.1 默认路由disp ip rout 显示路由列表华3C AR-18E1/0(lan1-lan4)E2/0(wan0)E3/0(WAN1)路由器连接使用直通线。
目录3 VLAN配置3.1 VLAN简介3.1.1 VLAN概述3.1.2 VLAN划分3.1.3 S-switch支持的VLAN特性3.1.4 配置任务的逻辑关系3.2 创建VLAN3.2.1 建立配置任务3.2.2 (可选)创建单个VLAN3.2.3 (可选)批量创建VLAN3.2.4 检查配置结果3.3 将接口加入VLAN3.3.1 建立配置任务3.3.2 (可选)将Access类型接口加入VLAN3.3.3 (可选)将Trunk类型接口加入VLAN3.3.4 (可选)将Hybrid类型接口加入VLAN3.3.5 (可选)将QinQ类型接口加入VLAN3.3.6 (可选)将接口批量加入VLAN3.3.7 检查配置结果3.4 配置VLANIF接口3.4.1 建立配置任务3.4.2 创建VLANIF接口3.4.3 配置VLANIF接口的IP地址3.4.4 (可选)配置VLANIF接口的MAC地址3.4.5 (可选)配置VLANIF接口的MTU3.4.6 检查配置结果3.5 配置基于MAC地址的VLAN划分3.5.1 建立配置任务3.5.2 关联MAC地址和VLAN3.5.3 允许基于MAC地址的VLAN通过当前接口3.5.4 使能基于MAC地址划分VLAN的功能3.5.5 (可选)配置VLAN匹配的优先级3.5.6 检查配置结果3.6 配置基于协议的VLAN划分3.6.1 建立配置任务3.6.2 配置基于协议的VLAN划分,并指定协议模板3.6.3 允许基于协议的VLAN通过当前接口3.6.4 关联协议和VLAN3.6.5 检查配置结果3.7 配置基于IP子网的VLAN划分3.7.1 建立配置任务3.7.2 关联IP子网和VLAN3.7.3 允许基于IP子网的VLAN通过当前接口3.7.4 使能基于IP子网划分VLAN的功能3.7.5 检查配置结果3.8 配置管理VLAN3.8.1 建立配置任务3.8.2 配置管理VLAN功能3.8.3 检查配置结果3.9 配置举例3.9.1 配置S-switch干道链路示例3.9.2 配置IP子网VLAN示例3.9.3 配置VLAN综合示例插图目录图3-1接口批量加入VLAN组网图图3-2配置S-switch干道链路组网图图3-3配置IP子网VLAN组网图图3-4配置VLAN综合组网图表格目录表3-1 IP子网配置数据3 VLAN配置介绍了VLAN的基本知识、配置方法和配置实例。
数据包经过防火墙的路径图1比较完整地展示了一个数据包是如何经过防火墙的,考虑到节省空间,该图实际上包了三种情况:来自外部,以防火墙(本机)为目的地的包,在图1中自上至下走左边一条路径。
由防火墙(本机)产生的包,在图1中从“本地进程”开始,自上至下走左边一条路径来自外部,目的地是其它主机的包,在图1中自上至下走右边一条路径。
图1如果我们从上图中略去比较少用的mangle表的图示,就有图2所显示的更为清晰的路径图.图2禁止端口的实例禁止ssh端口只允许在192.168.62.1上使用ssh远程登录,从其它计算机上禁止使用ssh #iptables -A INPUT -s 192.168.62.1 -p tcp --dport 22 -j ACCEPT#iptables -A INPUT -p tcp --dport 22 -j DROP∙禁止代理端口#iptables -A INPUT -p tcp --dport 3128 -j REJECT∙禁止icmp端口除192.168.62.1外,禁止其它人ping我的主机#iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type echo-request -j ACCEPT#iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request –j ?DROP或#iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT#iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP注:可以用iptables --protocol icmp --help查看ICMP类型还有没有其它办法实现?∙禁止QQ端口#iptables -D FORWARD -p udp --dport 8000 -j REJECT强制访问指定的站点图3要使192.168.52.0/24网络内的计算机(这此计算机的网关应设为192.168.52.10)强制访问指定的站点,在做为防火墙的计算机(192.168.52.10)上应添加以下规则:1. 打开ip包转发功能echo 1 > /proc/sys/net/ipv4/ip_forward2. 在NAT/防火墙计算机上的NAT表中添加目的地址转换规则:iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT--to-destination 202.96.134.130:80iptables -t nat -I PREROUTING -i eth0 -p udp --dport 80 -j DNAT--to-destination 202.96.134.130:803. 在NAT/防火墙计算机上的NAT表中添加源地址转换规则:iptables -t nat -I POSTROUTING -o eth1 -p tcp --dport 80 -s 192.168.52.0/24 -j SNAT --to-source 202.96.134.10:20000-30000iptables -t nat -I POSTROUTING -o eth1 -p udp --dport 80 -s 192.168.52.0/24 -j SNAT --to-source 202.96.134.10:20000-300004. 测试:在内部网的任一台计算机上打开浏览器,输入任一非本网络的IP,都将指向IP为202.96.134.130的网站.发布内部网络服务器图4要使因特网上的计算机访问到内部网的FTP服务器、WEB服务器,在做为防火墙的计算机上应添加以下规则:1. echo 1 > /proc/sys/net/ipv4/ip_forward2. 发布内部网web服务器iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 --dport 80 -j DNAT --to-destination 192.168.52.15:80iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.15 --sport 80 -j SNAT --to-source 202.96.134.10:20000-300003. 发布内部网ftp服务器iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 --dport21 -j DNAT --to-destination 192.168.52.14:21iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.14 --sport 21 -j SNAT --to-source 202.96.134.10:40000-500004. 注意:内部网的计算机网关要设置为防火墙的ip(192.168.52.1)5. 测试: 用一台IP地址为202.96.134.0段的计算机虚拟因特网访问,当在其浏览器中访问http://202.96.134.10时,实际应看到的是192.168.52.15的的web 服务;当访问ftp://202.96.134.10时,实际应看到的是192.168.52.14上的的ftp服务智能DNS图51. echo 1 > /proc/sys/net/ipv4/ip_forward2. 在NAT服务器上添加以下规则:在PREROUTING链中添加目的地址转换规则:iptables -t nat -I PREROUTING -i eth0 -p tcp --dpor 53 -j DNAT--to-destination 202.96.134.130iptables -t nat -I PREROUTING -i eth0 -p udp --dpor 53 -j DNAT--to-destination 202.96.134.130在POSTROUTING链中添加源地址转换规则:iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p tcp --dpor 53 -j SNAT --to-source 202.96.134.10:40000-50000iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p udp --dpor 53 -j SNAT --to-source 202.96.134.10:40000-500003. 测试在内部网任一台计算机上,将DNS设置为任意的外网IP,就可以使用DNS测试工具如nslookup来解析DNS服务器202.96.134.130上的名称.端口映射见上节透明代理设置#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT --to-ports 3128通过NAT上网典型NAT上网一般做为NAT的计算机同时也是局域网的网关,假定该机有两块网卡eth0、eth1,eth0连接外网,IP为202.96.134.134;eth1连接局域网,IP为192.168.62.101. 先在内核里打开ip转发功能#echo 1 > /proc/sys/net/ipv4/ip_forward2.?使局域网用户能访问internet所要做的nat#iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to?202.96.134.134如果上网的IP是动态IP,则使用以下规则:#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.62.0/24 -j MASQUERADE如果是通过ADSL上网,且公网IP是动态IP,则使用以下规则:#iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.62.0/24 -j MASQUERADE3. 使internet用户可以访问局域网内web主机所要做的nat#iptables -t nat -A PREROUTING -p tcp -d 202.96.134.134 --dport 80 -j DNAT --to-destination 192.168.62.10注:局域网内的客户端需将默认网关、DNS设为防火墙的IP在我们的网络机房实现NAT共享上网工作环境:上层代理192.168.60.6(4480),只授予教师机(192.168.62.111)使用该代理的权限目标:不使用squid代理上网,而是使用NAT的方式上网方法:1) 确保停止教师机(192.168.62.111)的squid或其它代理服务2) 客户端网关、DNS均指向192.168.62.111,浏览器代理设置为192.168.60.6(4480)。
etherealEthereal (Ethereal:A Network Packet Sniffing Tool)是当前较为流行的一种计算机网络调试和数据包嗅探软件。
Ethereal 基本类似于tcpdump,但Ethereal 还具有设计完美的GUI和众多分类信息及过滤选项。
用户通过Ethereal,同时将网卡插入混合模式,可以查看到网络中发送的所有通信流量。
Ethereal 应用于故障修复、分析、软件和协议开发以及教育领域。
它具有用户对协议分析器所期望的所有标准特征,并具有其它同类产品所不具备的有关特征。
目录应用范围软件特征【使用入门】【用Ethereal协议分析系统介绍】【用Ethereal分析协议数据包】【Ethereal支持的常用协议端口号】应用范围Ethereal 是一种开发源代码的许可软件,允许用户向其中添加改进方案。
Ethereal 适用于当前所有较为流行的计算机系统,包括Unix、Linux和Windows。
软件特征Ethereal 主要具有以下特征:在实时时间内,从网络连接处捕获数据,或者从被捕获文件处读取数据;Ethereal 可以读取从tcpdump(libpcap)、网络通用嗅探器(被压缩和未被压缩)、SnifferTM 专业版、NetXrayTM、Sun snoop 和atmsnoop、Shomiti/Finisar 测试员、AIX的iptrace、Microsoft的网络监控器、Novell的LANalyzer、RADCOM 的WAN/LAN 分析器、ISDN4BSD 项目的HP-UX nettl 和i4btrace、Cisco 安全IDS iplog 和pppd 日志(pppdump 格式)、WildPacket 的EtherPeek/TokenPeek/AiroPeek 或者可视网络的可视UpTime 处捕获的文件。
此外Ethereal 也能从Lucent/Ascend W AN 路由器和Toshiba ISDN 路由器中读取跟踪报告,还能从VMS的TCPIP 读取输出文本和DBS Etherwatch。
ACL案例及说明技术从来都是一把双刃剑,网络应用与互联网的普及在大幅提高企业的生产经营效率的同时,也带来了诸如数据的安全性,员工利用互联网做与工作不相干事等负面影响。
如何将一个网络有效的管理起来,尽可能的降低网络所带来的负面影响就成了摆在网络管理员面前的一个重要课题。
A公司的某位可怜的网管目前就面临了一堆这样的问题。
A公司建设了一个企业网,并通过一台路由器接入到互联网。
在网络核心使用一台基于IOS的多层交换机,所有的二层交换机也为可管理的基于IOS的交换机,在公司内部使用了VLAN技术,按照功能的不同分为了6个VLAN。
分别是网络设备与网管(VLAN1,10.1.1.0/24)、内部服务器(VLAN2)、Internet连接(VLAN3)、财务部(VLAN4)、市场部(VLAN5)、研发部门(VLAN6),出口路由器上Fa0/0接公司内部网,通过s0/0连接到Internet。
每个网段的三层设备(也就是客户机上的缺省网关)地址都从高位向下分配,所有的其它节点地址均从低位向上分配。
该网络的拓朴如下图所示:自从网络建成后麻烦就一直没断过,一会儿有人试图登录网络设备要捣乱;一会儿领导又在抱怨说互联网开通后,员工成天就知道泡网;一会儿财务的人又说研发部门的员工看了不该看的数据。
这些抱怨都找这位可怜的网管,搞得他头都大了。
那有什么办法能够解决这些问题呢?答案就是使用网络层的访问限制控制技术――访问控制列表(下文简称ACL)。
那么,什么是ACL呢?ACL是种什么样的技术,它能做什么,又存在一些什么样的局限性呢?ACL的基本原理、功能与局限性网络中常说的ACL是Cisco IOS所提供的一种访问控制技术,初期仅在路由器上支持,近些年来已经扩展到三层交换机,部分最新的二层交换机如2950之类也开始提供ACL的支持。
只不过支持的特性不是那么完善而已。
在其它厂商的路由器或多层交换机上也提供类似的技术,不过名称和配置方式都可能有细微的差别。
ip rule 常用指令ip rule是Linux系统中用于配置和管理路由策略的命令。
它可以帮助我们根据不同的条件来选择不同的路由表,实现网络流量的灵活控制和管理。
本文将介绍ip rule常用指令及其用法。
1. 查看当前系统中的路由策略规则```shellip rule show```该命令会列出当前系统中所有的路由策略规则,包括优先级、匹配条件和对应的路由表编号。
2. 添加一条新的路由策略规则```shellip rule add [匹配条件] [动作]```其中,匹配条件可以是源IP地址、目标IP地址、输入接口、源端口等。
动作可以是查找路由表、丢弃或重定向等。
通过添加新的路由策略规则,我们可以优先匹配特定的条件,并根据需要进行相应的操作。
3. 删除指定的路由策略规则```shellip rule del [匹配条件] [动作]```该命令可以删除指定的路由策略规则,使其不再生效。
4. 修改指定的路由策略规则```shellip rule change [匹配条件] [动作]```该命令可以修改指定的路由策略规则,例如修改其匹配条件或动作。
5. 设置默认路由策略规则```shellip rule add from all lookup [路由表编号]```通过设置默认路由策略规则,可以指定当没有匹配到其他规则时使用的路由表。
可以根据实际需求选择不同的路由表编号。
6. 清空所有的路由策略规则```shellip rule flush```该命令可以清空系统中的所有路由策略规则,恢复到默认状态。
7. 查看指定路由策略规则的详细信息```shellip rule show [匹配条件]```通过指定匹配条件,可以查看特定路由策略规则的详细信息,包括优先级、匹配条件、动作和路由表编号等。
8. 使用路由策略规则进行流量控制```shellip rule add [匹配条件] [动作]```通过添加适当的路由策略规则,可以实现对特定流量的控制。
ERouting Chapter 1 - CCNA Exploration: 路由协议和概念(版本 4.0)1 口令可用于限制对Cisco IOS 所有或部分内容的访问。
请选择可以用口令保护的模式和接口。
(选择三项。
)VTY 接口控制台接口特权执行模式2 路由器从相连的以太网接口收到消息后,会更改哪项报头地址,再将消息从另一个接口发送出去?第 2 层源地址和目的地址3请参见图示。
网络管理员已经为路由器连接到直连网络的接口配置了如图所示的IP 地址。
从路由器ping 相连网络上的主机口之间相互ping 都会遭到失败。
此问题最可能的原因是什么?必须使用no shutdown命令启用接口。
4请参见图示。
主机 A ping 主机B。
当R4 收到对以太网接口的ping 时,哪两块报头信息包括在内?(选择两项。
)5 网络管理员刚把新配置输入Router1。
要将配置更改保存到NVRAM,应该执行哪一条命令?Router1# copy running-config startup-config6您需要配置图中所示的串行连接,必须在Sydney 路由器上发出以下哪条配置命令才能与Melbourne 站点建立连接?(选Sydney(config-if)#Sydney(config-if)# no shutdownSydney(config-if)# clock rate 560007请参见图示。
从路由器的运行配置输出可得出什么结论?显示的命令决定了路由器的当前运行情况。
8请参见图示。
在主机 2 连接到LAN 上的交换机后,主机2 无法与主机 1 通信。
导致此问题的原因是什么?主机 1 和主机2 位于不同的网络中。
9 输入以下命令的作用是什么?R1(config)# line vty 0 4R1(config-line)# password check123R1(config-line)# login设置通过Telnet 连接该路由器时使用的口令10 以下哪一项正确描述了路由器启动时的顺序?加载bootstrap、加载IOS、应用配置11 加载配置文件时的默认顺序是怎样的?NVRAM、TFTP、CONSOLE12请参见图示。
snort规则选项规则选项组成了入侵检测引擎的核心,既易用又强大还灵活。
所有的snort规则选项用分号";"隔开。
规则选项关键字和它们的参数用冒号":"分开。
按照这种写法,snort中有42个规则选项关键字。
msg - 在报警和包日志中打印一个消息。
logto - 把包记录到用户指定的文件中而不是记录到标准输出。
ttl - 检查ip头的ttl的值。
tos 检查IP头中TOS字段的值。
id - 检查ip头的分片id值。
ipoption 查看IP选项字段的特定编码。
fragbits 检查IP头的分段位。
dsize - 检查包的净荷尺寸的值。
flags -检查tcp flags的值。
seq - 检查tcp顺序号的值。
ack - 检查tcp应答(acknowledgement)的值。
window 测试TCP窗口域的特殊值。
itype - 检查icmp type的值。
icode - 检查icmp code的值。
icmp_id - 检查ICMP ECHO ID的值。
icmp_seq - 检查ICMP ECHO 顺序号的值。
content - 在包的净荷中搜索指定的样式。
content-list 在数据包载荷中搜索一个模式集合。
offset - content选项的修饰符,设定开始搜索的位置。
depth - content选项的修饰符,设定搜索的最大深度。
nocase - 指定对content字符串大小写不敏感。
session - 记录指定会话的应用层信息的内容。
rpc - 监视特定应用/进程调用的RPC服务。
resp - 主动反应(切断连接等)。
react - 响应动作(阻塞web站点)。
reference - 外部攻击参考ids。
sid - snort规则id。
rev - 规则版本号。
classtype - 规则类别标识。
priority - 规则优先级标识号。
需求:
使用iRule 根据不同目的地址或端口,来选择SNAT 地址 ,实现相同的后台节点,访问不同目的地址或
者目的端口时,源地址也会不同;
网络概况:
内网:
后台节点server:192.168.10.71
对应VLAN: Internal-selfIP: 192.168.10.1
外网:
客户端client: 172.16.10.172
对应VLAN: external-selfIP: 172.16.10.1
1. 需求一: 负载均衡功能(client访问server)
解决方案1、
新建virtual server :http_VS: 172.16.10.100:80
VS关联一个负载均衡pool:
Pool member: 192.168.10.71:80
2. 需求二: SNAT功能(server访问client),一个或多个内网节点转换成一个源地址;
解决方案1、
新建SNAT :out_snat: 172.16.10.71
snat out_snat {
translation 172.16.10.71
origin 192.168.10.71 //只允许一台机器出向访问
}
解决方案2、
snat out_snat2 {
translation 172.16.10.250
origin 0.0.0.0 mask 0.0.0.0 //允许所有的机器出向访问
}
解决方案3、
snat out_snat3 {
translation 172.16.10.188
origin 0.0.0.0 mask 0.0.0.0
vlan internal enable //仅限于vlan --internal 的流量命中
}
3. 需求三: iSNAT功能(server访问client),一个内网节点转换成多个源地址;
解决方案1、
新建必要的出向的pool(将访问的目的地址+端口 做成pool形式,以便iRule调用):
pool http_pool { member 172.16.10.71:80 }
pool ftp_pool { member 172.16.10.71:21 }
新建必要的snatpool:
snatpool SNATPool_21 { member 172.16.10.21 }
snatpool SNATPool_80 { member 172.16.10.80 }
snatpool Internal_SNAT_Pool { member 172.16.10.250 }
新建virtual server :snat_VS: 0.0.0.0:0
VS关联一个iRule :iSNAT_Rule,内容如下:
rule iSNAT_Rule {
when CLIENT_ACCEPTED { /* 定义事件 */
set MYPORT [TCP::local_port] /* 定义目的端口 */
set S_IP [IP::client_addr] /* 定义发起访问的源地址 */
log local0. "Port is $MYPORT" /* 记录日志,打印在/var/log/ltm */
log local0. " S_IP is $S_IP"
if {[IP::addr [IP::client_addr] equals 192.168.10.71]} /* 设置源地址过滤条件 */
{ switch $MYPORT { /* 根据不同目的端口,选择不同SNAT地址 */
80 {
snatpool SNATPool_80
pool http_pool /* 最终选择访问目的地 */
}
21 {
snatpool SNATPool_21
pool ftp_pool
}
default {
snatpool Internal_SNAT_Pool
pool other_pool
}
}
}
else { /* 如果是其他后台节点,可根据需求自由配置*/
snatpool Internal_SNAT_Pool
pool http_pool
}
}
}
//其实整个实现需求的核心在于iRule
iRule 采用TCL 语言语法编写,可以灵活修改,现场需求各不相同,可参考修改;
此方案配置完成后,BIG-IP系统会做如下动作:
(如从server 访问client 的http服务)
一个HTTP请求从server端到达BIG-IP系统,命中VS 0.0.0.0:0;
iSNAT_Rule被引用,检查请求数据包,BIG-IP系统选中SNATPool_80
和负载均衡pool http_pool;
采用round robin负载均衡算法,BIG-IP系统从http_pool中选中下一跳地址172.16.10.71;
SNATPool_80
中有一个翻译地址172.16.10.80 ;
BIG-IP系统从这翻译地址池中随机地选取一个地址 172.16.10.80 (本例为固定源地址翻译,故翻
译地址池中只有一个供选择);
最后,BIG-IP系统将客户端源IP地址翻译成地址172.16.10.80,并将请求包转发至172.16.10.71:
80;
此方案,切忌原有的SNAT 会失效,因为优先级是以7层为先,依次递减,故0.0.0.0的virtual server
优先级高于普通的SNAT, 所以要在iRule 中考虑详尽情况;
解决方案2、
新建必要的出向的pool(将访问的目的地址+端口 做成pool形式,以便iRule调用):
pool http_pool { member 172.16.10.71:80 }
新建virtual server :client_VS: 192.168.10.237:0
VS关联一个iRule :iSNAT_Rule2,内容如下:
rule iSNAT_Rule2 {
when CLIENT_ACCEPTED {
set MYPORT [TCP::local_port]
log local0. "Port is $MYPORT"
switch $MYPORT {
80 {
snatpool SNATPool_80
pool http
}
21 {
snatpool SNATPool_21
pool ftp_pool
}
default {
snatpool Internal_SNAT_Pool
pool http
}
}
}
}
此方案适合内网段中 出向访问需求很多的情况;
此方案采用将virtual server 建立在相对的内网段,使得访问client 变成了访问内网段的virtual
server ,在经过BIGIP的处理后,
命中 iRule 中的某一个SNATpool,源地址就变成SNATpool中可供选择的地
址 ,目的地址转化为出向pool 中的172.16.10.71,
并将请求包转发至172.16.10.71:80;
如果内网段中的其他节点也需要访问外网,而没有一对多的源地址转换需求,即可完全按照正常的
SNAT方式进行,互不冲突;