191145686 发表于 2015-11-21 01:45:45

Lvs的tun模式的配置详解

  准备四台虚拟机:一台用作客户端机器,一台lvs服务器,两台台真实服务器
  lvs的组件的安装详见:lvs相关yum源的配置和组件安装.doc 根据文档来在lvs服务器上安装lvs组件
一、tun ip隧道模式
1.配置网络:

[*]四台虚拟机都设置成NAT模式或者

2.修改配置使网络通畅

[*]每台机器配置成同一网段,本人实验都四台机器分别配置成169.254.19.4169.254.19.5   169.254.19.6169.254.19.7 其中169.254.19.4作为客户端机器169.254.19.5机器作为lvs服务器,169.254.19.6169.254.19.7 分别作为真实服务器,lvs的虚拟ip规划为169.254.19.9
[*] 每台机器都能互相ping通即可,如有问题可以查资料解决NAT模式互联问题
[*]接下来配置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给客户端发送消息

[*]真实服务器除了要配置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服务器

[*]调度器配置集群如下:
  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

[*]分别在两台真实服务器上加入index.html来加以区别
[*]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


[*]错误排查
访问一直超时,但是执行ipvsadm -ln看到访问确实被转发到了指定真实服务器
这个是因为真实服务器发的报文被过滤了所以导致收不到,直接将真实服务器的/etc/sysctl.conf的net.ipv4.conf.default.rp_filter配置成net.ipv4.conf.default.rp_filter = 0重启机器生效

页: [1]
查看完整版本: Lvs的tun模式的配置详解