Lvs的tun模式的配置详解

来源:互联网 发布:php框架开发视频教程 编辑:程序博客网 时间:2024/05/22 03:34

准备四台虚拟机:一台用作客户端机器,一台lvs服务器,两台台真实服务器

lvs的组件的安装详见:lvs相关yum源的配置和组件安装.doc 根据文档来在lvs服务器上安装lvs组件

一、tun ip隧道模式

1.配置网络:

  1. 四台虚拟机都设置成NAT模式或者

2.修改配置使网络通畅

  1. 每台机器配置成同一网段,本人实验都四台机器分别配置成169.254.19.4 169.254.19.5 169.254.19.6 169.254.19.7 其中169.254.19.4作为客户端机器169.254.19.5机器作为lvs服务器,169.254.19.6 169.254.19.7 分别作为真实服务器,lvs的虚拟ip规划为169.254.19.9
  2. 每台机器都能互相ping通即可,如有问题可以查资料解决NAT模式互联问题
  3. 接下来配置ip隧道:在三台机器上分别执行

在配置ip隧道之前,两台真实服务器必须要配置/etc/sysctl.conf里面的net.ipv4.conf.default.rp_filter

net.ipv4.conf.default.rp_filter = 0

这个必须配否则访问会超时,因为报文都被过滤了,然后还必须重启机器才生效

ifconfig tunl0 169.254.19.9 broadcast 169.254.19.9 netmask 255.255.255.255 up

route add -host 169.254.19.9 dev tunl0

上面两行命令的意思是将每台机器都配置一个169.254.19.9的虚拟ip的虚拟网卡,并加入到ip为169.254.19.9的路由,这样被调度器分到的真实服务器就以虚拟ip给客户端发送消息

  1. 真实服务器除了要配置ip隧道以外还要修改配置如下:

echo "1" >/proc/sys/net/ipv4/conf/tunl0/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/tunl0/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

 

3.配置lvs服务器

  1. 调度器配置集群如下:

ipvsadm -At 169.254.19.9:80 -s rr

ipvsadm -at 169.254.19.9:80 -r 169.254.19.6:80 -i -w 3

ipvsadm -at 169.254.19.9:80 -r 169.254.19.7:80 -i -w 1

配置lvs服务器service ipvsadm start 启动lvs组件vi /etc/sysctl.conf 将其中net.ipv4.ip_forward的值由1改成0

  1. 分别在两台真实服务器上加入index.html来加以区别

  2. Service httpd restart 重启apache,客户机访问http://169.254.19.9/,在客户端机器上访问lvs虚拟服务器会发现分别显示两台真实服务器的index..html页面的内容,在lvs虚拟服务器上执行ipvsadm -ln来查看连接情况

客户机上命令:ab -c 100 -n 1000 http://169.254.19.9表示并发100访问1000

  1. 错误排查

    访问一直超时,但是执行ipvsadm -ln看到访问确实被转发到了指定真实服务器

    这个是因为真实服务器发的报文被过滤了所以导致收不到,直接将真实服务器的/etc/sysctl.conf的net.ipv4.conf.default.rp_filter配置成net.ipv4.conf.default.rp_filter = 0重启机器生效

     

0 0
原创粉丝点击