一、理论基础
网卡上有IP和MAC地址,网卡一加电就会将自己公布出去,别的机器只能知道IP地址逻辑的会走ARP协议请求MAC地址。
Linux系统下 /proc 是虚拟目录,开机之后才会有的目录,里面放的内核及所有启动的进程,把里面的变量及参数抽象成文件,
修改文件的值相当于改了内核变量参数的值,目录中的文件的参数值一变,内核立即发生效果。
这些文件修改的时候不能用vi 命令去打开修改。因为会产生隐藏临时文件,只能echo 重定向去覆盖。
lo 回环接口,是内核上的虚拟网卡,虚拟网络接口,并非真实存在,并不真实地从外界接收和发送数据包,而是在系统内部接收和发送数据包,因此虚拟网络接口不需要驱动程序。lo回环地址
eth0 以太网接口,以太网接口与网卡对应,每个硬件网卡(一个MAC)对应一个以太网接口,其工作完全由网卡相应的驱动程序控制。
如果物理网卡只有一个,而却有eth1,eth2等,则可能存在无线网卡或多个虚拟网卡,虚拟网卡由系统创建或通过应用层程序创建,作用与物理网卡类似。
二、关闭arp解析,隐藏VIP方法
/proc/sys/net/ipv4/conf/eth0 目录下有arp_ignore & arp_announce 两个文件,默认设置都为0
- arp_ingore: 定义接收到ARP请求时的响应级别
0: 只要本地配置的有相应地址,就给予响应;
1: 只有请求的目标(MAC)地址配置请求到达的接口上的时候,才给予响应; - arp_announce: 定义将自己地址向外通告时的通告级别
0: 将本地任何地址的任何接口向外通告;
1: 试图只向目标网络参与其网络匹配的地址;
2: 仅向与本地接口上地址匹配的网络进行通知;
1)修改内核:
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
2)设置隐藏的vip:
ifconfig lo:3 192.168.79.110 netmask 255.255.255.255
三、LVS服务配置
- 安装lvs的管理工具ipvsadm
yum install ipvsadm -y
1.添加虚拟IP
添加虚拟IP规则,管理集群服务
ipvsadm -A -t 192.168.79.110:80 -s rr
-A:添加虚拟IP规则
-A -t|u|f service-address [-s scheduler]
-t: TCP协议的集群
-u: UDP协议的集群
service-address: IP:PORT
-f: FWM: 防火墙标记
service-address: Mark Number
修改:-E
删除:-D -t|u|f service-address
scheduler 调度方法,one of rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq, the default scheduler is wlc.
2. 添加服务
在虚拟IP中添加服务规则,管理集群服务中的RS
ipvsadm -a -t 192.168.79.110:80 -r 192.168.79.102 -g -w 1
ipvsadm -a -t 192.168.79.110:80 -r 192.168.79.103 -g -w 1
-a: 添加服务规则
-t|u|f service-address -r server-address [-g|i|m] [-w weight]
-t|u|f service-address:事先定义好的某集群服务
-r server-address: 某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射;
[-g|i|m]: LVS类型
-g: DR
-i: TUN
-m: NAT
[-w weight]: 定义服务器权重
修改:-e
删除:-d -t|u|f service-address -r server-address
3. 查看
-L|l
-n: 数字格式显示主机地址和端口
–stats:统计数据
–rate: 速率
–timeout: 显示tcp、tcpfin和udp的会话超时时长
-:c 显示当前的ipvs连接状况
ipvsadm -lnc 偷窥负载记录
4. 删除所有集群服务
-C:清空ipvs规则
5. 保存规则
-S:保存规则
ipvsadm -S > /path/to/somefile
6. 载入规则
-R 载入此前的规则:
ipvsadm -R < /path/form/somefile
7. 调度方法:
rr: 轮询调度
wrr: 加权轮询调度
sh: 源地址散列调度U
lc: 最小连接调度
wlc: 加权最小连接调度 (默认)
sed: 最短期望延迟
nq: 最少队列调度
lblc: 基于本地的最少连接
dh: 目标地址散列调度
lblcr: 基于本地的带复制功能的最少连接