首页 > 其他分享 >F5 LTM 知识点和实验 7-使用SNATs处理流量

F5 LTM 知识点和实验 7-使用SNATs处理流量

时间:2023-07-31 20:32:46浏览次数:37  
标签:知识点 源地址 F5 BIG 地址 IP SNAT LTM 客户端

第七章:使用SNATs处理流量

SNATs:

传统的vs都是对目的地址和端口进行改变,而源地址没有改变,如果你需要对源地址和源端口进行更改,则需要使用SNAT能力,好处在于: 1、允许不可路由地址(网络内部)的设备获得可路由地址以进入网络外部。2、确保目标服务器通过BIG-IP系统返回响应,而不是直接发送到原始客户端IP地址。

image-20230319202327832

SNAT提供多个节点的映射,通常是内部设备与SNAT地址之间。与nat一样,SNAT地址需要外部可路由的,而节点地址一般不可路由。与nat不同,不能向SNAT地址发起连接。这就是snat比NATs更安全的原因。只有节点可以发起连接。 当BIG-IP系统看到来自SNAT关联节点的连接发起时,源地址将从该节点的实际地址转换为SNAT地址。当目的设备响应时,SNAT地址被转换回节点地址。 snat可以以多种方式配置,包括一对一映射、多对一映射或全对一映射。一对一映射允许单个主机通过BIG-IP系统发起连接。多对一映射允许指定的主机列表通过BIG-IP系统发起连接。all-to-one映射允许所有主机通过BIG-IP系统发起连接。BIG-IP系统中需要在该节点到达的VLAN上开启SNAT功能。缺省情况下,所有vlan在创建时都使能snat。缺省情况下,snat仅支持UDP和TCP协议。注意,源端口通常在连接建立过程中进行转换,以确保所有连接的端口和地址组合都是唯一的。

有三种类型的SNAT地址: 1、一个静态地址 2、SNAT地址池 3、自动地址(bigip自身的地址)

使用SNAT pool:

当SNAT使用Automap选项时,BIG-IP系统的自身ip地址充当SNAT的源地址池。使用SNAT Pool选项的SNAT有一个专门定义为特定SNAT源地址的IP地址池。与Automap相比,这个特性有三个明显的优势:

  • 所有使用Automap的snat共享相同的潜在源地址集。一旦源地址被转换,就不可能知道哪个SNAT处理流量,因此也不可能知道原始客户端的性质。对于SNAT池,转换后的源地址将是与已知SNAT关联的特定池的成员,该SNAT具有定义良好的客户端列表。
  • 虚拟服务器地址可以是SNAT池的成员。这有助于希望将虚拟服务器及其池与SNAT地址和允许的节点在逻辑上关联起来的站点,同时不会失去跨出口vlan负载平衡流量的能力。(比如多运营商出口,做统计)
  • SNAT池是可以被规则引用的独立对象。这将在下一节中讨论。

将SNAT作为监听器

请记住,SNAT比nat更安全,因此SNAT不允许通过BIG-IP系统发起到SNAT地址的流量。但是,与nat一样,从SNAT中配置的网络范围发起的流量将被允许通过BIG-IP系统,源地址也会被修改为SNAT地址。机器上可能没有配置虚拟服务器,但是如果配置了SNAT,那么BIG-IP系统将允许与SNAT中指定的源地址列表匹配的任何客户端通过流量。

对于下面配置的SNAT,此SNAT只会将172.16.0.0/16的源地址更改为207.10.2.102。192.168.x.x源地址包可能仍然被这个BIG-IP处理,但是它的源地址不会被这个特定的SNAT改变。

image-20230319221816820

SNAT特异性

就像虚拟服务器一样,多个snat可能匹配同一个数据包。因此,就像vs一样,在确定将使用哪个SNAT方面也有不同的具体标准。最优的是在vs中配置的SNAT。这意味着vs运行在snat之前。接下来,根据Origin字段中的网络掩码的具体程度应用snat。

image-20230319224144389

VIP反弹(vip bounceback)

当client和rs都在bigip的同一个vlan侧,则需要使用vip反弹能力。 image-20230319231455239

  • 普通VLAN客户端发起到虚拟服务器的连接。
  • 连接成功后,BIG-IP LTM系统会处理源IP地址,并将其从内部客户端修改为SNAT/NAT地址。
  • BIG-IP LTM系统处理目的IP地址,并将其从Virtual Server IP地址更改为池成员的IP地址。
  • 当节点回复连接时,它将回复SNAT/NAT地址(而不是原始源地址)。

