技術共有

47. LVのDR

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. DR モード:

1.1、lvs 3 つのモード:

  1. NATアドレス変換

  2. DRダイレクトルートモード

  3. トンネルモード

1.2. DR モードの特徴:

  • スケジューラは、LVS クラスタ全体で最も重要です。NAT モードでは、負荷は要求を受信し、負荷分散アルゴリズムに従ってトラフィックを転送し、応答をクライアントに送信します。

  • DR モード: スケジューラは引き続きリクエストを受信し、負荷分散アルゴリズムに従って RS に転送する責任を負います。応答は RS によってクライアントに直接送信されます。

  • ダイレクトルーティングとは、二层转发模式 。2 番目の層によって転送されるのは、数据帧 。によると源mac地址和目的mac地址フォワード。

  • データ パケットの送信元 IP と宛先 IP は変更されず、データ パケットは MAC アドレスに基づいて転送されます。

  • DR モードでは、LVS も仮想 IP アドレスを維持し、すべてのリクエストは第 2 層を介して転送されるため、クライアントのリクエストがスケジュールに達すると、ロード バランシング アルゴリズムとVIP サーバーは変更され、宛先 MAC は RS の MAC アドレスになり、RS がリクエストを処理した後、スケジューラを経由せずに、メッセージ内のクライアントの送信元 MAC アドレスに従ってクライアントに応答を直接送信できます。

スケジューラは VIP で構成され、VIP アドレスも RS 上で構成されます。

  • VIP アドレスが競合し、スケジューラと RS が両方とも同じネットワーク セグメント上にあり、ARP 通信が中断されます。 LAN 全体がブロードキャストするため、すべてのデバイスがそれを受信します。

  • lo のループバック応答をブロックして、サーバーの物理 IP アドレスのみが応答するようにする方法。

カーネルパラメータを変更します。

  • arp_ignore=1------#サーバーシステムの物理IPアドレスのみがリクエストに応答し、ARPリクエストには応答しません。

  • 2. メッセージが返されたとき、VIP アドレスはまだ存在します。クライアントはどのように応答を受け取ることができますか?

  • arp_announce=2—#システムはリクエストに応答するためにIPパケットの送信元アドレスを使用せず、物理インターフェイスのIPアドレスを直接送信します。

1、调度器的ip地址和RS的ip要在同一网段,数据先进行二层转发。

2、RS是一个公网地址,互联网可以直接访问RS的地址(不用)。

3、DR模式是走内核转发,内核来判断数据包的地址,根据RS的地址把数据包重新封装,修改mac地址。
4、调度器的地址只可以做为集群访问的入口,不能作为网关。

5、所有的RS上的lo(本地回环地址)都要配置vip地址。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

ここに画像の説明を挿入します

ここに画像の説明を挿入します

DRモードの実装:

nignx1:RS1 192.168.168.10+vip

nginx2: RS2 192.168.168.20+vip

192.168.168.100 電話番号

test1: スケジューラ vip

テスト2: クライアント

スケジューラー上で

vim /etc/sysctl.conf

net.ipv4.ip_forward=0
#关闭数据包转发功能
net.ipv4.conf.all.send_redirects=0
#禁止系统发送icmp重定向的消息。回环地址不接受ping得消息。只针对真实得ip地址。
net.ipv4.conf.default.send_redirects=0
#禁止默认网络接口发送icmp重定向的消息。
net.ipv4.conf.ens33.send_redirects=0
#针对ens33设备,禁止发送icmp重定向消息。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • -A は仮想サーバー vip を追加します

  • -D 仮想サーバーアドレスを削除します

  • -s は、負荷分散スケジューリング アルゴリズムを指定します。

  • -a 実サーバーを追加します

  • -d 実サーバーを削除します

  • -t は VIP アドレスとポートを指定します

  • -r は rip のアドレスとポートを指定します。

  • -m は nat モードを使用します

  • -g DR モードを使用する

  • -i トンネルモードを使用する

  • -w 重みを設定します

  • -p 60: 保持時間を設定するために、接続は 60 分間維持されます。

  • -l: リストビュー

  • -n: デジタル表示

  • -m はモードを nat モードとして指定します

IP アドレスを 192.168.168.100 に設定し、lvs の VIP としてループバック インターフェイスに追加します。ルーティングモード経由でRSに転送

これにより、VIP は RS の実サーバーを識別できます。

