第六章:使用虚拟服务器处理流量
virtual server 类型
前几章描述的场景,可以简单总结为,F5设备终结了一个会话,在client-side充当服务端,在server-side充当客户端,完成了一个全代理过程,这种模型的vs类型被称为标准类型。一般在你需要将流量做负载等场景时需要。
但是你也许不需要对流量做代理,而是要透传到另一个网络中,也许需要通过公网出口的路由器或者防火墙设备负载流量,还有可能你觉得7层开销过大,只需要4层负载等。
我们在配置vs的是时候,有一栏成为type,里边包含了很多种类。
- Forwarding(IP):应用在不希望进行负载情况下将流量从一个网络传递到另一个网络的场景。
- performance(FastL4):用于对流量进行负载,需要关联FastL4的profile,关联profile的目的是为了提高处理数据包的速度。这种场景可以使用到硬件加速,但是不能对7层进行解析。
- performance(HTTP):需要关联FastHTTP的profile。该配置文件将TCP、HTTP和OneConnect的部分特性集成在一个profile中,针对网络性能进行了优化,此方案可以访问7层的全部信息。
- stateless:无状态针对吞吐量非常高,且不需要跟踪单项upd的数据流非常有用,比如三角模式下负载DNS查询。
- reject:拒绝流量转发。
- dchp:将dchp客户端发出的dchp请求报文中继到一个或多个dhcp服务器上。
- Forwarded(Layer 2):关联FastL4的profile文件,不能配置pool池,数据包根据路由决定转发路径,共享关联vlan接口的ip。
- 内部虚拟(internal virtual server):内部虚拟服务器提供了一种向外部服务(如ICAP服务器)发送请求或响应的方法,用于内容修改,如防病毒扫描、广告插入或内容转换、视频适配和优化、web内容过滤等。通过设计,内部虚拟服务器只能由同一BIG-IP系统上配置的另一个虚拟服务器访问。
- 消息路由(message routing):用于SIP的代理。bigip系统防止在SIP路由器、会话边界控制器和软交换机之间。用于负载均衡SIP数据包。
Forwarding virtual server:
两种场景:
- 路由器(router):基于路由表转发。
- 桥接(bridge):二层转发。
和标准vs不同,标准vs是均衡连接的,但是转发vs是基于数据包转发的。转发vs将数据包转发到指定的目的地,而不是转发到池成员。
需要注意的是,转发vs的地址转换和端口转换时disabled的,而标准vs时enabled的。默认的,标准vs的掩码是32位的。
vs的ARP:
BIG-IP系统接受所有配置了单一目的IP地址(主机)的虚拟服务器地址的ARP请求,不接受所有配置了网络IP地址范围的虚拟服务器的ARP请求。如果为单个地址(主机)创建虚拟服务器,它将在默认情况下在其关联的虚拟地址上启用ARP。如果转发IP虚拟服务器配置的是主机IP地址,而不是网络地址范围,如果是在本地网络中,则可能导致IP地址与实际主机的IP地址冲突。通过在特定vlan上启用或禁用虚拟服务器,或者在关联的虚拟地址上启用或禁用ARP,可以控制BIG-IP系统在何时何地响应代表其虚拟地址的ARP请求。这适用于任何类型的虚拟服务器,包括转发IP虚拟服务器。
举例:
假设你想bigip允许将10.10/16网段的流量转发到172.16/16的网络里,除了172.16.20.22,你需要配置转发vs在vlan中放通172.16.0.0/16网段,再配置一个vs阻止流量去往172.16.20.22。这时,独立ip的vs将开启arp功能,如果vs在所有接口上都监听,就会在172.16/16的网络里产生arp冲突。此时,你可以只允许vs应用在10.10/16的网络里,或者关掉这个vs的arp功能。首选前者,因为在创建的时候你可以选择vlan接口,而禁用arp则需要在创建之后才能关闭,这期间会造成故障。
指定vs应用在特定VLANs上:
根据上述场景,选择将vs应用到一个指定的vlan上有助于减少arp冲突,因为他在创建vs的时候就能配置,我们可以在VLANs and Tunnels窗口进行选择。
开关vs的ARP
如果你想关闭一个vs的arp能力,你需要在virtual address界面管理,这种方式实在vs创建完之后才能执行的。
vs优先级
假设现在配置文件中有三个vs,分别是:
1、标准的vs,ip是10.10.1.100,端口是80的web应用。 2、标准的vs,ip是10.10.1.100,全端口,并且使用了irule去处理负载逻辑。 3、通配符方式的转发vs,ip是0.0.0.0/0,全端口,作为默认网关用于转发去往其他网络的流量。
bigip系统会根据最长匹配原则,选择最精准的vs进行处理,比如一个目标地址为10.10.1.100,端口为80的数据包到达bigip,他会选择第一个vs进行转发。
Transparent virtual server:
通常,虚拟服务器启用了地址和端口转换,这允许将目标地址和端口从虚拟服务器地址和端口转换为所选池成员的地址和端口。换句话说,池成员是流量的最后一站。但是,在某些情况下,您可能希望通过池成员将流量负载均衡到超出池成员的目的地,例如通过路由器、防火墙或其他代理设备进行负载均衡的流量。在这些情况下,地址转换是不可取的。缺省情况下,转发虚拟服务器的地址转换功能处于关闭状态,Forwarding virtual server无法实现流量负载均衡。Transparent virtual server可以做到这两点——负载平衡流量而不需要地址或端口转换,
池的成员是流量要经过而不是流向的透明设备。在地址和端口转换关闭的情况下,BIG-IP系统通过使用池成员的MAC地址将流量发送到池成员,目的IP地址和端口保持不变。换句话说,这些设备不充当目的地,而是充当流量到达目的地途中的下一跳。当负载均衡是透明设备(路径)而不是目的地时,需要用Transparent virtual server。此外,当负载平衡设备不通过BIG-IP LTM系统返回流量时,它们非常有用。最后一种配置有时被称为直接服务器返回(DSR)、非对称路由或nPath路由。
下图说明了如何配置透明虚拟服务器,以允许从数据中心内的客户机和服务器向公共Internet输出流量。由于Internet上有无限多的目的地,因此您可以使用称为通配符虚拟服务器的终极透明虚拟服务器。与Forwarding virtual server一样,通配符虚拟服务器通常侦听发送到一系列IP地址和端口的流量——在这种情况下,所有IP地址和端口0.0.0.0/0:0。不勾选虚拟服务器的地址转换和端口转换,以确保流量通过关联池成员进行负载均衡。网络通配符虚拟服务器的池成员是将您的流量发送到Internet的ISP路由器。在图示例中,它们被配置为211.1.1.254:和222.2.2.254:,它们各自的MAC地址是02:00:00:00:01和02:00:00:00:00:02。、
在Transparent virtual server获得连接并做出负载均衡决策后,它保留连接中的目的IP地址和端口不变,但将MAC地址修改为所选池成员的MAC地址(必要时通过ARP学习)。当ISP路由器池成员收到数据包时,它会查看目的IP地址并继续转发。
实验:
测试不同的虚拟服务器行为:
1、在实验之前需要先将去往172.16/16的路由指向f5设备,你可以使用命令调整一下。
# windows 的cmd命令
route add 172.16.0.0 mask 255.255.0.0 10.10.10.1
# 查看路由
route print -4
# server-1
ifdown eno50332184
route add -net 10.10.10.0/24 gw 172.16.20.9
2、在浏览器中请求172.16.20.1、2、3,你要确保无法直接访问通这三个地址。
3、创建一个vs。
- Name:fwd_vs
- Type:Forwarding(IP)
- Destination Address/Mask:172.16.0.0/16
- Service Port:*All Ports
4、在浏览器上请求172.16.20.1、2、3(http和https),验证是否连接成功。
标签:知识点,F5,端口,vs,流量,虚拟,转发,服务器,LTM From: https://blog.51cto.com/u_9346709/6900393