サーバー (802.3ad、レイヤー 2、つまり送信元 MAC と宛先 MAC に基づく) とスイッチの間に LACP を設定しました。
最近、ネットワーク ピアの入力トラフィックが 1 つのインターフェイス (eth3) を使用しているのに対し、同じネットワーク ピアの出力トラフィックは別のインターフェイス (eth1) を使用していることがわかりました。
それは正常な動作ですか?
カーネルドキュメントを見ると(https://www.kernel.org/doc/Documentation/networking/bonding.txt、セクション xmit_hash_policy): そうは思いません。しかし、私は迷っています、本当に迷っています...
私の設定は次のとおりです:
私のサーバーのボンド設定
root@server:~# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
Aggregator ID: 2
Number of ports: 2
Actor Key: 17
Partner Key: 8
Partner Mac Address: 2c:23:3a:6a:c5:fe
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 6
Permanent HW addr: b0:83:fe:d9:93:a0
Aggregator ID: 2
Slave queue ID: 0
Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 6
Permanent HW addr: b0:83:fe:d9:93:a2
Aggregator ID: 2
Slave queue ID: 0
スイッチの構成 (HPE 5130):
<switch> display link-aggregation load-sharing mode interface Bridge-Aggregation 8
Bridge-Aggregation8 load-sharing mode:
Layer 2 traffic: packet type-based sharing
Layer 3 traffic: packet type-based sharing
<switch>display link-aggregation verbose Bridge-Aggregation 8
Loadsharing Type: Shar -- Loadsharing, NonS -- Non-Loadsharing
Port Status: S -- Selected, U -- Unselected,
I -- Individual, * -- Management port
Flags: A -- LACP_Activity, B -- LACP_Timeout, C -- Aggregation,
D -- Synchronization, E -- Collecting, F -- Distributing,
G -- Defaulted, H -- Expired
Aggregate Interface: Bridge-Aggregation8
Aggregation Mode: Dynamic
Loadsharing Type: Shar
Management VLAN : None
System ID: 0x8000, 2c23-3a6a-c5fe
Local:
Port Status Priority Oper-Key Flag
--------------------------------------------------------------------------------
GE1/0/8 S 32768 8 {ABCDEF}
GE2/0/8 S 32768 8 {ABCDEF}
Remote:
Actor Partner Priority Oper-Key SystemID Flag
--------------------------------------------------------------------------------
GE1/0/8 2 255 17 0xffff, b083-fed9-93a0 {ABCDEF}
GE2/0/8 1 255 17 0xffff, b083-fed9-93a0 {ABCDEF}
スイッチの負荷分散モードを変更しようとしましたが、何も変わりませんでした。
ありがとう!
答え1
LACP または静的ボンディングでは、各側がトラフィックのルーティング方法を独自に決定します。
スイッチは通常、SA/DA 方式を適用します。つまり、送信元アドレスと送信先アドレスの下位 3 ビットまたは 4 ビットをハッシュし、それを LAG ポート インデックスとして使用します。よりシンプルなスイッチでは MAC アドレスのみを使用し、より高度なスイッチでは IP アドレス (存在する場合) を使用するか、TCP/UDP ポートと組み合わせて使用します。
目的は、単一のフローが常に同じポートの組み合わせを使用するようにして、フレームの順序が乱れないようにすることです。
MAC アドレスのみを使用すると、2 つのホスト (またはルーター) 間のすべてのトラフィックで常に同じポートの組み合わせが使用されるようになります。
IP アドレスを使用すると、ルータ間のフローを分散したり、(セカンダリ) IP アドレスを選択してフローを最適化したり、IP/ポートの組み合わせによってさまざまな接続の負荷を自動的に分散したりできます (必ずしも最適とは限りません)。
したがって、ホストへの入力トラフィックはスイッチによって制御され、出力トラフィックはホストによって制御されます。これにより、両方向で異なるポートが使用される可能性が非常に高くなります。ただし、問題はありません。