route add -host 192.168.233.100 dev lo:0

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1
#设置回环接口忽略来自任何接口的ARP请求net.ipv4.conf.lo.arp_announce =2
设置回环地址仅仅公告本地的ip地址,但是不响应ARP请求net.ipv4.conf.all.arp_ignore = 1
#设置所有接口忽略来自任何接口的ARP请求net.ipv4.conf.all.arp_announce =2
#设置所有接口仅仅公告本地的ip地址,但是不响应ARP请求。
  • 1
  • 2
  • 3
  • 4
  • 5

3. Linux システムでは、net.ipv4.conf.all.arp_ignore ネットワーク インターフェイスが受信 ARP (アドレス解決プロトコル) 要求を処理する方法を制御するカーネル パラメーターです。このパラメータは、ARP スプーフィングやその他のネットワーク攻撃によって引き起こされるセキュリティ リスクを軽減するために、サーバーおよびネットワーク デバイスで特に構成されます。

設定時 net.ipv4.conf.all.arp_ignore = 1 これは、システムが、宛先 IP アドレスがローカル受信インターフェイス上のアドレスである ARP 要求にのみ応答することを意味します。つまり、ARP リクエストの宛先 IP アドレスがリクエストを受信するインターフェイスの IP アドレスと一致しない場合、システムは ARP リクエストを無視します。この設定は、ARP スプーフィング攻撃に対するシステムの耐性を強化する場合に特に役立ちます。

具体的には、arp_ignore パラメーターには複数の値を指定でき、それぞれが異なる動作を表します。

  • 0(デフォルト): 要求された宛先 IP アドレスがこのマシン上の IP アドレスと一致する限り、任意のネットワーク インターフェイス上の任意の ARP 要求に応答します。
  • 1 : ターゲット IP アドレスが受信インターフェイスの IP アドレスである ARP リクエストにのみ応答します。これは、インターフェイスが他のマシンのプロキシとして使用されるのを防ぐのに役立ちます。
  • 2: ARP リクエストの宛先 IP アドレスが受信インターフェイスの IP アドレスであり、そのインターフェイスがプライマリである場合のみ (つまり、インターフェイスが複数の IP アドレスで構成されている場合、プライマリ IP アドレスに一致する ARP リクエストのみが応答されます) )。

4. Linux システムでは、net.ipv4.conf.all.arp_announce ARP (アドレス解決プロトコル) 要求または応答を送信するときにネットワーク インターフェイスによって使用される IP アドレス選択ポリシーを制御するカーネル パラメーターです。このパラメータは、システムが ARP トラフィックに使用される送信元 IP アドレスをより慎重に選択できるため、ARP スプーフィングやネットワーク アドレスの競合を防ぐのに特に役立ちます。

設定時 net.ipv4.conf.all.arp_announce = 2 これは、システムが ARP 要求または応答を送信するときに、要求の宛先 IP アドレス (使用可能な場合) と同じサブネット上のインターフェイスのプライマリ IP アドレスのみを使用することを意味します。そのようなインターフェイスがない場合、ARP 要求または応答は送信されません。この設定は、ARP トラフィックを送信できるインターフェイスと IP アドレスを制限するため、ARP スプーフィングによって引き起こされるネットワークの問題を軽減するのに役立ちます。

arp_announce パラメータには次の値を指定できます。

  • 0 (デフォルト): ARP 要求または応答に対して、任意のインターフェイス上の任意の IP アドレスを選択します。これにより、攻撃者がシステムを騙して、ARP 通信に使用すべきではない IP アドレスを使用させる可能性があるため、セキュリティ上の問題が発生する可能性があります。
  • 1 : 非要求インターフェイスの IP アドレスを ARP 要求の送信元 IP アドレスとして使用することは避けてください。ただし、他に選択肢がない場合は、非送信請求インターフェイスの IP アドレスが引き続き使用される可能性があります。
  • 2 : 要求された宛先 IP アドレスと同じサブネット上のインターフェイスのプライマリ IP アドレスのみを使用します (使用可能な場合)。これは最も制限的な設定であり、ARP スプーフィングの防止に役立ちます。

lvs の 3 つの動作モード:

NAT博士トゥン
アドバンテージシンプルな構成、アドレス変換最高のパフォーマンスWAN はより長距離のデータ パケット転送を実現できます
欠点があるパフォーマンスのボトルネッククロスネットワークセグメントはサポートされていません専用チャンネル、VPNを開設する必要があります(費用がかかります)
RSの要件無制限非物理インターフェイスの ARP 応答は静止する必要があるトンネルモードをサポートするには
RS数量10-20100台100台

VIP ポーリング アルゴリズムを変更します。

ipvsadm -E -t 192.168.233.100:80 -s wrr

ipvsadm -e -t 192.168.233.100:80 -r 192.168.233.61:80 -w 3

2. 面接での質問

