烦恼一般都是想太多了。

0%

F5的负载均衡

电信业务,如3A等都部署了负载均衡设备。F5、Array都有接触,但实在没空去研究细节,只能把其工作机理讲一下。进入F5去看的时候发现其BIG-IP系统本身即是一个Linux的发行版进行定制的,一应Linux utility 一应俱全。

从配置文件看起

配置文件在 /config下,有 bigip_base.conf bigip_sys.conf bigip.conf bigip_local.conf

基本概念

POOL MEMBER IP:PORT
NODE IP
POOL many POLL MEMBERS
VIRTUAL SERVER F5对外提供的一个IP与端口,与POOL关联
HEALTH MONITOR Node:icmp Pool member:tcp connection Content check:http GET /

工作流程

bigip.conf文件包含了绝大部分的配置,包括Pool设置,Monitor设置,路由指定。
以下配置,将发往 v-cw-1812服务(172.16.10.100:radius)的报文负载均衡到 cdma-1812-pool去

<!-- 对外提供服务并关联cdma-1812-pool-->
virtual v_cw-1812 {
pool cdma-1812-pool
destination 172.16.10.100:radius
ip protocol udp
profiles fastL4 {}
vlans {
vlan01-inside
vlan3-cn2
} enable
}
<!-- 定义了一个POOL 使用 cdma-1812-monitor来进行健康检测-->
pool cdma-1812-pool {
monitor all cdma-1812-monitor
members {
10.10.1.1:radius {}
10.10.1.2:radius {}
10.10.1.3:radius {}
10.10.1.4:radius {}
10.10.1.5:radius {}
10.10.1.6:radius {}
10.10.1.7:radius {}
10.10.1.8:radius {}
10.10.1.9:radius {}
10.10.1.10:radius {}
10.10.1.11:radius {}
10.10.1.12:radius {}
}
}
<!-- 检测服务是否可用 模拟发包-->
monitor cdma-1812-monitor {
defaults from radius
dest \*:radius
password "3413420131219"
secret "jy343fd2504"
username "cdmaevdoht"
}
<!-- 将所有 origins的IP源地址修改为172.16.10.100 -->
snat out-to-cn2 {
translation 172.16.10.100
origins {
10.10.1.1
10.10.1.2
10.10.1.3
10.10.1.4
10.10.1.5
10.10.1.6
10.10.1.7
10.10.1.8
10.10.1.9
10.10.1.10
10.10.1.11
10.10.1.12
}
}
<!-- node 使用 icmp检测-->
node 10.10.1.1 {
monitor icmp
screen pc_cdma01
}