lvs-dr中的arp内核参数

本文详细解析了ARP Ignore和ARP Announce两个重要的网络配置参数。通过调整这些参数,可以有效避免因虚拟IP地址(VIP)导致的不必要的ARP响应,确保网络流量正确地路由到负载均衡器而非后端服务器。

arp_ignore

通常client和我们的主机不在同一网段中,那么当request到达路由器后,路由器就会发送arp广播寻找vip对应的mac地址,由于rs的lo:vip也绑定了vip,那么所有的rs都会受到arp广播,这是不应该的,因为我们的目的是只让vip收到.....

0--表示对于arp请求,任何配置在本地的目的IP地址都会回应,甭管你有多少网卡,虚拟接口等等,只要在同一网段通通回应。这也是linux中默认的

1--表示如果arp请求的目的地址ip,不是该arp请求包进入的接口的ip地址,那么就不回应,显然arp包是从eth0口进来的,所以lo:vip就不回回应了

所以为了不影响针对vip的arp请求,我们设置

net.ipv4.conf.lo.arp_jgnore = 1

net.ipv4.conf.all.arp_ignore = 1

arp_announce

当rs向client发送reply包时,肯定要经过内网的路由器,那么它就会发送一个arp请求包给路由器来获取路由器的mac地址。关键就在这个arp请求包里,这个arp请求包里会包含rs自己的ip和mac,注意这个ip是之前client的request包的目的ip(因为rs在处理完请求后将source和destination对调返回给client),也就是vip。路由器在收到这arp请求后就会更新自己的缓存,此时arp缓存vip对应的就是rs的mac,在有client进来的request就找不到调度器了。而正确的应该vip对应调度器的mac

0--表示用ip包的source地址来设置arp请求的source地址

1--表示不适用ip包的source地址来设置arp请求的source地址,如果ip包source地址和端口的ip在同一网段,仍然使用ip包的source地址

2--不使用ip包的source地址来设置arp请求的source地址,而是由系统选择最好的接口来发送

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_announce = 2


在阿里云ECS上实现LVS - DR模式,以下是详细步骤: ### 环境准备 准备至少三台ECS实例,分别作为负载均衡器(Director)和两台后端服务器(Real Server)。确保所有实例在同一地域和可用区,且网络连通。这些实例需要安装合适的操作系统,如CentOS。按照如下配置IP地址: - 负载均衡器(Director):有外网IP和内网IP,假设内网IP为192.168.1.100,VIP(虚拟IP)为192.168.1.200。 - 后端服务器(Real Server1):内网IP为192.168.1.101。 - 后端服务器(Real Server2):内网IP为192.168.1.102。 ### 配置负载均衡器(Director) 1. **安装LVS和Keepalived(可选)**: ```bash yum install ipvsadm keepalived -y ``` 2. **配置内核参数**: 编辑`/etc/sysctl.conf`,添加或修改以下内容: ```plaintext net.ipv4.ip_forward = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens33.send_redirects = 0 # ens33根据实际网卡名修改 ``` 执行以下命令使配置生效: ```bash sysctl -p ``` 3. **添加VIP到网卡**: ```bash ip addr add 192.168.1.200/32 dev ens33 ``` 可将此命令添加到`/etc/rc.local`使其开机自启。 4. **配置LVS规则**: ```bash ipvsadm -A -t 192.168.1.200:80 -s rr ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.101:80 -g ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.102:80 -g ``` `-s rr`表示使用轮询调度算法,`-g`表示DR模式。 可将上述规则添加到`/etc/sysconfig/ipvsadm`使其开机自启。 ### 配置后端服务器(Real Server) 1. **配置内核参数**: 编辑`/etc/sysctl.conf`,添加或修改以下内容: ```plaintext net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens33.send_redirects = 0 # ens33根据实际网卡名修改 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.ens33.arp_ignore = 1 net.ipv4.conf.ens33.arp_announce = 2 ``` 执行以下命令使配置生效: ```bash sysctl -p ``` 2. **添加VIP到回环接口**: ```bash ip addr add 192.168.1.200/32 dev lo ``` 可将此命令添加到`/etc/rc.local`使其开机自启。 3. **启动服务**: 以Nginx为例,安装并启动Nginx服务: ```bash yum install nginx -y systemctl start nginx systemctl enable nginx ``` ### 测试LVS - DR模式 在客户端浏览器中输入VIP(192.168.1.200),若能正常访问且多次刷新页面能看到不同后端服务器的响应内容,则表示LVS - DR模式配置成功。 ### 注意事项 - 确保所有ECS实例的防火墙规则允许相关端口(如80)的流量通过,可使用`firewall-cmd`或`iptables`进行配置。 - Keepalived可用于实现负载均衡器的高可用,可根据实际需求进行配置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值