首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vrrp路由平,但不包括其他流量

vrrp路由平,但不包括其他流量
EN

Server Fault用户
提问于 2009-09-15 21:55:47
回答 3查看 1.5K关注 0票数 1

我有两个VM运行BusyBox (在ESX下)。这些机器只起负载平衡器的作用。

我用笔在每台工作正常的机器上进行负载平衡。但是,当我启动vrrpd ping时,其他功能都不起作用。

每个负载均衡器有3个接口。Management在eth0上,eth1用于第二个负载均衡器设置。

代码语言:javascript
复制
LBCO102A
10.3.16.96 - (eth0) Management IP
10.3.16.84 - (eth2) IP that pen uses

LBCO102B
10.3.16.94 - (eth0) Management IP
10.3.16.85 - (eth2) IP that pen uses

vrrpd使用10.3.16.58

在LBCO102A上,我使用以下方法启动vrrpd:

代码语言:javascript
复制
vrrpd -i eth2 -v 58 -p 100 10.3.16.58

在LBCO102B上,我使用以下方法启动vrrpd:

代码语言:javascript
复制
vrrpd -i eth2 -v 58 -p 50 10.3.16.58

我可以连接到I 10.3.16.84和10.3.16.85,而在端口80上没有问题。我可以连接到管理I 10.3.16.94和10.3.16.96没有问题。当我连接到10.3.16.58时,就会超时。除了一个是主文件而另一个不是主文件之外,/var/run/messages文件中没有显示任何内容。

有谁知道为什么vrrpd除了ping之外不推动交通吗?我有三个这样的装置。一个在pop3上,一个在smtp上,一个在http上。除了平,他们什么都不干。

这里是来自LBCO102A的netstat -an

代码语言:javascript
复制
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 10.3.16.107:110         0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN
tcp        0      0 10.3.16.84:80           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8889            0.0.0.0:*               LISTEN
tcp        0      0 10.3.16.107:110         10.3.17.30:53960        TIME_WAIT
tcp        0      0 10.3.16.96:22           10.3.30.154:1224        ESTABLISHED
tcp        0      0 10.3.16.107:110         10.3.17.30:54000        TIME_WAIT
tcp        0      0 10.3.16.107:110         10.3.17.30:54102        TIME_WAIT
tcp        0      0 10.3.16.107:110         10.3.17.30:54038        TIME_WAIT
tcp        0      0 10.3.16.107:110         10.3.17.30:53959        TIME_WAIT
tcp        0      0 10.3.16.107:110         10.3.17.30:54001        TIME_WAIT
tcp        0      0 10.3.16.107:110         10.3.17.30:54101        TIME_WAIT
tcp        0      0 10.3.16.96:22           10.3.30.154:1097        ESTABLISHED
tcp        0      0 10.3.16.107:110         10.3.17.30:54037        TIME_WAIT
raw        0      0 0.0.0.0:112             0.0.0.0:*               0
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  7      [ ]         DGRAM                    983    /tmp/log
unix  2      [ ]         DGRAM                    1156708
unix  2      [ ]         DGRAM                    1156657
unix  2      [ ]         DGRAM                    1156524
unix  2      [ ]         DGRAM                    192729
unix  2      [ ]         DGRAM                    994

这里是来自LBCO102B的netstat -an

代码语言:javascript
复制
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN
tcp        0      0 10.3.16.85:80           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN
tcp        0      0 10.3.16.94:22           10.3.30.154:1118        ESTABLISHED
raw        0      0 0.0.0.0:112             0.0.0.0:*               0
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  6      [ ]         DGRAM                    981    /tmp/log
unix  2      [ ]         DGRAM                    188253
unix  2      [ ]         DGRAM                    179316
unix  2      [ ]         DGRAM                    179306
unix  2      [ ]         DGRAM                    988

下面是我的启动脚本中的内容。(脚本中有更多用于检查开始/停止/重新启动的内容) LBCO103A

代码语言:javascript
复制
echo -n "Starting eth2: "
ifconfig eth2 10.3.16.84 netmask 255.255.255.0 up
echo "OK"

echo -n "Starting vrrp-ascossrs101: "
vrrpd -i eth2 -v 58 -p 100 10.3.16.58
echo "OK"

echo -n "Starting pen-ascossrs101: "
/bin/pen -C 8888 -X -l /var/log/ascossrs101.log -p /var/log/ascossrs101.pid 10.3.16.84:80 10.3.16.56:80 10.3.16.57:80
echo "OK"

