服务器 频道

负载均衡实战之一:lvs 核心ipvs

  (三)lvs客户端验证

  lvs客户端不必依赖负载均衡器就可以独立运行,只不过这种运行对负载均衡没有任何作用,当然也没有任何副作用,所以我们把lvs客户端配置完成后(配置文件就是一个shell脚本),可以单独运行它,来检验配置是否正确。

  ● centos 脚本

  配置脚本写好保存,给予脚本执行权限。脚本启停以start和stop这两个参数来控制。首先,我们来启动配置脚本,执行命令 /usr/local/bin/lvs_real start ,接着我们来检查网络的状态:

  [root@huludao-2 ~]# ip add

  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue

  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

  inet 127.0.0.1/8 scope host lo

  inet  61.135.20.16/32 brd 61.135.20.16 scope global lo:0

  inet6 ::1/128 scope host

  valid_lft forever preferred_lft forever

  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 100

  link/ether 00:15:17:60:21:a0 brd ff:ff:ff:ff:ff:ff

  inet  61.135.20.101/24 brd 125.38.38.255 scope global eth0

  inet6 fe80::215:17ff:fe60:21a0/64 scope link

  valid_lft forever preferred_lft forever

  3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000

  link/ether 00:15:17:60:21:a1 brd ff:ff:ff:ff:ff:ff

  4: sit0: <NOARP> mtu 1480 qdisc noop

  link/sit 0.0.0.0 brd 0.0.0.0

  从输出可以看出,lo0:0确实绑定了我们指定的vip地址。那么当我们执行 /usr/local/bin/lvs_real时,vip应当从lo0:0接口卸载。我们来看看输出是什么:

  [root@huludao-2 ~]# lvs_real stop

  close LVS Directorserver

  [root@huludao-2 ~]# ip add

  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue

  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

  inet 127.0.0.1/8 scope host lo

  inet6 ::1/128 scope host

  valid_lft forever preferred_lft forever

  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 100

  link/ether 00:15:17:60:21:a0 brd ff:ff:ff:ff:ff:ff

  inet 125.38.38.101/28 brd 125.38.38.111 scope global eth0

  inet6 fe80::215:17ff:fe60:21a0/64 scope link

  valid_lft forever preferred_lft forever

  3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000

  link/ether 00:15:17:60:21:a1 brd ff:ff:ff:ff:ff:ff

  4: sit0: <NOARP> mtu 1480 qdisc noop

  link/sit 0.0.0.0 brd 0.0.0.0

  噢,上帝!正是我们所期待的结果:vip从lo上消失了。

  ●freebsd脚本/usr/local/bin/lvs_real_bsd

  启停所使用的方法和参数与centos那个配置脚本是一样的,但察看方法有所不同(freebsd无ip add工具)。这里使用的方法是ifconfig,启动时输出如下:

  fav1# ifconfig

  em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

  options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>

  ether 00:15:17:6e:c8:46

  inet 61.135.20.69 netmask 0xffffffc0 broadcast 61.128.20.127

  media: Ethernet autoselect (100baseTX <full-duplex>)

  status: active

  lo0: flags=80c9<UP,LOOPBACK,RUNNING,NOARP,MULTICAST> metric 0 mtu 16384

  inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3

  inet6 ::1 prefixlen 128

  inet 127.0.0.1 netmask 0xff000000

  inet 61.135.20.16 netmask 0xffffffff

  当执行/usr/local/bin/lvs_real_bsd stop 时,vip被卸载。有时可能卸载不成功,可能需要多执行几次停止命令。

  ●arp抑制验证

  如果不配置负载均衡器的转发功能,那么在这个步骤所设置的vip将不会提供任何ip功能,除了能用ifconfig输出显示而外。

  在没有配置或开启lvs负载均衡器的情况下,我们用其他机器ping vip,应该是不通的。当然在网络前面启用了防火墙阻止ping 不算。为了不影响测试,最好把你的防火墙打开。

  Arp抑制生效后,再也没有机器知道vip的存在,这是一个问题,谁来响应vip请求?这个问题交给负载均衡器吧,它知道这背后的一切。

 

3
相关文章