LVS-DR简易测试实验
结构图如下:
环境:OS:CentOS 5.3
调度器LVS:lb-192.168.1.8
真实服务器1:node1-192.168.1.10
真实服务器2:node2-192.168.1.11
网关(路由器):192.168.1.1
ipvsadm安装不讲了,请参考http://www.linuxnotes.cn/?p=884
我直接贴配置,这个模式最关键的地方是realserver的arp问题。
1,调度器(lb)配置如下:
网卡信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [root@lb ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:B3:6B:9B inet addr:192.168.1.9 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:feb3:6b9b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:92264 errors:0 dropped:0 overruns:0 frame:0 TX packets:59224 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:10432857 (9.9 MiB) TX bytes:5614477 (5.3 MiB) Interrupt:10 Base address:0xd020 eth0:0 Link encap:Ethernet HWaddr 08:00:27:B3:6B:9B inet addr:192.168.1.8 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:10 Base address:0xd020 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:148 errors:0 dropped:0 overruns:0 frame:0 TX packets:148 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:19076 (18.6 KiB) TX bytes:19076 (18.6 KiB) |
启动脚本如下:
1 2 3 4 5 6 7 | #!/bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward LVSADM='/sbin/ipvsadm' $LVSADM -C $LVSADM -A -t 192.168.1.8:80 -s rr $LVSADM -a -t 192.168.1.8:80 -r 192.168.1.10:80 -g $LVSADM -a -t 192.168.1.8:80 -r 192.168.1.11:80 -g |
很简单,就是开启了转发和ipvsadm命令
2,下面贴一下realserver的配置,两台都一样
a,首先新建一个网卡配置lo:0,将lo配置文件复制一份就可以了(/etc/sysconfig/network-scripts/ifcfg-lo)
修改信息如下:
1 2 3 4 5 6 7 8 9 10 11 12 | [root@node1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-lo:0 DEVICE=lo:0 IPADDR=192.168.1.8 NETMASK=255.255.255.255 #NETWORK=192.168.1.0 # If you're having problems with gated making 127.0.0.0/8 a martian, # you can change this to something else (255.255.255.255, for example) #BROADCAST=127.255.255.255 #NAME=loopback BOOTPROTO=none TYPE=Ethernet ONPARENT=yes |
启动lo:0
1 | ifup lo:0 |
网卡信息如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [root@node1 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:C5:5B:03 inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fec5:5b03/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:39165 errors:13 dropped:0 overruns:0 frame:0 TX packets:13346 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4457299 (4.2 MiB) TX bytes:1185984 (1.1 MiB) Interrupt:10 Base address:0xd020 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:95 errors:0 dropped:0 overruns:0 frame:0 TX packets:95 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:12563 (12.2 KiB) TX bytes:12563 (12.2 KiB) lo:0 Link encap:Local Loopback inet addr:192.168.1.8 Mask:255.255.255.255 UP LOOPBACK RUNNING MTU:16436 Metric:1 |
这样便在192.168.1.10这台realserver的回环接口上配置了IP-192.168.1.8,这时在同网段的PC可以PING通192.168.1.8.下来要最的就是关闭ARP
b,关闭arp脚本如下:
1 2 3 4 5 | #!/bin/bash echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce |
现在,同网段PC应该PING不通192.168.1.8,当然这得在调度器上先关闭eth0:0接口(192.168.1.8绑定在eth0:0上,非eth0).如果还能PING通,请在该机上执行arp -d 192.168.1.8再进行测试,直到PING不通为止。
顺便贴下keepalived的配置,它我主要用了检测realserver是否可用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | [root@lb keepalived]# cat keepalived.conf ! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL } virtual_server 192.168.1.8 80 { delay_loop 6 lb_algo rr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 10 protocol TCP real_server 192.168.1.10 80 { weight 1 HTTP_GET { url { path /index.html digest 4b091b7d84daab28864e5905cd3ed821 } connect_port 80 connect_timeout 3 } } real_server 192.168.1.11 80 { weight 1 HTTP_GET { url { path /index.html digest 9e60b98421b874661bdc7260aa1d6206 } connect_port 80 connect_timeout 3 } } } |
启动keepalived
1 | /etc/init.d/keepalived start |
log如下:
Mar 4 14:45:15 lb Keepalived_vrrp: Opening file ‘/etc/keepalived/keepalived.conf’.
Mar 4 14:45:15 lb Keepalived_vrrp: Configuration is using : 32923 Bytes
Mar 4 14:45:15 lb Keepalived_vrrp: Using LinkWatch kernel netlink reflector…
Mar 4 14:45:15 lb Keepalived: Starting VRRP child process, pid=29955
Mar 4 14:45:52 lb Keepalived_healthcheckers: Error connecting server [192.168.1.11:80].
Mar 4 14:45:52 lb Keepalived_healthcheckers: Removing service [192.168.1.11:80] from VS [192.168.1.8:80]
Mar 4 14:45:52 lb Keepalived_healthcheckers: Remote SMTP server [192.168.200.1:25] connected.
Mar 4 14:46:13 lb Keepalived_healthcheckers: MD5 digest success to [192.168.1.11:80] url(1).
Mar 4 14:46:19 lb Keepalived_healthcheckers: Remote Web server [192.168.1.11:80] succeed on service.
Mar 4 14:46:19 lb Keepalived_healthcheckers: Adding service [192.168.1.11:80] to VS [192.168.1.8:80]
Mar 4 14:46:19 lb Keepalived_healthcheckers: Remote SMTP server [192.168.200.1:25] connected.
Mar 4 14:46:22 lb Keepalived_healthcheckers: Timeout reading data to remote SMTP server [192.168.200.1:25].
Related posts:
- LVS_NAT+keepalived疑难问题 这个问题很简单,但花了我两天时间,郁闷 正文: LVS_NAT配置可以参考这篇文件:http://www.linuxnotes.cn/?p=884 我LVS_NAT环境都搭建好了,测试也正常了,我就不贴具体配置了。现在主要是我想用KEEPALIVED来检测realserver是否正常。 lvs手动启动脚本: 1234567#!/bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward...
以上关联文章由 Yet Another Related Posts Plugin 提供支持。



