我在Linode上运行一个应用程序。他们的网络不支持多播。许多用于故障转移的工具(保持、传播/古怪、心跳)需要多播才能工作(据我所知)。我已经阅读了所有这些文档,即使在“单播”模式下(如果有),它仍然发送多播。
我知道,通过GRE隧道,我可以有效地发送多播而无需路由器知道,这将使我能够使用这些工具之一(目前,我想使用保持)。
我在"gretun“装置上设置了隧道,如下所示:
10.0.0.1是www1的隧道接口点
10.0.0.2是www2的隧道接口点
我可以从nc 10.0.0.2 80的www1和nc 10.0.0.1 80的www2,所以它似乎是有效的。假装我要分享的公共IP是69.164.69.69。
我有两个问题:
在配置保持监视隧道(gretun)之后,这两台机器仍然不能同时看到。这是我的配置:
global_defs {
notification_email {
info@app.com
}
notification_email_from alerts@app.com
smtp_server localhost
smtp_connect_timeout 30
router_id www1.app.com
}
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface gretun
virtual_router_id 51
priority 100
advert_int 1
garp_master_delay 2
smtp_alert
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
69.164.69.69/24 dev eth0
}
track_script {
chk_haproxy
}
}www1和www2都在同时获取共享IP,我猜是因为他们不能相互交谈。你知道为什么用"gretun“就不能让他们彼此交谈吗?
第二个问题:是否有可能建立一个隧道,使我可以让3+机器连接到一起,并使用多播?换句话说,与其在每个不同的节点组合之间设置不同的隧道,不如让节点“加入”一个隧道,这样它们就可以自动发现彼此了?
这些问题可能很愚蠢,但我不是网络专家,这是我第一次在ssh之外使用隧道。我也愿意接受一些能解决我正在做的事情之外的问题的建议。
谢谢!
发布于 2010-10-03 06:28:25
如果您感兴趣,我有一个维护补丁,允许它使用本地和远程VIP之间的单播。我已经在vps.net虚拟机之间成功地使用了它。这比建立隧道要简单得多!我把它上传到那里:
然后,只需指定"vrrp_unicast_bind“和"vrrp_unicast_peer”即可。它仍将使用VRRP协议,但只在这些It之间使用。
希望这有帮助!
发布于 2013-01-21 03:52:27
在AWS中,它可能在VPS环境中工作,但在正常的EC2环境中会失败,因为您不能在安全组中打开原始协议规则(112vrrp)。
https://serverfault.com/questions/186987
复制相似问题