https://www.linuxidc.com/Linux/2016-03/129232.htm
https://www.linuxidc.com/Linux/2016-03/129233.htm
- LVS+keepalived 的DR模式的两种做法
- Keepalived LVS+DR合设配置方法以及存在的问题
- Linux内核参数之arp_ignore和arp_announce
- iptables详解(1):iptables概念
- 小兵以太网测试仪 V3.2.8
sudo iptables -L -t nat
sudo iptables -nL -t nat --line-number
sudo iptables -t nat -D PREROUTING -p tcp -d 192.168.1.199 --dport 80 -j REDIRECT
sudo iptables -t nat -A PREROUTING -p all -d 192.168.1.199 -j REDIRECT
LVS+Keepalived
3台LVS+Keepalived
- https://www.cnblogs.com/dswy/p/8418515.html
- IPVS工作在iptables的INPUT链上
3台服务器LVS配置一致
ipvsadm -A -t 192.168.1.100:80 -s rr
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.10:80 -m
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.11:80 -m
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.12:80 -m
解释:
-A, --add-service: 为ipvs虚拟服务器添加一个虚拟服务,即添加一个需要被负载均衡的虚拟地址。虚拟地址需要是ip地址,端口号,协议的形式。
-D, --delete-service: 删除一个虚拟服务。
-C, --clear: 清除所有虚拟服务。
-a, --add-server: 为虚拟服务添加一个real server(RS)
-d, --delete-server: 删除
-s, --scheduler scheduling-method:指定调度算法。调度算法可以指定以下8种:
rr(轮询),
wrr(权重),
lc(最后连接),
wlc(权重),
lblc(本地最后连接),
lblcr(带复制的本地最后连接),
dh(目的地址哈希),
sh(源地址哈希),
sed(最小期望延迟),
nq(永不排队)
-r, --real-server server-address:
为虚拟服务指定数据可以转发到的真实服务器的地址。可以添加端口号。如果没有指定端口号,则等效于使用虚拟地址的端口号。
[packet-forwarding-method]:
此选项指定某个真实服务器所使用的数据转发模式。需要对每个真实服务器分别指定模式。
-g, --gatewaying: 使用网关(即直接路由),此模式是默认模式。
-i, --ipip: 使用ipip隧道模式。
-m, --masquerading: 使用NAT模式。
3台Keepalived配置
global_defs {
router_id LVS_Server
}
vrrp_instance VI_1 {
state BACKUP #主节点: MASTER
interface ens8
virtual_router_id 51 #保持一致
priority 120 #保持一致
nopreempt
advert_int 1 #检测间隔
authentication {
auth_type PASS #保持一致
auth_pass password #保持一致
}
virtual_ipaddress {
192.168.1.100 dev ens8
}
}
virtual_server 192.168.1.100 80 {
delay_loop 3
lvs_sched rr
lvs_method DR
protocol TCP
real_server 192.168.1.10 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 10
}
}
real_server 192.168.1.10 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 10
}
}
real_server 192.168.1.10 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 10
}
}
}
RealServer配置
- 使用lo接口配置VIP
EXPORT vip=192.168.1.100
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
/sbin/route add -host $vip lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
- 使用iptables进行REDIRECT
sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.1.199 --dport 80 -j REDIRECT
#删除
#sudo iptables -t nat -D PREROUTING -p tcp -d 192.168.1.199 --dport 80 -j REDIRECT
#本地也可以访问
sudo iptables -t nat -A OUTPUT -p tcp -d 192.168.1.199 -j REDIRECT
网友评论