lvs の 3 つのモードとその違いを簡単に説明します。

LVS の動作モードと動作プロセス:

LVS には、VS/NAT (nat モード)、VS/DR (ルーティング モード)、および VS/TUN (トンネル モード) という 3 つのロード バランシング モードがあります。

1. NATモード(VS-NAT)

原則: まず、ロード バランサーが顧客のリクエスト パケットを受信すると、スケジューリング アルゴリズムに基づいて、どのバックエンド リアル サーバー (RS) にリクエストを送信するかを決定します。
次に、ロード バランサーは、クライアントからバックエンド実サーバーの IP アドレス (RIP) に送信された要求パケットのターゲット IP アドレスとポートを変更します。
実サーバーはリクエストに応答した後、デフォルト ルートを確認し、応答パケットを受信した後、ロード バランサーに応答データ パケットを送信します。
パケットの送信元アドレスを仮想アドレス (VIP) に変更し、クライアントに送り返します。

利点: ロード バランサーに有効な IP アドレスがある限り、クラスター内のサーバーは TCP/IP をサポートする任意のオペレーティング システムを使用できます。

欠点: サーバー ノードが大きくなりすぎると、すべてのリクエストと応答がロード バランサーを通過する必要があるため、スケーラビリティが制限されます。
したがって、ロードバランサーがシステム全体のボトルネックになります。

2.ダイレクトルーティングモード(VS-DR)

原則: まず、ロード バランサーが顧客のリクエスト パケットを受信すると、スケジューリング アルゴリズムに基づいて、どのバックエンド リアル サーバー (RS) にリクエストを送信するかを決定します。
次にロードバランサは、クライアントから送信されたリクエストパケットの宛先MACアドレスをバックエンド実サーバのMACアドレス(R-MAC)に変更します。
実サーバーがリクエストに応答すると、デフォルト ルートをチェックし、ロード バランサーを経由せずに応答パケットをクライアントに直接送信します。

利点: ロード バランサーは要求パケットをバックエンド ノード サーバーに分散することのみを担当しますが、RS は応答パケットをユーザーに直接送信します。
したがって、ロード バランサーを通過する大量のデータ フローが軽減され、ロード バランサーがシステムのボトルネックになることがなくなり、大量のリクエストを処理できるようになります。

短所: ロードバランサーと実サーバー RS の両方が、同じ物理ネットワーク セグメントに接続されたネットワーク カードを持ち、同じ LAN 環境にある必要があります。

3. IPトンネルモード(VS-TUN)

原則: まず、ロード バランサーが顧客のリクエスト パケットを受信すると、スケジューリング アルゴリズムに基づいて、どのバックエンド リアル サーバー (RS) にリクエストを送信するかを決定します。
次に、ロード バランサは、クライアントから送信されたリクエスト メッセージを IP トンネル (T-IP) 層でカプセル化し、実サーバー (RS) に転送します。
実サーバーがリクエストに応答すると、デフォルト ルートをチェックし、ロード バランサーを経由せずに応答パケットをクライアントに直接送信します。

利点: ロード バランサーは要求パケットをバックエンド ノード サーバーに分散することのみを担当しますが、RS は応答パケットをユーザーに直接送信します。
したがって、ロード バランサーを通過する大量のデータ フローが軽減され、ロード バランサーがシステムのボトルネックになることがなくなり、大量のリクエストを処理できるようになります。

欠点: トンネル モードの RS ノードには正規の IP が必要であり、この方法ではすべてのサーバーが「IP トンネリング」をサポートする必要があります。

lvs クラスターの高可用性アーキテクチャは、スケジューラーの高可用性のみを目的としています。

vrrp に基づいて、メイン スケジューラーとバックアップ スケジューラーが実装されます。

高可用性 HA アーキテクチャ。

メインスケジューラ、バックアップスケジューラ(複数台)

メインスケジューラが正常に動作している場合、バックアップは完全な冗長状態(スタンバイ)になります。メイン スケジューラに障害が発生した場合にのみ、スタンバイがメイン スケジューラの作業を引き継ぎます。プライマリ スケジューラが機能を再開すると、プライマリ スケジューラはクラスタへの入り口として機能し続け、バックアップ スケジューラは (優先度に応じて) 冗長状態を維持します。

Keepaliva は、vrrp プロトコルに基づいた高可用性ソリューションを実装します。

1. マルチキャストアドレス:

224.0.0.18 はマルチキャスト アドレスに基づいて通信し、プライマリ デバイスとセカンダリ デバイスの間でメッセージを送信します。相手が生存しているかどうかを確認します。

