首页 > 编程语言 >F5 LTM 知识点和实验 12-使用规则和本地流量策略定制应用程序交付

F5 LTM 知识点和实验 12-使用规则和本地流量策略定制应用程序交付

时间:2023-08-07 23:37:00浏览次数:50  
标签:知识点 12 HTTP F5 BIG 规则 IP http 客户端

第十一章:iapp(忽略)

第十二章:使用规则和本地流量策略定制应用程序交付

用最简单的术语来说,iRule是在网络流量通过BIGIP系统时对其执行的脚本。其思想非常简单:规则使您能够编写简单的网络感知代码片段,这些代码以各种方式影响您的网络流量。无论您是希望以BIG-IP内置选项中目前无法提供的方式进行某种形式的自定义应用程序交付,还是希望通过细粒度控制流甚至给定数据包的内容来完全自定义用户体验,这都是构建irrules的目的。

image-20230430144852070

规则可以路由、重路由、重定向、检查、修改、延迟、丢弃或拒绝、记录,或者对通过BIG-IP系统的网络流量做任何其他事情。irules背后的想法是使BIG-IP几乎无限灵活,为您提供在需要时做您需要的事情的能力。当标准的BIG-IP选项(如配置文件和流量策略)还不够时,irrules提供了一种自定义语言,您可以使用该语言将业务和应用程序逻辑添加到网络级的部署中。

规则的常用用法在BIG-IP系统中,规则可以用于做各种各样的事情,而且它们不仅仅局限于BIG-IP本地流量管理器(LTM)。例如,根据包头或负载的内容,您可以:

  • 选择负载均衡池、负载均衡池成员或节点
  • 将客户端从HTTP重定向到HTTPS(如果可能,最好使用本地流量策略)
  • 将客户端持久化到特定池成员选择一个适当的IP地址用于源地址转换(智能SNAT)
  • 对DNS查询提供自定义响应(智能DNS)
  • 提供自定义阻塞响应页面操纵响应有效负载以掩盖敏感信息
  • 将AD查询结果传递给web服务器

image-20230430151958171

在本例中,规则检查客户端的IP地址,并根据该信息决定负载平衡池和源地址转换(SNAT)的使用。如果客户端IP地址以字符串“10”开头,则负载均衡连接到internal_pool,源地址从客户端地址转换为SNAT池internal_snatpool中的地址。

你觉得这个规则有什么潜在的问题吗?尽管没有语法错误,但是按照if语句的构造方式,IP地址以“100.”开头的客户机也将匹配条件,而不仅仅是IP地址以“10.”开头的客户机,如下所示。(还有其他方法可以匹配IP地址。)

image-20230430152715829

触发规则

iRules是一种事件驱动的语言,这意味着规则是用代码块编写的,每个代码块只在特定的时间点执行——一个事件——作为一个通过BIG-IP代理的连接。

image-20230501231716679

如图3所示,一些事件与BIG-IP系统(客户端)上客户端和虚拟服务器之间的流量相关。例如,CLIENT_ACCEPTED事件发生在客户端3次握手完成时,作为TCP连接建立的一部分。此时可以触发规则来检查和操作有效负载。其他事件与BIG-IP系统和池成员(服务器端)之间的流量相关。例如,SERVER_CONNECTED事件发生在服务器端3次握手完成时。其他事件与BIG-IP系统内部的活动相关联。例如,当BIG-IP选择要对连接进行负载平衡的池成员时,就会发生LB_SELECTED事件。

上图还显示了HTTP_REQUEST事件发生在接收到HTTP请求之后(而不是之前)。在这个过程中,规则可以安全地检查并根据HTTP头信息做出决定。在完成所有客户端请求处理并做出负载平衡决策之前,但在将实际数据发送到所选服务器之前,不会触发SERVER_CONNECTED。当服务器将其响应发送回BIG-IP系统时发生HTTP_RESPONSE。请注意,某些事件(如HTTP_REQUEST和HTTP_RESPONSE)可以在单个TCP连接上发生多次。

这确保了控制何时以及如何执行规则代码的粒度,并允许您尽可能地控制。这也使得BIG-IP系统每次只需要执行相关的事件块代码,而不是执行整个脚本,从而使事情变得高效。

iRule Wiki : http://devcentral.f5.com 或 DevCentral: An F5 Technical Community

作为一个完整的代理平台,BIG-IP系统本质上有两个上下文,客户端和服务器端,每个上下文都有自己独立的、功能齐全的TCP堆栈,其中上下文是严格执行的。这些术语并不表示流入或流出BIG_IP系统的方向流,甚至也不表示存在服务器。就我们的目的而言,客户端仅仅是指客户端发起到BIG-IP连接的一方,而服务器端则是指BIG-IP系统出于传输流量的需要而发起到服务器连接的一方。

image-20230501232447011

规则构造概述

Tool Command Language(Tcl)可以在http://tmml.sourceforge.net/doc/tcl/index.html上找到Tcl文档。它有四种结构:

image-20230501232929882

实验

负载平衡, XFF报头和自定义404响应

实验目标:

  • 根据客户端的IP地址选择负载均衡池
  • 在HTTP请求传递到web服务器之前,插入一个X-Forwarded-For报头
  • 当后端服务器返回HTTP 404状态时,发送自定义响应页面
  • 使用变量将仅在客户端上下文中可用的值传递给服务器端事件
