web-dev-qa-db-ja.com

vrrpルーティングpingですが、他のトラフィックはありません

BusyBox(ESXの下)を実行している2つのVMがあります。これらのマシンは、ロードバランサーとしてのみ機能します。

ペンを使用して、正常に動作している各マシンで負荷分散を行っています。しかし、vrrpdを起動すると、pingは機能しますが、他には何も機能しません。

各ロードバランサーには3つのインターフェイスがあります。管理IPはeth0にあり、eth1は2番目のロードバランサーセットアップ用です。

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を起動するために以下を使用しています。

vrrpd -i eth2 -v 58 -p 100 10.3.16.58

LBCO102Bでは、vrrpdを起動するために以下を使用しています。

vrrpd -i eth2 -v 58 -p 50 10.3.16.58

ポート80で問題なくIP10.3.16.84および10.3.16.85に接続できます。管理IP10.3.16.94および10.3.16.96に問題なく接続できます。 10.3.16.58に接続すると、タイムアウトになります。/var/run/messagesファイルには、一方がマスターでもう一方がマスターでないことを除いて、何も表示されません。

Vrrpdがping以外のトラフィックをプッシュしない理由について誰かが何か考えを持っていますか?私はこれらのセットアップのうちの3つを持っています。 1つはpop3に、もう1つはsmtpに、もう1つはhttpにあります。それらのどれもping以外には機能しません。

これがnetstatです-LBCO102Aのan

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

これがnetstatです-LBCO102Bのan

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

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

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"
1
mrdenny

私はペンを使ったことがないので、どのように機能するのかよくわかりませんが、役立つかもしれません。

Netstat -anを実行して、出力を提供できますか?私の推測では、ペンはeth2 IPにバインドされており、ボックス上のすべてのアドレスではありません。ボックスが所有するすべてのアドレスを取得するように0.0.0.0に構成する必要があります。または、vrrpdマスタースクリプトを実行して、ペンをVIPにバインドする必要があります。発生する可能性があるのは、masterscriptが、vipがeth2インターフェイスにバインドされることを期待するように構成済みのペン自体を起動する必要があることです。

Netstat出力で今すぐ編集:Okだからここに問題があります:LBCO102A tcp 0 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アドレスがバインドであると仮定します:/ 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は、/ bin/pen -C 8888 -X -l /var/log/ascossrs101.log -p /var/log/ascossrs101.pid0.0になります。 0.0:80 10.3.16.56:80 10.3.16.57:80

0.0.0.0:80は、ボックス上のすべてのアドレスとすべてのインターフェイスにバインドすることを意味します。

他の代替手段は、次を使用することです。/bin/pen -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アドレスがないため、ペンが明示的にバインドできないため、これがそのまま機能するかどうかは疑問です。試してみました。 vrrpdのドキュメントを見ると、これができるかどうかはわかりませんが、freevrrpにはmasterscriptオプションがあり、VIPを引き継ぐときに基本的にスクリプトを実行します。したがって、起動するコマンドを追加するだけです。マスタースクリプトの一部としてペンを使用するため、ボックスがVIPの所有権を取得すると、ペンが起動され、VIP IPアドレスにバインドされます。

2
Kevin Nisbet

わかりました、私は今すべてが機能していると思います。これは、@ Kevinから入手したものと、ネットで見つけたものの組み合わせでした(vrrpdについてはほとんどありません)。

Vrrpd firesがサーバーにIPをリッスンするように指示しているように見えるので、IPとのインターフェースを開始したくありません。インターフェイスには、vrrpが使用するIPではなく、IPが必要です。

次の問題は、vrrpdが使用していたIPとは異なるIPでペンを使用していたことでした。最終的に、すべてのIPのポート80のすべての接続にペンがリストされました。これを行わないと、ペンが起動し、マシンがマスターロードバランサーでない場合、探しているIPが存在しないため、ペンは停止します。

別のIPアドレスでペンをリッスンしてセットアップし、vrrpdがその前にある別のロードバランサーであると想定しました。 vrrpdはIPを起動して閉じるだけであることがわかりました。

だから私がこれで終わったことを要約すると。

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で構成されます。

まだまだテストが必要ですが、ペンをデバッグモードで実行し、/ var/run/messagesファイルを監視しています。アクティブノードでvrrpdを再起動すると、パッシブになり、新しいアクティブノードにトラフィックが表示され始めます。 。時間はわかりますが、それは有望に見えます。

1
mrdenny

ここで推測してください。同じサブネット上に2つのインターフェースがあることと混同している可能性があります。管理ネットワーク用に別のサブネットを作成してみてください。

0
Roy