2. 優先順位に基づいてプライマリ ロケーションとセカンダリ ロケーションを決定します。

3. フェイルオーバー。プライマリ マシンがハングアップしても、バックアップ マシンは動作し続けます。マスター マシンが回復しても、バックアップ マシンは待機し続けます。

4. プライマリとセカンダリの切り替えは、VIP アドレスの切り替えです。

キープアライブは LVS 専用に表示されますが、LVS 専用ではありません。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

3. 負荷分散における lvs と nginx の違い:

LVS は、4 層の転送カーネル状態 IP + ポート層 4 プロキシです。

nginx 4 層プロキシは 7 層プロキシにすることもできます

lvs (DR モード)+nginx+tomcat

LVS はレイヤー 4 転送を実装し、nginx はレイヤー 7 転送を実装します (動的)

LVS の VIP アドレスにアクセスすることで、動的と静的の分離を実現できます。

ここに画像の説明を挿入します

4. 実験動作 1. DR モードの実装:

ここに画像の説明を挿入します

DRモードの実装:

nignx1:RS1 192.168.168.10

nginx2: RS2 192.168.168.20

192.168.168.100 電話番号

テスト1:スケジューラ 192.168.168.50

テスト2: クライアント 192.168.168.60

テスト1:スケジューラー

modprobe ip_vs はカーネルを起動します
yum -y ipvsadm* のインストール lvs 管理ツールのインストール

[root@test5 ~]# cd /etc/sysconfig/network-scripts/
[root@test5 ネットワークスクリプト]# vim ifcfg-ens33:0

DEVICE=ens33:0 ##仮想ネットワークカードを追加
ONBOOT=はい
IPアドレス=192.168.168.100
ネットマスク=255.255.255.0

ens33:0 をアップ
ifconfig

ここに画像の説明を挿入します

vim /etc/sysctl.conf

net.ipv4.ip_forward=0

#关闭数据包转发功能

net.ipv4.conf.all.send_redirects=0

#禁止系统发送icmp重定向的消息。###lo回环接口不接收icmp消息。只针对真实的ip地址。

net.ipv4.conf.default.send_redirects=0

#禁止网络接口发送icmp重定向的消息。

net.ipv4.conf.ens33.send_redirects=0

#针对ens33设备,禁止发送icmp重定向消息。

sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

スケジューラにより転送が有効になります

ipvsadm -A -t 192.168.168.100:80 -s rr
[root@test5 opt]# ipvsadm -a -t 192.168.168.100:80 -r 192.168.168.10:80 -g
[root@test5 opt]# ipvsadm -a -t 192.168.168.100:80 -r 192.168.168.20:80 -g
[root@test5 opt]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@test5 opt]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.168.100:80 rr
  -> 192.168.168.10:80            Route   1      0          0         
  -> 192.168.168.20:80            Route   1      0          0  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

仮想ループバックインターフェイスを設定する

服务器1:

vim /usr/local/nginx/html/index.html 

this is nginx1

systemctl restart nginx

服务器2:

vim /usr/local/nginx/html/index.html 

this is nginx2

systemctl restart nginx

同时开启:

DEVICE=lo:0
IPADDR=192.168.168.100
NETMASK=255.255.255.255

ONBOOT=yes
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

/etc/sysconfig/network-scripts/ をコピーします

vim /etc/sysctl.conf

ルート追加 -host 192.168.168.100 dev lo:0

LVS の VIP としてループバック インターフェイスにのみ追加されるように、IP アドレスを 192.168.168.100 に設定します。ルーティング モードを介して RS に転送すると、VIP は実サーバーを識別できるようになります。

vim /etc/sysctl.conf

ネット.ipv4.conf.lo.arp_ignore = 1

#ループバック インターフェイスを設定して、インターフェイスからの ARP リクエストを無視します。
net.ipv4.conf.lo.arp_announce = 2
#ローカル IP アドレスのみを通知し、ARP リクエストには応答しないようにループバック アドレスを設定します。
ネット.ipv4.conf.all.arp_ignore = 1
##すべてのインターフェイスからの ARP リクエストを無視するように設定します
net.ipv4.conf.all.arp_announce = 2
##ローカル IP アドレスのみをアドバタイズし、ARP 要求には応答しないようにすべてのインターフェイスを設定します。

sysctl -p

カール 192.168.168.100

ここに画像の説明を挿入します

5. DR モード + nginx + tomcat:

ここに画像の説明を挿入します

ここに画像の説明を挿入します

DRモードの実装:

nignx1:RS1 192.168.168.10

nginx2: RS2 192.168.168.20

192.168.168.100 電話番号

テスト1:スケジューラ 192.168.168.50

