轻量级网络流量转发工具 - Balance

Balance是一款具有负载均衡和故障转移功能的TCP代理软件。支持IPV6地址的监听和转发,支持rr轮询和ip hash。

某些功能可以替代iptables,比如讲来自本地的80端口转发到8080上:

iptables是这样写的:

iptables -t nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:8080

balance只需要这样:

balance 80 localhost:8080

先来看一下官方文档:

Definitions: A possible destination consisting of a host address and a port  is  called  a

"channel".   A  channel  is  member of a "channel group". Channels are numbered in a group

starting with 0.  Groups are numbered starting with 0, which is the initial default group.

Balance  accepts connections on the given port and forwards them to the supplied channels.

At least one channel (in the default group) must be specified.  If there are two  or  more

channels specified in a group balance performs a simple round-robin load balancing between

the channels.

Balance allows the definition of further channel groups. The connection  scheme  works  as

follows:  balance  tries  first  to establish a connection to a channel in the first group

(0), performing the standard round-robin load balancing scheme.  If  no  channel  in  this

group is available, balance proceeds with the next higher channel group. Groups are simply

separated with a "!" at the command line at startup and can  be  controlled  interactively

with the "group" command.

A  "%"  instead  of  a  "!" as a group separator declares the previous group to be of type

"hash".  This means that instead of a round-robin algorithm, a hash distribution based  on

the client ip address is used to determine the destination channel. This allows connecting

one client always to the same server (e.g. balancing http sessions to a single server).

Hosts may be specified either by hostname or by IP address. Ports may be specified  either

by  name (as listed in /etc/services) or numerically.  If no port is specified in a desti-

nation, the destination port defaults to the source port that balance controls.

Balance allows the specification of the maximum number of connections  per  channel.  This

parameter can be optionally added after the port specification separated by a colon (":").

If a maximum number of connections is specified a channel will only be used for this maxi-

mum  number  of simultaneous connections. A maxc value of 0 denotes an unlimited number of

connections. This is the initial default value of a channel.

The maximum number of groups and channels balance can handle is specified at compile  time

and is initially 16 channels in 16 groups.

以上内容比较简单,就不翻译了。

配合balance的帮助文档,可以实现一下功能:

一,将本地的80端口转发到8080:

balance 80 localhost:8080

二,将本地的80端口转发到web1 8080端口,web2 80端口做rr load balance:

balance 80 web1:8080 web2

三,将本地的ipv6的地址的80端口转发到ipv4的80端口

balance -b 2001:DB8::1 80 10.1.1.1

下面介绍一下Balance的高级用法:

四,web1 , web2 做轮训,只有当web1,2 都出现故障后在转发到web3,!的作用就是做channel groups分割,如果之前的channel出现故障,就转向下一个channel groups 。

balance -f 80 web1 web2 ! web3

五,Balance还可以对转发到的server做连接数限制,当web1连接数打到256个的时候转移到web2,当web2的连接数打到128的时候转移到web3

balance -f 80 web1::256 ! web2::128 ! web3

六,如果想做session 保持的话 balance也能做到,要用到%, 这样就做到了同一个用户的请求都达到后端的同一台服务器。

balance -f 80 web1 web2 %

效果如图:

此工具仅作参考,或者适用于内网环境,想要实现更高级功能,还是参考LVS。

参考连接:

https://www.linux.com/news/taking-load-load-balancing-balance

Balance Official Website: https://www.inlab.de/balance.html

欢迎补充!

时间: 2024-11-14 11:16:13

轻量级网络流量转发工具 - Balance的相关文章

网络流量查看工具为 iftop

作者: daodaoliang 时间: 2016年5月23日 版本: v0.0.1 邮箱: [email protected] 日常用的网络流量查看工具为 iftop, 但是他仅仅只能简单的查看网络的流量情况,若是想要查看某个链接的流量情况就比较困难了,因此再次推荐iftop 这个工具 0x01 安装 iftop 我是官方网站 编译安装iftop示例: 1 2 3 4 5 # centos yum install flex byacc libpcap ncurses ncurses-devel