LBCO102B

代码语言:javascript
复制
echo -n "Starting eth2: "
ifconfig eth2 10.3.16.85 netmask 255.255.255.0 up
echo "OK"

echo -n "Starting vrrp-ascossrs101: "
vrrpd -i eth2 -v 58 -p 100 10.3.16.58
echo "OK"

echo -n "Starting pen-ascossrs101: "
/bin/pen -C 8888 -X -l /var/log/ascossrs101.log -p /var/log/ascossrs101.pid 10.3.16.85:80 10.3.16.56:80 10.3.16.57:80
echo "OK"
EN

回答 3

Server Fault用户

回答已采纳

发布于 2009-10-20 08:09:55

我没有用过钢笔,所以我不太清楚它是怎么用的,但也许能帮上忙。

您能运行netstat -an并提供输出吗?我猜是笔是绑定到eth2 IP上的,不是所有的地址都在盒子上。它应该被配置为0.0.0.0,这样它就可以获取该框拥有的任何地址,或者您的vrrpd主脚本应该运行以使pen绑定到您是VIP。可能会发生的情况是,母脚本必须启动已经配置好的pen,以期望vip绑定到您的eth2界面。

现在用netstat输出编辑:好,下面是问题: LBCO102A tcp 0 10.3.16.84:80 0.0.0.0:*听

10.3.16.84:80意味着您只能绑定到端口80上的10.3.16.84,因此即使服务器有VIP,它也不会监听10.3.16.58端口80。

再说一次,我对钢笔不太熟悉,但假设传递的第一个IP地址是bind: /bin/pen -C 8888 -X -l /var/log/ascossrs101.log -p /var/log/ascossrs101.pid 10.3.16.84:80 10.3.16.56:80 10.3.16.56:80 10.3.16.56:80 10.3.16.57:80可以是/bin/pen -C 8888 -X -l //log/-C/ascossrs101.log -p /var/log/ascossrs101.pid 0.0.0:80 10.3.16.56:80 10.3.16.57:80

0.0.0.0:80意味着绑定到框上的所有地址和所有接口。

另一种选择可能是使用:/bin/ -C 8888 -X -l /var/log/ascossrs101.log -p /var/log/ascossrs101.pid 10.3.16.58:80 10.3.16.56:80 10.3.16.57:80

但是,我怀疑这是否能够正常工作,因为当程序启动时,VM将没有那个IP地址,因此pen将无法显式地绑定到它。我试着查看vrrpd的文档,我不确定它是否能做到这一点,但是freevrrp有一个主脚本选项,它在接管VIP时基本上会运行一个脚本。因此,您只需添加命令启动pen作为主脚本的一部分,因此当盒子拥有VIP的所有权时,它将启动pen并将其绑定到VIP IP地址。

票数 2
EN

Server Fault用户

发布于 2009-10-23 02:41:50

好吧,我想我已经把一切都做好了。这是我从@Kevin那里得到的一些东西的组合,再加上我在网上找到的一些东西(关于vrrpd的东西很少)。

vrrpd触发器似乎告诉服务器侦听IP,因此您不希望启动与IP的接口。接口确实需要一个IP,而不是vrrp将要使用的IP。

我的下一个问题是,我的笔在一个不同于vrrpd的IP上工作。最后,我在所有IP上为端口80上的所有连接列出了pen。如果你不这样做,那么如果钢笔启动,而机器不是主负载平衡器,那么pen就会死掉,因为它正在寻找的IP并不在那里。

我在另一个IP地址上安装了笔,并假设vrrpd是另一个负载均衡器。原来vrrpd只是启动IP并关闭它。

所以,让我们来回顾一下我最后得到的结果。

代码语言:javascript
复制
LBCO102A
10.3.16.96 - eth0 (Management IP)
10.3.16.148 - eth1

LBCO102B
10.3.16.94 - eth0 (Management IP)
10.3.16.149 - eth1

然后,这两台机器上的vrrpd配置为10.3.16.58地址,而这两台机器上的笔配置为0.0.0.0。

还有更多的测试要做,但我一直在调试模式下运行pen,并且监视/var/run/messages文件,如果我在主动节点上重新启动vrrpd,它就变成被动的,新的主动节点开始显示通信量。时间会告诉你,但看起来很有希望。

票数 1
EN

Server Fault用户

发布于 2009-10-20 08:05:36

只是猜猜看。您可能会将它与在同一子网上有两个接口混淆。您可以尝试为管理网络创建一个独立的子网。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/65702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档