テスト2: クライアント 192.168.168.60

テスト1:スケジューラー

modprobe ip_vs はカーネルを起動します
yum -y ipvsadm* のインストール lvs 管理ツールのインストール

[root@test5 ~]# cd /etc/sysconfig/network-scripts/
[root@test5 ネットワークスクリプト]# vim ifcfg-ens33:0

DEVICE=ens33:0 ##仮想ネットワークカードを追加
ONBOOT=はい
IPアドレス=192.168.168.100
ネットマスク=255.255.255.0

ens33:0 をアップ
ifconfig

ここに画像の説明を挿入します

vim /etc/sysctl.conf

net.ipv4.ip_forward=0

#关闭数据包转发功能

net.ipv4.conf.all.send_redirects=0

#禁止系统发送icmp重定向的消息。###lo回环接口不接收icmp消息。只针对真实的ip地址。

net.ipv4.conf.default.send_redirects=0

#禁止网络接口发送icmp重定向的消息。

net.ipv4.conf.ens33.send_redirects=0

#针对ens33设备,禁止发送icmp重定向消息。

sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

スケジューラにより転送が有効になります

ipvsadm -A -t 192.168.168.100:80 -s rr
[root@test5 opt]# ipvsadm -a -t 192.168.168.100:80 -r 192.168.168.10:80 -g
[root@test5 opt]# ipvsadm -a -t 192.168.168.100:80 -r 192.168.168.20:80 -g
[root@test5 opt]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@test5 opt]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.168.100:80 rr
  -> 192.168.168.10:80            Route   1      0          0         
  -> 192.168.168.20:80            Route   1      0          0  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

仮想ループバックインターフェイスを設定する

服务器1:

vim /usr/local/nginx/html/index.html 

this is nginx1

systemctl restart nginx

服务器2:

vim /usr/local/nginx/html/index.html 

this is nginx2

systemctl restart nginx

同时开启:

DEVICE=lo:0
IPADDR=192.168.168.100
NETMASK=255.255.255.255

ONBOOT=yes
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

/etc/sysconfig/network-scripts/ をコピーします

vim /etc/sysctl.conf

ルート追加 -host 192.168.168.100 dev lo:0

LVS の VIP としてループバック インターフェイスにのみ追加されるように、IP アドレスを 192.168.168.100 に設定します。ルーティング モードを介して RS に転送すると、VIP は実サーバーを識別できるようになります。

vim /etc/sysctl.conf

ネット.ipv4.conf.lo.arp_ignore = 1

#ループバック インターフェイスを設定して、インターフェイスからの ARP リクエストを無視します。
net.ipv4.conf.lo.arp_announce = 2
#ローカル IP アドレスのみを通知し、ARP リクエストには応答しないようにループバック アドレスを設定します。
ネット.ipv4.conf.all.arp_ignore = 1
##すべてのインターフェイスからの ARP リクエストを無視するように設定します
net.ipv4.conf.all.arp_announce = 2
##ローカル IP アドレスのみをアドバタイズし、ARP 要求には応答しないようにすべてのインターフェイスを設定します。

sysctl -p

カール 192.168.168.100

ここに画像の説明を挿入します

nginx1 と nginx2 は Tomcat に送信するレイヤー 7 プロキシを構成します

vim /usr/local/nginx/conf/nginx.conf

#keepalive_timeout  0;
keepalive_timeout  65;
upstream tomcat {
    server 192.168.168.40:8080 weight=2;
    server 192.168.168.90:8080 weight=1;
            }
#gzip  on;

