and*_*rew 3 tunneling failover high-availability keepalived
我正在 Linode 上运行一个应用程序。他们的网络不支持多播。许多用于故障转移的工具(keepalived、spread/wackamole、heartbeat)需要多播才能工作(据我所知)。我已经阅读了所有这些的文档,即使在“单播”模式下(如果有的话)它仍然通过多播发送。
我知道通过 GRE 隧道,我可以在路由器不知道的情况下有效地发送多播,这将使我能够使用其中一种工具(现在我想使用 keepalived)。
我在设备“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。
我有两个问题:
配置keepalived监控隧道(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
}
}
Run Code Online (Sandbox Code Playgroud)
www1 和 www2 都在同时抢共享 IP,我猜是因为他们不能互相交谈。知道为什么使用“gretun”不允许他们互相交谈吗?
第二个问题:是否可以建立一个隧道,以便我可以将 3 台以上的机器相互连接并使用多播?换句话说,与其在每个不同的节点组合之间设置不同的隧道,不如让节点“加入”一个隧道,这样他们就可以自动发现彼此?
这些问题可能很愚蠢,但我不是网络专家,这是我第一次在 ssh 之外使用隧道的经验。我也乐于接受可以解决我正在做的事情之外的问题的建议。
谢谢!
如果您有兴趣,我有一个keepalived 补丁,它允许它在本地和远程VIP 之间使用单播。我已经成功地在虚拟机之间的 vps.net 上使用它。这比尝试建立隧道要简单得多!我已经上传到那里了:
然后你只需要指定“vrrp_unicast_bind”和“vrrp_unicast_peer”。它仍将使用 VRRP 协议,但仅限于这些 IP 之间。
希望这有帮助!
归档时间: |
|
查看次数: |
3459 次 |
最近记录: |