生产环境之负载均衡LVS+keepalived方案(5)_关键知识点

文章详细介绍了arp_ignore和arp_announce参数的含义和作用,这两个参数用于控制ARP响应和请求的策略。同时,讨论了Keepalived的日志文件位置和如何修改日志输出。还提到了LVS负载均衡中的问题,如VIP配置、端口转发和NAT模式下的数据包处理,以及解决多网卡环境下可能导致的问题。
摘要由CSDN通过智能技术生成

补充知识点

arp_ignore & arp_announce

https://www.cnblogs.com/lipengxiang2009/p/7451050.html
这篇博文介绍得很详细,以下主要做重点摘录及自己的一些总结:
(1)arp_ignore理解
arp_ignore参数的作用是控制系统在收到外部的arp请求时,是否要返回arp响应。
arp_ignore参数常用的取值主要有0,1,2,3~8较少用到:
0:响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。
1:只响应目的IP地址为接收网卡上的本地地址的arp请求。
2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。
3:如果ARP请求数据包所请求的IP地址对应的本地地址其作用域(scope)为主机(host),则不回应ARP响应数据包,如果作用域为全局(global)或链路(link),则回应ARP响应数据包。
4~7:保留未使用
8:不回应所有的arp请求
sysctl.conf中包含all和eth/lo(具体网卡)的arp_ignore参数,取其中较大的值生效。

(2)arp_announce理解
arp_announce的作用是控制系统在对外发送arp请求时,如何选择arp请求数据包的源IP地址。(比如系统准备通过网卡发送一个数据包a,这时数据包a的源IP和目的IP一般都是知道的,而根据目的IP查询路由表,发送网卡也是确定的,故源MAC地址也是知道的,这时就差确定目的MAC地址了。而想要获取目的IP对应的目的MAC地址,就需要发送arp请求。arp请求的目的IP自然就是想要获取其MAC地址的IP,而arp请求的源IP是什么呢? 可能第一反应会以为肯定是数据包a的源IP地址,但是这个也不是一定的,arp请求的源IP是可以选择的,控制这个地址如何选择就是arp_announce的作用)
arp_announce参数常用的取值有0,1,2。
0:允许使用任意网卡上的IP地址作为arp请求的源IP,通常就是使用数据包a的源IP。
1:尽量避免使用不属于该发送网卡子网的本地地址作为发送arp请求的源IP地址。
2:忽略IP数据包的源IP地址,选择该发送网卡上最合适的本地地址作为arp请求的源IP地址。
sysctl.conf中包含all和eth/lo(具体网卡)的arp_ignore参数,取其中较大的值生效。

keepalived日志文件

keepalived默认的日志文件位置: /var/log/message
可修改日志的输出位置:

1:vi /etc/sysconfig/keepalived
把KEEPALIVED_OPTIONS=“-D” 修改为 KEEPALIVED_OPTIONS=“-D -d -S 0”
其中 -S 指定 syslog 的 facility
2:vi /etc/rsyslog.conf
添加:

# save keepalive message also to keepalived.log
local0.*             /var/log/keepalived.log     // local0 ~ local7 用户自定义

3:运行如下命令重启服务

systemctl restart rsyslog
systemctl restart keepalived

日志级别:

debug 0 # 表示程序和系统的调试信息
info 1 # 表示一般信息
notice 2 # 表示不影响正常功能,但是需要注意的信息
warning/warn 3 # 表示可能影响正常功能,需要提醒用户注意的事件;
err/error 4 # 表示错误信息
crit 5 # 表示比较严重的信息
alert 6 # 表示必须马上处理的
emerg/panic 7 # 会导致系统不可用的

遇见的问题及处理

RS服务器在对client做响应时的数据包,会刷新交换机的mac地址表,能造成mac地址冲突吗?

不会,虽然真实服务器回复的数据包的源IP地址是VIP,但是业务数据包不会去刷新arp表,arp表刷新只根据arp协议数据包做刷新。

双主机方式会有2个VIP,也就是对外服务地址,两台同时工作的情况下,怎么实现负债均衡咧?

如果只是对外提供VIP地址,那就只能人为分别给到client。
如果有统一的域名,那就将域名绑定到2个VIP地址,让dns解析来负责负载均衡。

VIP不通,主备切换正常

virtual_ipaddress {  
    192.168.200.2     
}  
变更为:
virtual_ipaddress {
    192.168.200.2/24  
}

怎么让LVS接收所有端口流量

0 表示所有端口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XIjfGDLg-1685416068051)(image/2023-05-15-10-22-47.png)]
端口配置为0后,实验的结果是接收到1端口的连接后,其他端口的连接就不再转发了, 还有断开连接的bug,原因不知。

NAT模式一切正常,业务流量就是不通

原因:
LVS在将数据包(NAT到)转发到Real Server(RS服务器)服务器, 跟我们熟知的网络NAT模式不一样:NAT模式转发时源IP地址不变,即源ip地址仍然是客户端的ip地址。
这样真实服务器在恢复包时,如果有其他的网卡,特别是网卡的网络地址跟VIP一致时,网卡将从该网卡发出。

解决方案:
只保留一工作网卡,多网卡是也至少要保证按上发出的数据包也能到LVS服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhjuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值