これらの実用的な事例は、ネットワーキング、セキュリティ、および高可用性テクノロジがどのように機能するかをよりよく理解するためのトレーニングガイドです。
まず、次の練習をしてください。
Step 1. Install Zevenet CE from GIT, SF or Docker https://www.zevenet.com/community Step 2. Create L4xNAT farm with 2 backends and NAT or DNAT mode https://www.zevenet.com/knowledge-base/ Step 3. Execute in a console of Zevenet CE and try to understand the result of: root# iptables -t mangle -n -L root# iptables -t nat -n -L
公式の疑いと意見 メーリングリスト!
回答
ロードバランサは、クライアントとバックエンドまたは実サーバとの間のトラフィックフローを確実にすることを担当するネットワークデバイスです。そのため、フローを確実にするために4ステップが考慮されます。
1. クライアントからのパケットはクライアントからロードバランサに送信されます。
2. パケットはロードバランサから1つの選択された実サーバまたはバックエンドに送信されます。
3. パケットがサーバーからロードバランサに応答します
4. パケットは応答としてクライアントに送り返されます
Zevenet レイヤー4(LSLB – L4xNATプロファイル)は、これらすべてのパケットを次のように処理します。 ネットフィルタ サブシステムスルー iptables そしてネットワークルーティングシステム。
このため、設定時に DTA テーブルに生成された規則を見つけることができるファームを起動してiptablesコマンドを実行します。 マングル や NAT netfilterの。 についての詳細情報 Netfilterテーブルはこちら .
PREROUTING のチェーン マングル 表には、一致するルールが表示されます。
–宛先がサービスの仮想アドレスとポートであるすべての送信元またはクライアントからのすべての着信パケット(例では 192.168.101.250:443)
–次に、特定のアルゴリズムに従ってパケットにマークを付けます。この場合は、確率法に基づく重みです。
root@zevenet:~# iptables -L -t mangle -n Chain PREROUTING (policy ACCEPT) target prot opt source destination CONNMARK all -- 0.0.0.0/0 0.0.0.0/0 CONNMARK restore MARK tcp -- 0.0.0.0/0 192.168.101.250 statistic mode random probability 1.00000000000 multiport dports 443 /* FARM_app_1_ */ MARK set 0x20d MARK tcp -- 0.0.0.0/0 192.168.101.250 statistic mode random probability 0.50000000000 multiport dports 443 /* FARM_app_0_ */ MARK set 0x20c CONNMARK all -- 0.0.0.0/0 0.0.0.0/0 state NEW CONNMARK save Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination
これで着信パケットがマークされました。 PREROUTING のチェーン NAT テーブル私たちはパケットの目的地アドレスを1つのバックエンドか別のものに変えるためにパケットマークを使用します。 この例では、IPアドレス 192.168.1.10 や 192.168.1.11 実サーバーです。
root@zevenet:~# iptables -L -t nat -n Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20c /* FARM_app_0_ */ to:192.168.1.10:443 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20d /* FARM_app_1_ */ to:192.168.1.11:443 Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination
また, コンコースラック テーブルは宛先アドレス変換を管理します。 DTA モードでは、ロードバランサがバックエンドのデフォルトゲートウェイになるため、リターンパケットはルートによって管理されます。
の場合には NATまたは SNAT 一般的に知られているように、conntrackは、宛先アドレス変換だけでなく、送信元アドレス変換も管理します。 この場合、との唯一の違いは DTA 返信されたパケットは、ルーティングシステムではなく、conntrackテーブルによって管理されます。 したがって、2つの新しいルールを見つけることができます 後書き 実行するためのNATテーブルのチェーン マスカレード ファームの仮想IPアドレス
root@zevenet:~# iptables -L -t nat -n Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20c /* FARM_app_0_ */ to:192.168.1.10:443 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20d /* FARM_app_1_ */ to:192.168.1.11:443 Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20c /* FARM_app_0_ */ to:192.168.101.250 SNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20d /* FARM_app_1_ */ to:192.168.101.250
さらなる疑問? にお願いします メーリングリスト!