前期准备:
两台服务器 note01(lvs 服务器) note02(real sever)
1 首先在 note01 配置子网卡:
ifconfig eth0:2 192.168.64.100/24
:2 意思是 eth0 的子接口, 随便一个数字就可以,/24 意为 255.255.255.0 的另一种写法 也可以写成 netmask 255.255.255.0
2 配置 note01 转发方式:
echo 1> /proc/sys.NET/ipv4/ip_forward
默认为 0 意思为如果没有对应请求的 IP, 会将数据包丢弃, 1 为不会丢弃, 而是通过路由来去转发请求.
3 配置 note02(real sever) 的响应, 通告级别, 禁止响应对 VIP 的 ARP 广播请求
- echo 1> /proc/sys.NET/ipv4/conf/eth0/arp_ignore
- echo 2> /proc/sys.NET/ipv4/conf/eth0/arp_announce
4 配置 note02 的环回 IP:
ifconfig lo:5 192.168.64.100 netmask 255.255.255.255
注意, 这里: 5 与上边一样, 可以随便写, 但是后边必须写成 netmask 255.255.255.255
这里为什么是 4 个 255? 因为网关 192.168.64.0 是通过 IP 和 这个掩码进行云算计算出来的, 如果这里也写成 3 个 255, 就会出现两个 192.168.64.0, 而 lo 环回接口要比 eth0 接口更为接近 os 内核, 所以请求不会返回, 而是直接进入环回接口, 所以客户端可以发送请求, 但是不会收到响应.
第 3 4 步顺序一定一定一定不能颠倒, 否则还没有配置好接口就已经通告出去了, 就不会起作用.
5 为了检验 lvs, 我使用 httpd 服务进行一个简单验证, 真实情况肯定就是在 realsever 上开启项目啦!
在 note02 上执行
yum install httpd -y
安装 httpd 服务
进入目录 / var/www/html
cd /var/www/HTML
vi index.HTML
在 index.HTML 中写入 from 192.168.64.134(note02 的真实 IP) 进行验证
执行命令
service httpd start
客户端验证: rip:80 可以正常显示
vip:80 不能正常显示
6
配置 lvs vip note01
- yum install ipvsadm -y
- ipvsadm -A -t 192.168.64.100:80 -s rr
- // rr 为轮询机制 如果配置多台 realsever 则请求平均分配 -t 基于 tcp 协议
- ipvsadm -a -t 192.168.64.100:80 -r 192.168.64.134 -g
- //-g :dr 模型 -t 基于 tcp 协议
- ipvsadm -ln
7
浏览器刷新, 访问 vip:
- ipvsadm -lnc
- // 查看 note01 会有很多记录 (偷窥)
- netstat -natp
- // 查看 note01 没有记录 (说明请求直接跳过 lvs 之后客户端会直接与 realserver 建立连接)
如果能正常访问 则说明配置 lvs 成功, 其实 lvs 就相当于一个路由的功能
来源: https://www.cnblogs.com/fengwenzhee/p/10520517.html