创建规则并将其分配给虚拟服务器

1、创建两个pool

第一个:

  • Name:in_network_http_pool
  • Member:172.16.20.1:80,172.16.20.2:80,
  • Load Balancing Method:Round Robin

第二个:

  • Name:out_network_http_pool
  • Member:172.16.20.3:80,
  • Load Balancing Method:Round Robin

2、创建vs

  • Name:custom_http_vs
  • Destination IP:10.10.10.110:80

通过规则从HTTP响应中删除不需要的标头

1、请求http://10.10.10.110,先确认响应头有什么内容。

image-20230707222734379

基于负载内容的负载平衡-HTTP和TCP

1、创建一个iRule

使用Policy完成负载平衡,插入XFF头

创建规则并将其分配给虚拟服务器

1、清理custom_http_vs的所有irules。

2、将in_network_http_pool的成员全部配置成enable。

使用policy完成基于HTTP URI查询字符串的负载平衡

1、添加rule

  • HTTP URI query parameter named 'user' is 'me' at request time.-Forward traffic to pool '/Common/in_network_http_pool' at request time.
  • HTTP URI query parameter named 'user' is not 'me' at request time.-Forward traffic to pool '/Common/out_network_http_pool' at request time.

F5专业认证计划

image-20230501234734331

image-20230710001823343

image-20230710002002672

标签:知识点,12,HTTP,F5,BIG,规则,IP,http,客户端
From: https://blog.51cto.com/u_9346709/6999830

相关文章

  • 操作系统基本知识点
     P1:自己动手写操作系统P2:  操作系统相关概念P3: 高级操作系统特性P4:时间片轮转与上下文切换 -------------来源参考B站黑马程序员操作系统入门 P5:  操作系统与资源调度P6:  资源调度与资源争抢P7:  中断和实时操作系统 P8: 操作系统概念总......
  • 微信小程序12 跳转,跳转时传参
    我们正常操作的话,肯定有很多页面之间的跳转,在微信小程序中navigator,跳转效果类似html中的a标签<navigatorurl="/pages/index/index">跳转到index</navigator>注意参数url指向要跳转的页面,本地跳转的话基本就是/pages/文件夹/文件名,没有后缀。这样点击标签后就会跳转......
  • CF559E Gerald and Path 思考--zhengjun
    做了半天,然后打开题解发现里面全是\(O(n^3)/O(n^2)\)的。然后我的原来\(O(n^5)\)的前缀\(\max\)优化成\(O(n^4)\)的就非常......
  • AP5126 DC-DC降压恒流 LED摩托电动汽车灯IC 同款LN2576/LN2556
    产品描述 AP5126是一款PWM工作模式,高效率、外围简单、内置功率管,适用于12-80V输入的高精度降压LED恒流驱动芯片。输出最大功率可达15W,最大电流1.2A。AP5126可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮/循环模式。AP5126工作频率固定在140KHZ,同时内置抖频电......
  • Airflow 2.2.6 + MySQL 8.0.27 + Redis 7.0.12 部署Airflow任务调度平台
    本docker-compose文件在centos7.9系统,docker版本为24.0.2上测试的如果你的docker版本低于24.xxx就需要手动安装docker-compose,高于24就不需要安装了,docker已经自带了官方文档,关于docker部署1.先执行mkdir-p./dags./logs./plugins./config./......
  • 取数游戏 Atcoder-abc128_d
    枚举两端取了几个数,将手中的负数从小到大放回序列即可#include<bits/stdc++.h>usingnamespacestd;intn,m,a[55],c[55],ans=-0x7fffffff;intmain(){scanf("%d%d",&n,&m);for(inti=1;i<=n;i++)scanf("%d",&a[i]);f......
  • 12ESB企业服务总线
    ESB是联通各个系统、消除信息孤岛的一种服务。它支持多种功能:提供位置透明性的消息路由和寻址服务:通信的时候不需要知道对方地址,只需要将信息上传到总线。提供服务注册和命名的管理功能:支持多种的消息传递范式:支持多种可以广泛使用的传输协议:支持多种数据格式及其相互转换:......
  • Siemens 西门子S7-1200 PLC模拟量控制变频器
    一、任务目标该任务是关于西门子1200PLC模拟量应用案例。西门子S7-1200PLC的模拟量功能可以控制电动阀、变频器等外部设备,也可以采集传感器的温度、压力、液位、流量等。本任务主要使用的是模拟量控制台达变频器从而控制电机的转速。二、任务描述某设备厂,需要对设备进行散......
  • Siemens 西门子S7-1200 PID功能组态
    在我们实际工作经常会用到PID控制系统,比如控制恒压供水设备,恒温加热设备等。这些设备使用PLC进行控制时,不仅仅需要编程,还需要设置相关参数(或者说组态)。只有正确设置了相关参数之后,程序编写的才有意义。那么今天我们以西门子1200PLC为例,给大家讲讲如何组态PID功能。在组态......
  • AMD cpus在VM虚拟机安装macOS10.15和12教程一
    本教程采用软件为vmwareworkstation17pro,操作系统win10,CPU为5600G,macOS10.15或者macOS12VM虚拟机的下载和安装这里不阐述,大家可以百度一下macos13在上述环境下安装后会提示错误,macOS14beta暂时不支持安装,所以13-14可以暂时放弃macOS的下载请百度一下就有了~记得下载带引导......