• F5 SNAT NAT相关


    SNAT:

    跟路由器、防火墙一样,BIG-IP系统提供NAT (Network Address Translation)和SNAT(Secure Network Address Translation)地址转换机制,SNAT地址转换跟Cisco PAT方式类似。如果不启用NAT/SNAT,负载均衡池内部节点将无法访问外部网络,即外部IP可以通过虚拟服务器IP访问负载均衡池节点,但负载均衡池内部节点不能发起对外连接。

    NAT和SNAT都可以通过地址转换访问外部网络,不过SNAT不接受外部发起的连接。一个SNAT地址可以对应一个节点地址、多个节点地址或一个VLAN网段。NAT地址与节点地址是一对一的关系。本文仅给出业务与软件常用的SNAT配置步骤。

     说明:

    SNAT地址可以不是唯一的,比如,SNAT地址可以使用虚拟服务器的IP地址。

     

    配置步骤(1)

    在导航面板中选择Local Traffic->SNATs标签,点击“Create”按钮添加SNAT地址。

     

    SNAT配置

    (2)

    在“Name”文本框中输入名称

    (3)

    在 “Translation”文本框中输入SNAT IP地址,并在“Origin List”的“Origin Address”文本框中输入节点IP地址或在“VLAN Traffic”的下拉框中选择“Enable on”或“Disable on”在VLAN List中选择相应的Vlan,点击“<<”加入“Selected”列表。

    (4)

    按“Finished”完成添加SNAT IP地址。

    (5)

    通常我们希望内部节点可以Ping到外部网络,这时我们需要在System>Gernal Properties>Local Traffic>Gernal”中启用“Snat Packet forwarding“。

    说明:

    如果需要添加外部单独访问内部特定节点IP。由于NAT和SNAT不能共存,可以针对特定节点创建单个节点组成的负载均衡池Pool,服务为“0”,然后创建虚拟服务器VIP,服务也为“0”,将VIP和Pool关联起来,这时候这个VIP就是那台要访问的服务器。

     

     

     

    验证SNAT配置

    在检查SNAT配置正确性之前,必须确保BIG-IP系统网关已经配置完毕。请在CLI界面用“netstat –nr”命令确定网关信息已经配置完毕:

    f5test1:~# netstat -nr

    Routing tables

    Internet:

    Destination Gateway Flags MTU If

    default 10.77.88.254 UGS 3400 vlan1

    10.76.160.135 10.77.88.254 UGHc 3400 vlan1

    10.77.88.192/26 link#7 UC 3400 vlan1

    10.77.88.250 0.e0.fc.5.36.78 UHLc 3400 vlan1

    10.77.88.254 0.e0.fc.2.5d.f2 UHLc 3400 vlan1

    127 127.0.0.1 UGRS 4352 lo0

    127.0.0.1 127.0.0.1 UH 4352 lo0

    192.168.1 link#6 UC 3400 vlan0

    192.168.129 link#8 UC 3400 vlan2

    192.168.129.12 link#8 UHLc 3400 vlan2

    192.168.129.13 link#8 UHLc 3400 vlan2

    192.168.129.16 0.e0.81.3.45.27 UHLc 3400 lo0

    f5test1:~#

     

    在BIG-IP系统CLI界面中用TCPDUMP验证SNAT配置。举例,在内部节点(IP:192.168.129.12)中Ping外部IP地址(10.77.220.82),BIG-IP的Internal VLAN IP为192.168.129.16(对应SNAT地址为10.77.88.213),测试显示如下:

    f5test1:~# tcpdump -i external host 10.77.88.213 and icmp

    tcpdump: listening on external

    11:04:55.085576 10.77.88.213 > 10.77.220.82: icmp: echo request

    11:04:55.087803 10.77.220.82 > 10.77.88.213: icmp: echo reply

    11:04:55.099550 10.77.88.213 > 10.77.220.82: icmp: echo request

    11:04:55.102797 10.77.220.82 > 10.77.88.213: icmp: echo reply

    f5test1:~# tcpdump -i internal host 192.168.129.12 and icmp

    tcpdump: listening on internal

    11:06:02.859518 192.168.129.12 > 10.77.220.82: icmp: echo request

    11:06:02.861788 10.77.220.82 > 192.168.129.12: icmp: echo reply

    11:06:02.865022 192.168.129.12 > 10.77.220.82: icmp: echo request

    11:06:02.866768 10.77.220.82 > 192.168.129.12: icmp: echo reply

     

     

    如何实时监视BIG-IP的连接状态?

    请使用“watch b conn”命令,退出请按“Ctrl + C”,显示示例如下:

     

     

  • 相关阅读:
    Go 语言打包静态文件
    Go 语言编写单元测试
    从开源项目看 Python 单元测试
    从开源项目看python代码注释
    Celery 源码解析八:State 和 Result
    Celery 源码解析七:Worker 之间的交互
    Celery 源码解析六:Events 的实现
    Celery 源码解析五: 远程控制管理
    Celery 源码解析四: 定时任务的实现
    覆盖equals时请遵守通用约定
  • 原文地址:https://www.cnblogs.com/zihanxing/p/6852753.html
Copyright © 2020-2023  润新知