六种常用的网络流量特征提取工具

六种常用的网络流量特征提取工具 在互联网用户行为分析和异常行为检测的相关研究中,协议识别和特征提取是网络流量特征分析的重要技术手段.下面,本文为大家介绍几款常用的网络流量特征提取的工具. 一.WireShark WireShark是一款常见的网络数据包分析工具.该软件可以在线截取各种网络封包,显示网络封包的详细信息,也可分析已有的报文数据,如由 tcpdump/Win Dump.WireShark 等采集的报文数据.WireShark 提供多种过滤规则,进行报文过滤.使用者可借助该工具的分析功能

Linux 环境查看《网络流量》工具及命令

1. nethogs: 按进程查看流量占用 [[email protected] ~]# yum -y install epel-release.noarch [email protected] ~]# yum -y install nethogs.x86_64 2. iptraf: 按连接/端口查看流量 [[email protected] ~]# yum -y install iptraf-ng.x86_64 3. ifstat: 按设备查看流量 http://gael.roualland.

Ntop监控网络流量

运用Ntop监控网络流量 ____ 网络流量反映了网络的运行状态,是判别网络运行是否正常的关键数据,在实际的网络中,如果对网络流量控制得不好或发生网络拥塞,将会导致网络吞吐量下降. 网络性能降低.通过流量测量不仅能反映网络设备(如路由器.交换机等)的工作是否正常,而且能反映出整个网络运行的资源瓶颈,这样管理人员就可以根据网络 的运行状态及时采取故障补救措施和进行相关的业务部署来提高网络的性能.对网络进行流量监测分析,可以建立网络流量基准,通过连接会话数的跟踪.源/目的 地址对分析.TCP流的分析

linux下网络流量监控工具

今天QA同学让我协助检测下一台服务器的网络流量.没干过这活,在网上随便找了个命令.后来,发现是不对的,为了以后不出丑,决定收集下网络流量监测相关的工具. 查看某个网卡收发数据的总量 方法一 方法二 2.查看网卡的实时的流量 工具一 网上找到的一个脚本,基本上来说是处理ifconfig的结果,得到单位时间内的流量.也可以通过处理/proc/net/dev文件得到同样的结果. 使用方法:bash scriptfile eth1  不加参数默认为eth0 #!/bin/bash if [ -n "$1

Cacti 是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具

Cacti 是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具. mysqlreport是mysql性能监测时最常用的工具,对了解mysql运行状态和配置调整都有很大的帮助. mysqlsla是hackmysql.com推出的一款MySQL的日志分析工具,功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等. http://www.kxtry.com/archives/338

[Android Pro] 网络流量安全测试工具Nogotofail

reference to : http://www.freebuf.com/tools/50324.html 从严重的HeartBleed漏洞到苹果的gotofail 漏洞,再到最近的SSL v3 Poodle漏洞……我们已经见识到了网络流量漏洞所带来的巨大灾难.于是“谷人希”来了!谷歌公司最新开发了一款工具——Nogotofail,它可以帮助开发者检测网络流量类的安全漏洞. 让所有联网设备免受TLS和SSL加密漏洞的攻击 安卓安全工程师Chad Brubaker称,开发Nogotofail的最

网络流量工具iftop,ifstat

此文非原创,转自 http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858923.html 介绍 ifstat工具是个网络接口监测工具,比较简单看网络流量 实例 默认使用 #ifstat eth0 eth1 KB/s in KB/s out KB/s in KB/s out 0.07 0.20 0.00 0.00 0.07 0.15 0.58 0.00 默认ifstat不监控回环接口,显示的流量单位是KB. 监控所有网络接口 # ifsta

CentOS7 监控进程网络流量工具安装

服务器在做测试的时候,需要监控网络流量,用来了解在不同人数的时候服务器的网络使用量. 我们使用服务器环境是centos7,centos下通常使用iftop,或者nethogs来进行网络流量监控.这2个工具都需要先安装epel,因为这个库通常操作系统是不自带的. 那么就先安装epel,使用的命令是: rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 在epel安装成功之后,接下来我们就可以