LVS-DR简易测试实验

2010年3月4日 | 标签: , ,

结构图如下:

linuxnotes-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不通为止。

配置基本上就这样,很简单,附图如下:
lvs_dr1

lvs_dr2

顺便贴下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:

  1. 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 提供支持。

目前还没有任何评论.
注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。
关闭
Powered by ShareThis