OS 및 스토리지/Linux
[Linux][RHEL/CentOS 7] Teaming 구성
Cloud Engineer
2022. 3. 6. 13:43
1. 들어가기 전
과거에는 네트워크 인터페이스를 이중화할 때 Bonding을 바탕으로 구성했습니다. 다만 Bonding 구성 시, Network에 영향받지 않게 NetworkManager를 종료 후 구성해야됬습니다. 하지만 Redhat 7 이상부터 Teaming을 사용하여 네트워크 인터페이스 이중화하게 되었습니다. Bonding과 다르게 Teaming은 NetworkManger 종료 없이 해당 데몬을 사용하여 구성할 수 있게 되었습니다. 본 포스팅에서는 NetworkManager를 사용하여 Teaming을 구성하는 방식에 대해 알아보겠습니다.
2. 구성도
3. 구성방식
3-1. Pre-Requirements
- 물리적 네트워크 인터페이스 2개 (ex - ens35, ens36)
- NetworkManager 패키지 설치
3-2. ens35, ens36을 team0이라는 가상 인터페이스로 이중화
3-2-1. OS에 구성된 네트워크 인터페이스 확인
$ nmcli device status
3-2-2. teaming 생성
- connection name : team0
- interface name : team0
- interface type : team
- 이중화 방식 : activebackup
team 이중화 방식 종류
이중화 종류 | 설명 |
activebackup | Active-StandBy 모드 |
loadbalance | Hash Function 기반의 로드밸런싱 |
broadcast | Active-Active 모드 기반이며, 모든 포트로 패킷 전송 |
roundrobin | Active-Active 몯 ㅡ기반이며, Round-Robin 방식의 패킷 전송 |
$ nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}'
3-2-3. team이 정상적으로 구성되었는지 확인
$ nmcli conenction show
3-2-4. 2개의 물리적 네트워크 인터페이스를 Team Port로 설정
$ nmcli connection add con-name team0-port1 type team-slave ifname ens35 master team0
$ nmcli connection add con-name team0-port2 type team-slave ifname ens36 master team0
3-2-5. Team Device에 IP 할당
$ nmcli connection modify team0 ipv4.addresses 172.16.10.5/24 ipv4.method manual
3-2-6. 네트워크 서비스 재시작
$ systemctl restart network
$ systemctl restart NetworkManager
3-2-7. Team 구성 확인
# team 구성 상태 확인
$ teamdctl team0 state
# team에 구성된 포트 확인
$ teamnl team0 ports
# 현재 team에 활성화 되어있는 port 확인
$ teamnl team0 getoption activeport
3-3. 이중화 테스트
# Active 상태인 포트 연결 중단
$ nmcli device disconnect ens35
# Active Port가 변경되었는지 확인
$ teamdctl team0 state
# 포트 정상화
$ nmcli device connect ens35
# team 구성 상태 확인
$ teamdctl team0 state