SNAT的附加选项

SNAT是将一个或多个原始客户端IP地址映射到一个转换地址。你可以使用iRule实现这种类型的SNAT映射,而不是创建SNAT对象。对于这种类型的SNAT, LTM系统用于决定何时应用转换地址的标准基于您在irule中指定的任何数据,例如HTTP cookie或服务器端口。

创建步骤:1、创建一个snat pool。2、创建一个irule,匹配上snat pool。

示例1:

使用TCP::local_port属性去进行匹配,再将地址通过指定的snatpool进行转换。

rule my_iRule {
when CLIENT_ACCEPTED
 if { [TCP::local_port] euqals 531}{
 snatpool /Common/chat_snatpoll
 }
 elseif { [TCP::local_port] euqals 25}{
 snatpool /Common/smtp_snatpoll
 }
 else { 
 snatpool /Common/other_snatpoll
 }
 pool /Common/out_pool
}

当LTM系统检测到CLIENT_ACCEPTED状态时,irule中的if语句表示LTM系统测试客户端请求头中指定的服务器端口值(TCP::local_port = 531)。根据结果,LTM系统选择一个SNAT池,或者检查不同的服务器端口值并选择不同的SNAT池,或者直接选择第三个SNAT池。对于所有结果,irule还选择指定的负载平衡池。

示例2:

rule SwitchRule{
  when CLIENT_ACCEPTED{
  set MYPORT [TCP::local_port]
    switch $MYPORT{
        80{
        snatpool SNATPool_80
        pool /Common/http_pool
        }
        443 {
        snatpool SNATPool_443
        pool /Common/https_pool
        }
        default {
        snatpool /Common/SNATPool_Other
        reject
        }
    }
  }
}

回顾:

virtual server:vs是虚拟IP地址和虚拟服务的组合。一般情况下,报文从客户端出发时,目的地址为BIG-IP系统上的虚拟服务器地址,源地址为客户端地址。BIG-IP系统接收该目的地址并将其转换为池成员之一的IP地址。响应包将源地址和目标地址颠倒过来,因此现在需要将源地址转换回去。虚拟服务器有时被描述为一对多进程,发送到单个虚拟服务器地址的流量可以分配到多个目标设备。

SNATs:snat在连接进程启动时执行源地址转换。与其他BIG-IP进程一样,在处理响应报文时转换回真实ip。SNAT将只对指定的客户端执行此处理,不支持到SNAT地址的连接请求。SNAT参数定义了源地址转换到的地址、客户端从哪个VLAN到达以及支持的客户端地址。SNAT处理可以在入站和出站流量上进行,但通常用于出站流量。snat被描述为多对一过程;当使用SNAT时,许多客户端可以共享相同的源地址。

NATs:nat可以在连接建立时转换源地址或目标地址,然后将反向响应过程。与虚拟服务器和snat不同,nat是一对一的过程。其中一个地址,即NAT地址,将侦听连接尝试。如果流量发送到该地址,则目的地址转换为节点地址。反之,如果节点通过BIG-IP系统发起连接,则源地址将转换为NAT地址。

image-20230320230511428

过滤器(filter)、虚拟服务器(vs)、SNAT和NAT优先级

BIG-IP对报文的处理是有优先级的。顺序在下表中。然而,有两点需要注意。如果启用了筛选器,管理员可以选择筛选器是否影响现有连接。缺省情况下,已存在连接的流量不受过滤器影响。但是如果管理员选择影响现有连接,筛选器将优先于会话表。此外,每个虚拟服务器、SNAT和NAT可以在0个或多个vlan上启用。缺省情况下,以上对象能被使用在全部的vlan上。

监听器Listener 地址Address 示例
存在的会话
包过滤器
vs 指定ip:port 10.10.10.10:80
指定ip 10.10.10.10:*
网络地址和特定端口 10.10.10.10/24:80
网络地址 10.10.10.10/24:*
特定端口 0.0.0.0/0:80
默认地址 0.0.0.0/0:*
SNAT 指定地址 192.168.20.1
网段 192.168.20.0/24
默认地址 0.0.0.0/0
NAT 源地址匹配上客户端地址
目标地址匹配上nat地址

实验:

测试SNAT优先顺序:

Destination No Snat Auto Map on https_vs Snat with Origin Network Range All Address Snat
http_vs
https_vs
172.16.20.1

1、清除http_vs和https_vs的Source Address Transaction配置。

