F5-npath模式-说明-linux上配置
NPATh 是三角模式,即F5放在旁路,真实服务器网关也不用设为F5地址
服务器的loopback地址设置为bigip的vip后回去的流量就不走bigip
不是设置了loopback地址而不走BIGIP的,BIGIP下面的服务器的网关地址指向是交换机或者路由器,
、并没有指向BIGIP,回去的流量就不走BIGIP.设置loopback地址的作用是服务器在收到客户端请求之后,
返回给客户端的地址是loopback地址,这样让客户端的再次请求时先走到BIGIP上,然后再由BIGIP流向服务器,
从而实现三角传输.
BIGIP在做npath的时候是要勾掉port translation和address translation的,这个时候,客户端请求发到BIGIP VS上,
从BIGIP转发给服务器的时候就不会改变数据包里面的目地地址和目标端口,而只改变数据包的目的MAC地址.
请求会发送到服务器的网卡上.注意这个时候的源地址是客户端的真实地址.
loopback地址和VS地址相同,因此,侦听在Loopback地址上的应用会把请求接收进行处理.
处理完成后在返回的时候查看本机路由,发现客户端源地址不和本地网卡直连,因此就从默认网关送回回应包.
而此时的默认网关是路由器或者交换机,就直接返回给客户端了.
1)三角模式的负载均衡
三角模式的负载均衡,即客户端发送给F5,F5转发给服务器,服务器直接发回给客户端,其中这么奇特的模式,
其实是用到了IP欺骗(即mac地址和IP实际不是匹配的).三角模式的图,可以在PPT中看到.
(2)负载均衡F5是以TCP连接为单位的.("三角"模式)
在客户端有连接请求(即TCP SYN握手请求)时,F5才会根据负载均衡算法去计算出应该发到哪台服务器,
拥有帝国一切,皆有可能。欢迎访问phome.net
比如服务器A.往后,该TCP连接上的数据的传送,虽然客户端依然将TCP包发给F5,
但是F5不再使用算法计算应该发往哪台服务器,而都会将TCP包转发给服务器A.
,一个TCP连接建立后,在这个TCP连接上的数据的传输,
客户端最终都是和某台特定的服务器(如服务器A)进行数据传输的.
(3)负载均衡机器F5的IP欺骗.("三角"模式)
IP欺骗是用在"三角"模式上.F5和服务器A握手,以及后续将TCP包都发给服务器A,TCP包的都是以[src=客户端IP,dest=F5的IP]
这样的TCP头传输的,不过虽然[src=客户端IP],但是实际[src=客户端IP]的mac地址是F5,
[dest=F5的IP]实际的mac地址是服务器A,这称为IP欺骗(具体做法应该是hack负载均衡机器F5的IP寻址ARP的过程,
让寻找到的mac是伪装的).这样,服务器A在接收到TCP包,TCP头是[src=客户端IP,dest=F5的IP],
,服务器A则会以[src=F5的IP,dest=客户端的IP]为TCP头将TCP数据包发给客户端,
客户端又以[src=客户端IP,dest=F5的IP]的TCP头部将TCP数据包发给F5.这就形成了三角的形状.
注意,这种三角模式用到的IP欺骗,是在内部IP(私有IP地址)之间,
即F5和服务器们有相同的IP号(子网掩码的1对应的部分),才行.
-------------------------------------------------------------
linux 服务器负载时使用nPath的注意事项
操作系统RedHat AS4
模拟情况:vip 192.168.10.110
real server 192.168.10.205/203
即虚拟ip和realserver在同一个网段,又需要采取单臂模式的情况时.
结果,需要在linux服务器上作如下配置
1. 修改lo地址为vip地址
配置修改: vi /etc/sysconfig/network-scripts/ifcfg-lo:0
拥有帝国一切,皆有可能。欢迎访问phome.net
DEVICE=lo:0
IPADDR=192.168.10.110
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback
测试是否配置成功,可以直接在此服务器上ping 192.168.10.110
2. 通过运行如下脚本实现对loopback口的arp广播的禁止:否则,其它机器,就可以ping通这个地址了
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore //这个是主要的
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
注:以上eth0是服务器发布服务的网络接口,可以根据具体的环境设置.
可以将这四行脚本写进rc.local里,让其每次开机时都自动运行.
3.配置好服务器上的以上配置后再进行F5的相应配置.
本文出自 “皓月无痕泽哥地带” 博客,请务必保留此出处http://lzspf.blog.51cto.com/843701/729930
拥有帝国一切,皆有可能。欢迎访问phome.net |