server {
    listen       80;
    server_name  localhost;
#charset koi8-r;

#access_log  logs/host.access.log  main;
location ~ .*.jsp$ {
proxy_pass http://tomcat;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

トムキャット1:

vim /usr/local/tomcat/conf/server.xml

 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
  • 1
  • 2

mkdir -p /usr/local/tomcat/webapps/test

cd /usr/local/tomcat/webapps/test

vim インデックス.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>

<head>
<title>JSP test1 page</title>
</head>

<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

cd /usr/local/tomcat/bin/

./シャットダウン.sh

./スタートアップ.sh

netstat -antp | grep 8080

トムキャット2:

vim /usr/local/tomcat/conf/server.xml

 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
  • 1
  • 2

mkdir -p /usr/local/tomcat/webapps/test

cd /usr/local/tomcat/webapps/test

vim インデックス.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>

<head>
<title>JSP test2 page</title>
</head>

<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

cd /usr/local/tomcat/bin/

./シャットダウン.sh

./スタートアップ.sh

netstat -antp | grep 8080

ここに画像の説明を挿入します

1. 仮想 IP (vip) を構成する理由:

レイヤ 2 転送は MAC ヘッダーのみを変更します。

データ リンク層の転送では、RS が受信したデータ パケットのターゲット IP が依然として VIP であるため、IP ヘッダーは変更されず、MAC ヘッダーのみが変更されます。このパケットを正しく処理できます。このパケットをドロップするのではなく、VIP を RS のループバック ネットワーク カード (lo) に設定する必要があります。このようにして、RS はこの VIP が独自の IP であると認識し、このリクエストを処理できるようになります。 -----これはあなた自身のアドレス要求と同じであり、ARP ブロードキャストを通じてすべてのホストに送信されます。シールドされた仮想ホスト経由でクライアントに到達します。

  1. クライアントに直接返却 : DR モードでは、クライアントが VIP にリクエストを送信すると、これらのリクエストは LVS スケジューラ (ディレクター サーバー) を通じてバックエンド RS サーバーに転送されます。 RS サーバーはリクエストを処理した後、LVS スケジューラに応答を返すのではなく、クライアントに直接応答を返す必要があります。これを実現するには、クライアントが RS サーバーを認識して応答を受信できるように、RS サーバーを LVS スケジューラと同じ VIP アドレスで構成する必要があります。クライアントはスケジューラの IP にアクセスするため、クライアントがスケジューラを識別できるように、スケジューラの仮想 URL を使用して IP を転送します。
  2. MACアドレス書き換え : DR モードでは、LVS スケジューラはリクエスト メッセージのターゲット MAC アドレスを書き換えることによってリクエストを RS サーバーに転送します。 RS サーバーがリクエストを受信して​​処理するとき、リクエストのターゲット IP は VIP であるため、RS サーバーは LVS スケジューラを経由せずにクライアントに直接応答を送信します。このとき、RS サーバーに VIP が設定されていない場合、クライアントは応答の送信元を特定できないため、応答の受信を拒否する可能性があります。

2. VIP仮想IPがloインターフェースに設定されている理由

ARPテーブルの乱れを防ぐ : RS の出力ネットワーク カードに VIP が設定されている場合、RS はクライアントの ARP リクエストに応答します。これにより、クライアントまたはゲートウェイの ARP テーブルが混乱し、負荷分散システム全体の通常の動作に影響を与える可能性があります。lo インターフェイスに VIP を設定すると、RS が ARP 要求に応答するのを防ぐことができ、ネットワーク環境の安定性を維持できます。

lo (ローカル ループバック アドレス) を RS (リアル サーバー) サーバー上の VIP (仮想 IP) アドレスとして構成することは、主に、ロード バランシング テクノロジ (LVS-DR モードなど) の特定の要件と実装メカニズムに基づいています。以下は詳細な役割分析です。

1. RS が宛先アドレス VIP の IP パケットを処理できることを確認します。

  • リクエストを受信して​​処理する : LVS-DR などのロード バランシング モードでは、クライアントのリクエスト パケットがロード バランサに到達した後、ターゲット IP が VIP に設定されますが、ロード バランサはリクエスト パケットの IP とポートを変更せず、 MAC アドレス。エンド RS の MAC アドレスを指定し、データ パケットを RS に転送します。 RS が受信したパケットの宛先 IP は依然として VIP であるため、RS がパケットを破棄せずに正しく処理できるようにするには、RS のループバック ネットワーク カード (lo) に VIP を設定する必要があります。このようにして、RS はこの VIP が独自の IP であると認識し、このリクエストを処理できるようになります。

2. ARP リクエストとレスポンスの混乱を避ける

  • ARPテーブルの乱れを防ぐ : RS の出力ネットワーク カードに VIP が設定されている場合、RS はクライアントの ARP リクエストに応答します。これにより、クライアントまたはゲートウェイの ARP テーブルが混乱し、負荷分散システム全体の通常の動作に影響を与える可能性があります。 lo インターフェイスに VIP を設定すると、RS が ARP 要求に応答するのを防ぐことができ、ネットワーク環境の安定性を維持できます。

3. システムのセキュリティと安定性を向上させる

  • TCP接続の堅牢性を強化する : ダイナミック ルーティング プロトコル (OSPF、BGP など) を設定する場合、通常、ループバック インターフェイスの IP アドレスがルーター ID として使用されます。これは、ループバック インターフェイスがダウンしないインターフェイスとみなされ、安定性が向上するためです。 TCP 接続の安定性と安全性。この効果は、VIP が RS サーバー上の lo アドレスとして直接構成されているシナリオには直接反映されませんが、システムの安定性とセキュリティの向上におけるループバック インターフェイスの普遍的な価値を反映しています。

4. 構成と管理を簡素化する

  • 統合された構成と管理 : RS サーバー上の VIP アドレスとして lo インターフェイスを設定すると、すべての RS の設定が一貫し、統合された管理とメンテナンスが容易になります。同時に、ループバック インターフェイスは仮想であり、物理ネットワーク インターフェイスのリソースを占有しないため、サーバーの物理ネットワーク構成には影響しません。

5. 注意事項

  • RS とクライアント間のネットワークが到達可能であることを確認してください : RS がリクエストを処理した後、レスポンスをクライアントに直接返す必要があるため、RS とクライアントの間のネットワークが到達可能である必要があります。これは通常、RS のデフォルト ゲートウェイまたはルーティングが正しく設定されていることを確認することで実現されます。
  • 適切なカーネルパラメータを構成する注:RS が VIP の宛先アドレスを持つ IP パケットを正しく処理できるようにするには、ARP リクエストに対する RS の応答動作を制御するためにいくつかのカーネル パラメータ(arp_ignore や arp_announce など)を設定する必要がある場合があります。

要約すると、RS サーバー上で lo を VIP アドレスとして設定する主な機能は、RS が宛先アドレス VIP を持つ IP パケットを確実に受信して処理できるようにすると同時に、ARP 要求と応答の混乱を回避し、セキュリティとセキュリティを向上させることです。システムの安定性。さらに、この構成は、構成と管理のプロセスを簡素化するのに役立ちます。

ループバック インターフェイスは、コンピュータのネットワーク プロトコル スタック内の仮想ネットワーク インターフェイスとして使用される特別なネットワーク インターフェイスです。ループバック インターフェイスの主な目的は、物理ネットワーク インターフェイスを経由せずにシステムがそれ自体とネットワーク通信できるようにすることです。この通信方法はループバックまたは循環と呼ばれます

  1. LVS DRモードでの使用法: LVS (Linux 仮想サーバー) の DR (ダイレクト ルーティング) モードでは、ループバック インターフェイスを使用して仮想 IP アドレス (VIP) を構成し、バックエンドの実サーバーが VIP の ARP リクエストに応答しないようにすることで、アドレスの漏洩を回避します。衝突や潜在的なコミュニケーションの問題。

6. インターフェースの説明:

ネットワーク インターフェイスは、コンピュータ ネットワークに接続されているコンピュータ システム内のデバイスまたはソフトウェアであり、コンピュータとネットワーク間の通信インターフェイスを提供し、コンピュータとネットワーク間のブリッジとして機能します。以下は、ネットワーク インターフェイスの具体的な定義と関連情報です。

意味

  • 身体レベル: ネットワーク インターフェイスは通常、物理接続 (イーサネット ケーブル、ワイヤレス ネットワーク カードなど) を介してコンピュータをネットワークに接続するポートまたはデバイスを指します。
  • ソフトウェアレベル: ネットワーク インターフェイスは、オペレーティング システムによって提供されるネットワーク プロトコル スタックとドライバーを介してネットワークとの対話を実装します。

効果

  • データ送信: ネットワーク インターフェイスは、ネットワークとの間でデータの送受信を担当し、コンピュータとネットワーク間のデータ伝送機能を実現します。
  • プロトコル処理: ネットワーク インターフェイスは、さまざまなネットワーク プロトコル (TCP/IP、UDP など) を処理し、プロトコルで指定された方法でデータを送信および処理できるようにします。
  • アドレス管理: ネットワーク インターフェイスは、IP アドレス、サブネット マスク、デフォルト ゲートウェイなどのネットワーク パラメータの構成と管理を含む、ネットワーク内のコンピュータのアドレス割り当てと管理を担当します。
  • フロー制御: ネットワーク インターフェイスは、ネットワークの輻輳とデータ送信のニーズに基づいてデータ送信速度と優先度を調整し、ネットワーク負荷のバランスをとり、ネットワークの安定性とパフォーマンスを確保します。
  • エラーの検出と修正: ネットワークインターフェイスにはエラー検出および訂正機能があり、チェックサムやエラー訂正コードなどの技術によりデータ伝送の信頼性と精度が向上します。

タイプ

ネットワーク インターフェイスにはさまざまな種類があり、各種類のネットワーク インターフェイスには独自の特性と適用可能なシナリオがあります。

  • イーサネットインターフェース : 最も一般的な有線ネットワーク インターフェイスで、イーサネット ケーブルを介してコンピューターを LAN または WAN に接続します。イーサネット インターフェイスは、データ伝送にイーサネット プロトコルを使用し、高速データ伝送と幅広いネットワーク アプリケーションをサポートします。
  • 無線LANインターフェース(WLANインターフェース): コンピュータはワイヤレス信号を通じてローカル エリア ネットワークに接続され、データ送信にはワイヤレス LAN プロトコル (Wi-Fi など) が一般的に使用されます。
  • Bluetoothインターフェース: Bluetooth 信号を介してデバイス間の無線接続を可能にする近距離無線通信技術。
  • シリアルインターフェース: シリアル通信を通じてコン​​ピュータと外部デバイス間でデータをビットごとに送信します。一般的なシリアル インターフェイスには、プリンタ、モデム、その他のデバイスの接続に使用される RS-232 および USB シリアル インターフェイスが含まれます。

共通インターフェース規格

  • RJ-45インターフェース: 現在最も一般的なネットワーク デバイス インターフェイスであり、一般に「クリスタル ヘッド」として知られており、専門用語では RJ-45 コネクタと呼ばれ、ツイスト ペア イーサネット インターフェイス タイプに属します。
  • SC光ファイバーインターフェース :イーサネット時代にも使われていましたが、コストが高いため初期は普及しませんでした。ギガビットネットワークの推進に伴い、SC光ファイバインターフェースが改めて注目されています。
  • AUIインターフェース: 太い同軸ケーブルを接続するために特別に使用されますが、初期のネットワーク カードでは一般的なインターフェイスであり、現在はほとんど使用されていません。
  • BNCインターフェース: 細い同軸ケーブルに接続するために特別に設計されたインターフェイスで、現在ではスイッチではあまり使用されていません。

要約すると、ネットワーク インターフェイスは、コンピュータとネットワーク間の通信のための重要なコンポーネントであり、物理的な接続または無線信号を介してコンピュータとネットワーク間のデータ送信と通信を実現します。さまざまなタイプのネットワーク インターフェイスがさまざまなシナリオやアプリケーションに適しており、コンピュータとネットワーク間の通信に重要なサポートを提供します。

面接の質問

キープアライブのスプリット ブレイン問題を解決するにはどうすればよいですか?

ネットワーク インターフェイスにはさまざまな種類があり、各種類のネットワーク インターフェイスには独自の特性と適用可能なシナリオがあります。

  • イーサネットインターフェース : 最も一般的な有線ネットワーク インターフェイスで、イーサネット ケーブルを介してコンピューターを LAN または WAN に接続します。イーサネット インターフェイスは、データ伝送にイーサネット プロトコルを使用し、高速データ伝送と幅広いネットワーク アプリケーションをサポートします。
  • 無線LANインターフェース(WLANインターフェース): コンピュータはワイヤレス信号を通じてローカル エリア ネットワークに接続され、データ送信にはワイヤレス LAN プロトコル (Wi-Fi など) が一般的に使用されます。
  • Bluetoothインターフェース: Bluetooth 信号を介してデバイス間の無線接続を可能にする近距離無線通信技術。
  • シリアルインターフェース: シリアル通信を通じてコン​​ピュータと外部デバイス間でデータをビットごとに送信します。一般的なシリアル インターフェイスには、プリンタ、モデム、その他のデバイスの接続に使用される RS-232 および USB シリアル インターフェイスが含まれます。

共通インターフェース規格

  • RJ-45インターフェース: 現在最も一般的なネットワーク デバイス インターフェイスであり、一般に「クリスタル ヘッド」として知られており、専門用語では RJ-45 コネクタと呼ばれ、ツイスト ペア イーサネット インターフェイス タイプに属します。
  • SC光ファイバーインターフェース :イーサネット時代にも使われていましたが、コストが高いため初期は普及しませんでした。ギガビットネットワークの推進に伴い、SC光ファイバインターフェースが改めて注目されています。
  • AUIインターフェース: 太い同軸ケーブルを接続するために特別に使用されますが、初期のネットワーク カードでは一般的なインターフェイスであり、現在はほとんど使用されていません。
  • BNCインターフェース: 細い同軸ケーブルに接続するために特別に設計されたインターフェイスで、現在ではスイッチではあまり使用されていません。

要約すると、ネットワーク インターフェイスは、コンピュータとネットワーク間の通信のための重要なコンポーネントであり、物理的な接続または無線信号を介してコンピュータとネットワーク間のデータ送信と通信を実現します。さまざまなタイプのネットワーク インターフェイスがさまざまなシナリオやアプリケーションに適しており、コンピュータとネットワーク間の通信に重要なサポートを提供します。

面接の質問

キープアライブのスプリット ブレイン問題を解決するにはどうすればよいですか?