2、在https_vs中将Source Address Transaction配置成Auto Map。

3、配置一个SNAT

路径:Local Traffic ›› Address Translation : SNAT Pool List

  • Name:snat_pool
  • Member List:172.16.1.150

image-20230622154816311

标签:知识点,源地址,F5,BIG,地址,IP,SNAT,LTM,客户端
From: https://blog.51cto.com/u_9346709/6912315

相关文章

  • Linux知识点总结—3
    今天主要总结了Linux知识点中的网络编程相关知识点,希望可以帮助大家梳理网络编程中的知识点,那我们直接开始吧!!网络基础1IP地址本质:uint32_t类型的整数,例如:192.168.0.0作用:用于唯一标识一个设备在网络中的位置应用:网络通信中的每一条数据都应该具备源端IP地址和对端IP地址,通过这两个......
  • 《信号分析与处理》期末复习题库整理(题目+手写知识点+答案+期末知识点精细)
    文章目录一、傅里叶变换、s域变换、z域变换(待:整理一些常用以及方程变换)傅里叶变换s域变换z域变换二、试卷一、选择题12345678==9==1011121314151617181920==21==22232425262728二、填空题12==3==567891011121314151617三、计算题12345678==10==111213==14====15====16====17==三、......
  • 每个.NET开发都应掌握C#泛型的知识点
    C#泛型编程是.NETframework2.0的新特征,它提高了代码安全性和代码重用的问题。由于泛型必须指定类型,正确的使用可以避免了装箱拆箱的问题;使用了泛型后,可以将算法或组件泛型化,基于类型参数支持任意数据类型,从而提高了代码的重用性。C#泛型编程在C#是很重要的特性,建议.NET开发熟......
  • F5 LTM 知识点和实验 6-使用虚拟服务器处理流量
    第六章:使用虚拟服务器处理流量virtualserver类型前几章描述的场景,可以简单总结为,F5设备终结了一个会话,在client-side充当服务端,在server-side充当客户端,完成了一个全代理过程,这种模型的vs类型被称为标准类型。一般在你需要将流量做负载等场景时需要。但是你也许不需要对流量做......
  • F5 LTM 知识点和实验 5-健康检测
    第五章:健康检测监控的分类:地址监控(3层)服务监控(4层)内容监控(7层)应用监控(7层)性能监控(7层)路径监控(3、4、7层)三层监控:三层监控可以帮助bipip系统通过检查网络是否可达监视资源。比如使用icmpecho,向监控节点发送icmp_echo报文,如果接收到响应,则认为节点可用。但是三层检测有......
  • CF547D Mike and Fish 小丑做法--zhengjun
    写到一半发现标签有二分图就不对劲了,题解区里都是欧拉回路。然而我是随机化+模拟网络流!自豪首先可以先建模,观察同一种颜色,发现每一行或每一列的限制即为\(\lfloor\frac{t}{2}\rfloor\lex\le\lceil\frac{t}{2}\rceil\)。然后套路地把横坐标和纵坐标分开来建个二分图,建立源点......
  • Bland-Altman
    一、案例介绍某医生使用方法A和方法B对20名患者进行血脂测量,现在想要知道这两种血脂测量方法的测量结果是否具有一致性,收集部分数据如下:二、问题分析医学研究中进行一致性检验时,通常有以下4种方法,对比说明如下表:本案例数据为定量数据,可以使用ICC组内相关系数或者Bland-Altma......
  • 图片知识点规划小结
    面向对象面向对象是一种程序设计思想,它的核心概念是“对象”。“对象”是指具有特定属性和行为的实体,能够接收消息、处理消息并返回结果。在面向对象的编程语言中,所有的程序都是由多个对象组成的。常用的dos命令Java语言的三个版本java关键字八大数据类型三种变量和常量......
  • MT4期货软件App靠谱吗?投资者需要了解哪些知识点?
    很多投资者在选择期货交易平台的时候,都会接触到MT4期货软件App,事实上MT4期货软件App的用户人数也是非常多的。但是不熟悉MT4期货软件App的投资者会对此有些怀疑,选择它真的靠谱吗?当然,投资者可以在选择之前反复考虑这些问题,确认靠谱之后再开始下一步的操作。MT4的优点想必做期货交易......
  • 优化trycatch所需的前置知识点(Promise对象讲解)
    优化trycatch所需的前置知识点(Promise对象讲解):https://blog.csdn.net/weixin_45371730/article/details/122029631?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-122029631-blog-119996003.235%5E......