소개
이 문서에서는 C885A-M8 서버에서 Netplan을 사용하여 LACP를 구성하는 방법에 대해 설명합니다.
배경 정보
BMC에서는 네트워크 측에서 어떤 수정도 수행할 수 없으며 모든 변경 사항은 OS Guest에서 수행해야 합니다.
사전 요구 사항
사용되는 구성 요소
UCS C885A M8 Rack Server
PID: UCSC-885A-M8-H11
펌웨어 버전: 1.0.28
Nexus 9k Switch
Ubuntu 22.04.5 LTS
사용된 네트워크 카드
BlueField-3 P-Series DPU 400GbE/NDR VPI 듀얼 포트
BlueField-3 E 시리즈 SuperNIC 400GbE/NDR 단일 포트
OCP 3.0용 인텔(R) 이더넷 네트워크 어댑터 X710-T2L
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
NIC가 DPU 모드가 아닌지 확인합니다.
제대로 작동하려면 NIC가 DPU 모드가 아닌지 확인합니다. NIC가 DPU(Link Aggregation Control Protocol) 모드인 경우 LACP가 지원되지 않습니다. 필요한 경우 NIC 모드로 변환합니다.
1단계: PCIe 주소 식별
명령을 실행하여 원하는 포트의 PCIe 주소를 나열합니다.
cisco-tac@C885A-M8:~$ sudo mst start
Starting MST (Mellanox Software Tools) driver set
Loading MST PCI module - Success
Loading MST PCI configuration module - Success
Create devices
Unloading MST PCI module (unused) - Success
참고: 이는 필수는 아니지만 mlxconfig를 사용하여 변경할 때 올바른 디바이스를 지정하는 데 도움이 될 수 있습니다
cisco-tac@C885A-M8:~$ sudo mst status -v
MST modules:
------------
MST PCI module is not loaded
MST PCI configuration module loaded
PCI devices:
------------
DEVICE_TYPE MST PCI RDMA NET NUMA
BlueField3(rev:1) /dev/mst/mt41692_pciconf9 f1:00.0 mlx5_6 net-ens205f0 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf8 c5:00.0 mlx5_7 net-ens206f0 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf7 a4:00.0 mlx5_11 net-ens208f0 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf6 97:00.0 mlx5_10 net-ens207f0 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf5.1 91:00.1 mlx5_9 net-ens214f1np1 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf5 91:00.0 mlx5_8 net-ens214f0np0 1
BlueField3(rev:1) /dev/mst/mt41692_pciconf4 69:00.0 mlx5_0 net-ens202f0 0
BlueField3(rev:1) /dev/mst/mt41692_pciconf3 4b:00.0 mlx5_3 net-ens201f0 0
BlueField3(rev:1) /dev/mst/mt41692_pciconf2.1 45:00.1 mlx5_2 net-ens214f1np1 0
BlueField3(rev:1) /dev/mst/mt41692_pciconf2 45:00.0 mlx5_1 net-ens211f0np0 0
BlueField3(rev:1) /dev/mst/mt41692_pciconf1 2b:00.0 mlx5_5 net-ens203f0 0
BlueField3(rev:1) /dev/mst/mt41692_pciconf0 09:00.0 mlx5_4 net-ens204f0 0
이 명령은 디바이스의 세부 목록을 제공하므로 적절한 MST 및 PCI 식별자를 식별할 수 있습니다.
이 시나리오에서는 NET net-ens214f1np1 및 NET net-ens211f0np0이 사용됩니다.
2단계: NIC 컨피그레이션 확인
식별된 MST 또는 PCI 식별자를 사용하여 다음 명령 중 하나를 사용하여 현재 NIC 컨피그레이션을 확인합니다.
sudo mlxconfig -d 0000:<PCI_ID> -e q | grep 'INTERNAL_CPU_MODEL\|EXP_ROM_UEFI_ARM_ENABLE\|INTERNAL_CPU_OFFLOAD_ENGINE'
또는
sudo mlxconfig -d /dev/<MST_DEVICE> -e q | grep 'INTERNAL_CPU_MODEL\|EXP_ROM_UEFI_ARM_ENABLE\|INTERNAL_CPU_OFFLOAD_ENGINE'
cisco-tac@C885A-M8:~$ sudo sudo mlxconfig -d dev/mst/mt41692_pciconf1 -e q | grep \ 'INTERNAL_CPU_MODEL\|EXP_ROM_UEFI_ARM_ENABLE\|INTERNAL_CPU_OFFLOAD_ENGINE'
Configurations: Default Current Next Boot
INTERNAL_CPU_MODEL EMBEDDED_CPU(1) EMBEDDED_CPU(1) EMBEDDED_CPU(1)
INTERNAL_CPU_OFFLOAD_ENGINE ENABLED(0) ENABLED(0) ENABLED(0)
EXP_ROM_UEFI_ARM_ENABLE True(1) True(1) True(1)
참고: CPU 모델 및 ARM UEFI 활성화 변수는 카드가 DPU 모드를 지원함을 확인합니다
위 예에서는
INTERNAL_CPU_OFFLOAD_ENGINE은 현재 및 다음 부팅 컨피그레이션에 대해 ENABLED\(0\)로 설정됩니다.
이는 NIC가 현재 DPU 모드에서 작동 중이며 LACP 컨피그레이션을 계속하려면 NIC 모드로 전환해야 함을 나타냅니다.
3단계: NIC 모드로 변환
NIC를 NIC 모드로 변환하려면 다음 명령을 실행합니다.
sudo mlxconfig -d 0000:<PCI_ID> s INTERNAL_CPU_OFFLOAD_ENGINE=0
cisco-tac@C885A-M8:~$ sudo mlxconfig -d 0000:45:00.0 s INTERNAL_CPU_OFFLOAD_ENGINE=0
Device #1:
----------
Device type: BlueField3
Name: 900-9D3B6-00SN-A_Ax
Description: NVIDIA BlueField-3 B3240 P-Series Dual-slot FHHL DPU; 400GbE / NDR IB (default mode); Dual-port QSFP112; PCIe Gen5.0 x16 with x16 PCIe extension option; 16 Arm cores; 32GB on-board DDR; integrated BMC; Crypto Disabled
Device: 0000:45:00.0
Configurations: Next Boot New
INTERNAL_CPU_OFFLOAD_ENGINE ENABLED(0) DISABLED(1)
Apply new Configuration? (y/n) [n] : y
Applying... Done!
-I- Please reboot machine to load new configurations.
cisco-tac@C885A-M8:~$ sudo init 0
참고: sudo init 0을 사용하면 컨피그레이션이 제대로 로드되도록 호스트를 종료합니다.
4단계: 재부팅 및 컨피그레이션 확인
sudo init 0 명령을 실행하면 호스트 시스템이 종료됩니다. 베이스보드 관리 컨트롤러(BMC)를 사용하여 호스트 OS를 재시작합니다.
시스템이 다시 온라인 상태가 되면 앞에서 설명한 것과 동일한 확인 명령을 실행하여 구성 변경 사항이 성공적으로 적용되었는지 확인합니다.
sudo mlxconfig -d 0000:<PCI_ID> -e q | grep 'INTERNAL_CPU_MODEL\|EXP_ROM_UEFI_ARM_ENABLE\|INTERNAL_CPU_OFFLOAD_ENGINE'
또는
sudo mlxconfig -d /dev/<MST_DEVICE> -e q | grep 'INTERNAL_CPU_MODEL\|EXP_ROM_UEFI_ARM_ENABLE\|INTERNAL_CPU_OFFLOAD_ENGINE'
컨피그레이션이 성공적으로 적용된 경우 원하는 포트 채널, 결합 또는 LAG 컨피그레이션을 계속 생성할 수 있습니다.
LACP 구성
1단계: 새 Netplan 컨피그레이션 파일 생성
Ubuntu에서 인터페이스를 구성하기 위한 현재 표준은 Netplan입니다. 먼저 다음을 실행하여 기존 Netplan YAML 컨피그레이션 파일을 확인합니다.
ls /etc/netplan/
기본적으로 /etc/netplan/ 디렉토리에는 일반적으로 YAML 파일이 하나만 있습니다. Netplan 구성 파일은 명명 규칙 ##-<관련 이름>.yaml을 사용합니다. 여기서 ##는 01과 99 사이의 숫자입니다. 번호가 낮은 구성 파일은 충돌이 있을 경우 번호가 높은 파일이 덮어씁니다.
변경 내용이 지속적이고 구성되도록 기본 YAML 파일을 편집하는 대신 새 YAML 파일을 만드는 것이 좋습니다. 기본 파일을 수정할 경우 재부팅 후에도 변경 사항이 지속되지 않을 위험이 있습니다. 이 설명서에서는 다음 이름의 새 파일을 생성합니다
51-lacp-config.yaml.
새 파일을 만들려면 다음 명령을 사용합니다.
sudo nano /etc/netplan/51-lacp-config.yaml
파일 번호 지정이 기존 파일과 충돌하지 않는지 확인하고 예기치 않은 동작을 방지하기 위해 적절한 계층을 사용합니다.
VLAN을 사용하여 LACP를 설정하기 위한 Netplan YAML 구성 파일(51-lacp-config.yaml)의 예입니다.
cisco-tac@C885A-M8:~$ cat /etc/netplan/51-lacp-config.yaml
network:
ethernets:
ens211f0np0:
mtu: 9000
ens211f1np1:
mtu: 9000
bonds:
bond0:
mtu: 9000
dhcp4: false
dhcp6: false
interfaces:
- ens211f0np0
- ens211f1np1
parameters:
mode: 802.3ad
mii-monitor-interval: 100
vlans:
bond0.2001:
id: 2001
link: bond0
가치 |
고려 사항 |
비고 |
MTU 설정 |
ens211f0np0 및 ens211f1np1의 경우 MTU가 9000으로 설정됩니다. |
MTU를 가장 높은 값으로 설정하여 향후 MTU 문제가 발생하지 않도록 하는 것이 좋습니다. 인터페이스를 언급할 때마다 항상 MTU를 지정합니다 |
LACP 모드 |
mode 매개변수는 802.3ad로 설정됩니다 |
이는 LACP에 필요한 모드입니다. 다른 본딩 모드들이 존재하지만 LACP에는 적합하지 않다 |
VLAN 컨피그레이션 |
bond0.2001 섹션은 결합을 통해 여러 VLAN을 전송하기 위한 하위 인터페이스를 생성합니다. id 필드는 VLAN ID를 지정합니다(이 경우 2001). 링크 필드는 하위 인터페이스를 연결된 인터페이스(bond0)와 연결합니다 |
동일한 YAML 파일에 여러 개의 결합이 있는 경우 올바른 구성이 올바른 결합에 적용되도록 합니다 |
IP 주소 및 경로 |
주소 필드는 VLAN의 IP 주소 및 서브넷 마스크(예: 10.10.200.33/27)를 지정합니다 |
routes 섹션에서는 이 인터페이스에서 처리하는 경로를 정의할 수 있습니다. 이 예에는 10.10.200.32/27에 대한 경로가 포함되어 있지만 이 실습 설정에서는 이중화되지만 여러 경로를 추가하는 방법을 보여 줍니다 |
DNS 서버 |
nameservers 섹션에서는 DNS 서버(주소)를 지정하고 도메인(검색)을 검색할 수 있습니다 |
작업 환경을 기반으로 DNS 서버 세부 정보를 제공해야 합니다. |
VLAN에 대한 MTU |
VLAN 컨피그레이션의 mtu 필드는 9000으로 설정됩니다 |
필요한 경우 VLAN별로 서로 다른 MTU 값을 구성할 수 있습니다 |
버전 필드 |
파일 끝에 있는 버전 필드를 포함하여 2로 설정할 수 있습니다 |
YAML 구문을 유지 관리하려면 공백으로 들여쓰십시오. |
2단계: 컨피그레이션 적용
새 컨피그레이션을 적용하려면 다음을 실행합니다.
sudo netplan apply
사용 권한 경고가 발생하면 파일 사용 권한을 조정합니다.
sudo chmod 600 /etc/netplan/51-lacp-config.yaml
sudo netplan apply
cisco-tac@C885A-M8:~$ sudo netplan apply
** (generate:140701): WARNING **: 17:10:58.313: Permissions for /etc/netplan/51-lacp-config.yaml are too open. Netplan configuration should NOT be accessible by others.
cisco-tac@C885A-M8:~$ ls -l /etc/netplan/
total 16
-rw------- 1 root root 869 Apr 24 14:26 50-cloud-init.yaml
-rw-r--r-- 1 root root 586 Apr 25 17:10 51-lacp-config.yaml
cisco-tac@C885A-M8:~$ sudo chmod 600 /etc/netplan/51-lacp-config.yaml
cisco-tac@C885A-M8:~$ ls -l /etc/netplan/
total 16
-rw------- 1 root root 869 Apr 24 14:26 50-cloud-init.yaml
-rw------- 1 root root 586 Apr 25 17:10 51-lacp-config.yaml
cisco-tac@C885A-M8:~$ sudo netplan apply
다음을 확인합니다.
Netplan 컨피그레이션을 적용하고 시스템을 다시 시작한 후 명령을 사용하여 LACP 설정이 예상대로 작동하는지 확인합니다.
1. 네트워크 인터페이스 세부사항 확인
이 명령을 사용하여 네트워크 인터페이스의 상태를 표시할 수 있습니다.
cisco-tac@C885A-M8:~$ip link show
4: ens211f0np0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9000 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
link/ether 86:a2:e3:01:3d:f2 brd ff:ff:ff:ff:ff:ff permaddr 5c:25:73:3a:9a:fc
altname enp69s0f0np0
5: ens211f1np1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9000 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
link/ether 86:a2:e3:01:3d:f2 brd ff:ff:ff:ff:ff:ff permaddr 5c:25:73:3a:9a:fd
altname enp69s0f1np1
인터페이스(ens211f0np0 및 ens211f1np1)에 다음이 표시되는지 확인합니다.
- 마스터가 bond0으로 설정되어 연결된 인터페이스에 속하는지 확인합니다.
- 인터페이스가 활성 상태인지 확인하면서 UP로 지정합니다.
- YAML 파일에 지정된 대로 mtu 값이 9000으로 설정되었는지 확인합니다.
- 두 인터페이스에 모두 유효한 하드웨어 주소(permaddr)가 있는지 확인합니다.
2. 연결 세부사항 확인
다음 명령을 사용하여 연결 컨피그레이션을 표시하고 LACP의 기능을 적절하게 유지할 수 있습니다.
cisco-tac@C885A-M8:~$cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v5.15.0-141-generic
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0
802.3ad info
LACP active: on
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
Slave Interface: ens211f1np1
MII Status: up
Speed: ****** Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 5c:25:73:3a:9a:fd
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
Slave Interface: ens211f0np0
MII Status: up
Speed: ****** Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 5c:25:73:3a:9a:fc
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
Bonding Mode(본딩 모드)가 IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 동적 링크 어그리게이션)으로 설정되어 있는지 확인합니다.
- LACP 활성: on은 LACP가 활성화되었음을 나타냅니다.
- LACP 속도: 느림은 구성된 LACP 속도를 반영하지만 설정에 따라 다를 수 있습니다.
- 슬레이브 인터페이스를 확인합니다. ens211f0np0 및 ens211f1np1은 모두 결합 아래에서 슬레이브 인터페이스로 나타날 수 있습니다.
- MII 상태: 링크가 활성 상태인지 확인합니다.
- 영구 HW 주소 값은 각 인터페이스의 하드웨어 주소와 일치해야 합니다.
- 두 슬레이브 인터페이스가 모두 동일한 어그리게이터 ID의 일부인지 확인합니다(예: 어그리게이터 ID: 1).
문제 해결
확인 결과가 예상과 일치하지 않는 경우
- Netplan YAML 컨피그레이션 파일에서 오류 또는 누락된 매개변수를 확인합니다.
- 업스트림 스위치에서 적절한 LACP 지원 및 컨피그레이션을 확인합니다.
- sudo netplan apply 명령이 성공적으로 완료되었는지 확인합니다.
Cisco UCS C885A M8 Rack Server 데이터 시트
UCS C885A M8 Rack Server 사양표