LVS模式配置
DR模式
流程
client->DS->prerouting(源IP->CIP//目标IP->VIP)->INPUT->IP不变(源MAC->DSMAC//MAC->目标RS MAC)->postrouting->RS->lo->eth0->client
LVS调度器
安装ipvsadm
yum install ipvsadm -y
添加VIP 172.25.41.100/24
ip addr add 172.25.41.100/24 dev eth0
编辑文件/etc/sysconfig/ipvsadm-config
#设置重启自动保存现有设置
IPVS_SAVE_ON_RESTART="yes"
创建文件
touch /etc/sysconfig/ipvsadm
配置策略,指定算法为轮询算法
ipvsadm -A -t 172.25.41.100:80 -s rr
ipvsadm -a -t 172.25.41.100:80 -r 172.25.41.3:80 -g
ipvsadm -a -t 172.25.41.100:80 -r 172.25.41.2:80 -g
重启服务,查看结果
systemctl restart ipvsadm.service
cat /etc/sysconfig/ipvsadm
Real Server
客户机加上同样的VIP 172.25.41.100
不轮询的解决办法 (DDos攻击)
查看arp协议,查看MAC地址映射
arp -a|grep 172.25.41.100
安装arptables
yum isntall arptables -y
添加策略并保存
# 添加策略
arptables -A INPUT -d 172.25.41.100 -j DROP
arptables -A OUTPUT -s 172.25.41.100 -j mangle --mangle-ip-s 172.25.41.2
# 保存策略
arptables-save > /etc/sysconfig/arptables
重启arptables服务
systemctl restart arptables
TUN模式
LVS调度器
安装模块
modprobe ipip
清除配置
ipvsadm -C
添加IP地址至tunl0网卡
ip addr del 172.25.41.100/24 dev eth0
ip addr add 172.25.41.100/24 dev tunl0
ip link set up tunl0
设置调度策略
ipvsadm -A -t 172.25.41.100:80 -s rr
ipvsadm -a -t 172.25.41.100:80 -r 172.25.41.2:80 -i
ipvsadm -a -t 172.25.41.100:80 -r 172.25.41.3:80 -i
调度策略生效
systemctl restart ipvsadm.service
cat /etc/sysconfig/ipvsadm
ipvsadm -ln
Real Server
添加模块
modprobe ipip
添加VIP至tunl0
ip addr del 172.25.41.100/24 dev eth0
ip addr add 172.25.41.100/24 dev tunl0
ip link set up tunl0
消除反向过滤的影响
sysctl -a|grep rp_filter
sysctl -w net.ipv4.conf.all.rp_filter=0
sysctl -w net.ipv4.conf.default.rp_filter=0
sysctl -w net.ipv4.conf.eth0.rp_filter=0
sysctl -w net.ipv4.conf.tunl0.rp_filter=0
配置生效
sysctl -p
NAT模式
主机添加外部IP–172.25.41.1(两块网卡需要设置内核转发net_ipv4_forward=1)
ip addr add 172.25.254.141/24 dev eth0
设置策略
ip -A -t 172.25.254.141:80 -s rr
ip -a -t 172.25.41.2:80 -r 172.25.41.2:80 -m
ip -a -t 172.25.41.2:80 -r 172.25.41.3:80 -m
为真实服务器添加网关172.25.41.1
HA配置
先依照以上内容配置为LVS的模式DR
ldirectord
编辑/etc/yum.repo.d,配置高可用的yum源
[HA]
name=HA
baseurl=http://172.25.41.254/octopus/addons/HighAvailability/
gpgcheck=0
下载安装 ldirectord-3.9.5-3.1.x86_64.rpm
拷贝配置文件示例
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
修改内容 /etc/ha.d/ldirectord.cf
virtual=172.25.41.100:80
real=172.25.41.2:80 gate
real=172.25.41.3:80 gate
fallback=127.0.0.1:80 gate
service=http
scheduler=rr
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
request="index.html"
# receive="Test Page"
# virtualhost=www.x.y.z
启动服务并查看服务状态
/etc/init.d/ldirectord start
chkconfig
本机安装apapche配置文件
添加无内容提示
启动本机apache,关闭后端一台RS测试结果
关闭所有RS,测试
keepalived
配置第一台主机
安装gcc以及openssl-devel
yum install -y openssl-devel gcc
编译安装keepalived
./configure --prefix=/usr/local/keepalived --with-init=systemd
make && make insatll
建立软链接
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
关闭ldirectord服务
/etc/init.d/ldirectord stop
chkconfig ldirectord off
删除LVS网络地址
ip addr del 172.25.41.100/24 dev eth0
修改配置文件/etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 41
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.41.100
}
}
virtual_server 172.25.41.100 80 {
delay_loop 3
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 172.25.41.2 80 {
TCP_CHECK{
weight 1
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 172.25.41.3 80 {
TCP_CHECK{
weight 1
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
启动服务
配置第二台主机时,仅需修改配置文件内容中的优先级以及BACKUP状态
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 41
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.41.100
}
}