Piranhaツールを使用してcentosでLVSを構成しました。実サーバーのゲートウェイとして内部n/wのvipを使用しています。2つのNIC 1つは外部IPを持ち、もう1つは内部n/wを持っています。 192.168.3.0/24ネットワーク上にあります。
しかし、クライアントから接続できません。接続が拒否されましたというエラーが表示されます。
。プライベートnパブリックn/wが通信するためのiptablesルールを提案してください。私はこれを逃しているかもしれません。追加したIptablesルールは次のとおりです。
iptables -t nat -A POSTROUTING -p tcp -s 192.168.3.0/24 --sport 5000 -j MASQUERADE
これは私のipconfigです:
eth0 Link encap:Ethernet HWaddr 00:00:E8:F6:74:DA
inet addr:122.166.233.133 Bcast:122.166.233.255 Mask:255.255.255.0
inet6 addr: fe80::200:e8ff:fef6:74da/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:94433 errors:0 dropped:0 overruns:0 frame:0
TX packets:130966 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9469972 (9.0 MiB) TX bytes:19929308 (19.0 MiB)
Interrupt:16 Base address:0x2000
eth0:1 Link encap:Ethernet HWaddr 00:00:E8:F6:74:DA
inet addr:122.166.233.136 Bcast:122.166.233.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:16 Base address:0x2000
eth1 Link encap:Ethernet HWaddr 00:E0:20:14:F9:2D
inet addr:192.168.3.1 Bcast:192.168.3.255 Mask:255.255.255.0
inet6 addr: fe80::2e0:20ff:fe14:f92d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:123718 errors:0 dropped:0 overruns:0 frame:0
TX packets:148856 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18738556 (17.8 MiB) TX bytes:11697153 (11.1 MiB)
Interrupt:17 Memory:60000400-600004ff
eth1:1 Link encap:Ethernet HWaddr 00:E0:20:14:F9:2D
inet addr:192.168.3.10 Bcast:192.168.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:17 Memory:60000400-600004ff
eth2 Link encap:Ethernet HWaddr 00:16:76:6E:D1:D2
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:21 Base address:0xa500
およびipvsadm-lnコマンド
[root@abts-kk-static-133 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 122.166.233.136:5000 wlc
TCP 122.166.233.136:5004 wlc
lvs server routing table
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
122.166.233.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1004 0 0 eth1
0.0.0.0 122.166.233.1 0.0.0.0 UG 0 0 0 eth0
リアル1
リアル2
5000:5008からさまざまなポートを構成しました。
すべてのポートでこのiptablesを実行する必要がありますか?
この問題をどのように解決すればよいか提案してください。
まず、必要なLVSのタイプ(NAT、TUN、またはDR)を決定する必要があります。
【パケット転送方式】
-g, --gatewaying Use gatewaying (direct routing). This is the default. -i, --ipip Use ipip encapsulation (tunneling). -m, --masquerading Use masquerading (network access translation, or NAT).
NATが必要なようです。そのため、実サーバーのipvsadmに-mオプションが必要になります。
テストピラニア構成はここから入手できます:
http://www.linuxvirtualserver.org/docs/ha/piranha.html
独自のiptablesルールを使用してNATを手動で構成するのではなく、ipvsadmにNATを実行させます。iptablesルールを削除し、さらに言えば、削除します。上記で指定したエイリアスインターフェイスは1で終わります。これにより、作業が大幅に簡素化され、正しい方向に進むことができます。
192.168.3.1の実サーバーでデフォルトのgwを確認してください。 Directorから、各実サーバーにpingを実行し、5000/5004のように見えるLVSポートにtelnetすることも試してください。それがすべて機能している場合は、クライアントに戻って、VIPで5000/5004に電話してみてください。