802.3ad 및 HPE 스위치 결합: 수신 및 송신 트래픽이 동일한 인터페이스에 있지 않음

802.3ad 및 HPE 스위치 결합: 수신 및 송신 트래픽이 동일한 인터페이스에 있지 않음

내 서버(802.3ad, layer2, 따라서 소스 MAC 및 대상 MAC 기반)와 스위치 사이에 LACP가 구성되어 있습니다.

최근에 네트워크 피어에 대한 수신 트래픽이 하나의 인터페이스(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 주소만 사용하면 두 호스트(또는 라우터) 간의 모든 트래픽이 항상 동일한 포트 조합을 사용하게 됩니다.

IP 주소를 사용하면 라우터 간의 흐름을 분산시키거나 (보조) IP 주소를 선택하여 흐름을 최적화할 수 있으며, IP/포트 조합은 다양한 연결의 부하를 자동으로 분산합니다(반드시 최적은 아니지만).

따라서 호스트로의 수신 트래픽은 스위치에 의해 제어되고 송신 트래픽은 호스트에 의해 제어됩니다. 이로 인해 양방향으로 서로 다른 포트가 사용되기 쉽습니다. 그래도 아프지 않습니다.

관련 정보