2024-04-30 11:39:25
728x90

 

728x90

네트워크 본딩(Network Bonding)은 여러개의 네트워크 인터페이스를 하나의 인터페이스로 묶는 기술이다. 두 개 이상의 네트워크 인터페이스를 하나로 묶어 대역폭(Bandwidth)을 확장하거나 하나의 주소에 대해 Active/Stanby 구성을 하기 위해 사용한다.
 

 
네트워크 이중화 설정을 위해 가상 머신의 네트워크 어댑터를 추가한다.
 

 
ip a | grep -i en 명령어로 네트워크 인터페이스 추가가 되었는지 확인한다.
default는 ens192고 추가된게 ens224이다.
리눅스 서버에서 네트워크 인터페이스 ens192와 ens224를 통해서 Active/Stanby 형태로 네트워크 이중화 구성을 한다.
 

 
추가한 네트워크 설정과 구성파일 생성을 위해 nmtui 명령어로 네트워크를 설정한다.
추가된 네트워크는 wired connection 1로 이름이 지정 되어있는데 ens224로 변경한다.
네트워크 설정값을 입력하면 OK. ens224로 변경되었는지 확인
 

 
Activate a connection 메뉴로 들어가 ens224의 네트워크 상태를 Activate로 변경 후 nmtui를 종료한다.
 

 
ip a 명령어로 IP가 할당되었는지 확인
 
ls /etc/sysconfig/network-scripts/ | grep -i en 명령어로 ens224의 네트워크 구성 파일이 생성 되었는지 확인
 

 
Network Bonding 구성을 하기전에 NetworkManager가 활성화 되어있다면 잠시 기능을 비활성화 한다.
systemctl stop NetworkManager 명령어로 NetworkManager를 중지하고 disable 한다.
systemctl status NetworkManager | grep -i active 명령어로 NetworkManager가 비활성화 된 것을 확인
 

 
cd /etc/sysconfig/network-scripts/
네트워크 구성 디렉토리로 이동
 

 
vi ifcfg-bond0
vi 편집기를 통해 bonding 구성 파일을 생성하고 내용 추가, 이름과 IP는 요청대로 입력해주면 된다.
 
# 참고
Bonding Mode 설명

0(Round Robin) : bonding 인터페이스에 묶인 포트(SLAVE)에 순차적으로 한 번씩 사용하여 테이터 전송

1(Active-Backup) : bonding 인터페이스에 묶인 포트(SLAVE) 중 한 포트씩 우선 사용하는데 장애가 발생하면 다른 포트 사용

2(Balance-XOR) : XOR 연산하여 MAC기반으로 포트를 정해서 데이터 전송

3(Broadcast) : bonding 인터페이스에 묶인 포트(SLAVE)에 모두 데이터 전송

4(802.3ad(LACP) : EEE 802.3ad 프로토콜에 따라 포트를 선정하여 데이터 전송

5(Balance-TLB) : 송신 패킷 로드밸런싱, 송신 시 부하가 낮은 포트(SLAVE)를 이용하여 데이터 전송

6(Balance-ALB) : 송수신 패킷 로드밸런싱, 송수신시 부하가 낮은 포트(SLAVE)를 이용하여 데이터 전송

Bonding 파라미터 설명

ONBOOT=yes : 부팅 시 디바이스 활성화

NM_CONTROLLED=no : network manager 활성화 안 함

BOOTPROTO=none : 디바이스 정보를 “static”, “dhcp”로 적용 여부

USERCTL=no : 일반 유저가 해당 디바이스를 컨트롤하지 못함

LAN Card status 설정 설명

million

- 랜카드가 정상적으로 작동을 하는지에 대한 여부를 체크하는 옵션(default:0)

- 링크 감시 여부로 100ms로 설정
 
 

 
vi ifcfg-ens192
vi ifcfg-ens224
 
vi 편집기로 ens192,224 구성 파일을 열어 MASTER=bond0 SLAVE= yes 내용 추가
사진에는 BOOTPROTO=static 이라고 되어있는데 none으로 변경해야 bonding 상태가 SLAVE로 설정되었다..
 

 
vi /etc/modprobe.d/bonding.conf
 
/etc/modprobe.d/ 에 bonding 파일을 생성하여 alias 별칭으로 bond0 bonding 이라고 가칭과 함께 options 항목을 설정한다.
 

 
modprobe bond0 명령어로 conf 파일을 적용 후 lsmod 명령어를 통해서 확인한다.
 

 

systemctl start NetworkManager
systemctl start network
NetworkManager와 network 인터페이스를 활성화 해주고
systemctl status network 명령어로 상태 확인
 

 
cat /proc/net/bonding/bond0 명령어로 bond0 파일을 보게 되면
현재 Bonding의 구성은 Active/Stanby 모드로 되어있고
Primary가 ens192, Slaver가 ens192,224로 구성이 되어있는 것을 확인할 수 있으며 해당 내용은 네트워크 링크 상태의 여부에 따라 변경이 될 수 있다.
 

 

ens192와 ens224 두 개의 adapter에서 ens224의 상태를 Down 시켜보도록 한다.
ifconfig ens224 down 명령어로 ens224의 상태를 Down 시키고
cat /proc/net/bonding/bond0 명령어로 bonding 상태를 확인하여 ens224의 status 가 down인지 확인
 

 

ethtool ens192(ens224) | grep -i detect
ethtool 명령어를 보게 되면 Link detected 상태가
ens192의 경우는 yes ens224의 경우는 no인 상태를 확인할 수 있고 한쪽 어댑터의 링크가 down인 상태에서도 ping 명령어로 게이트웨이에 테스트를 했을 때 패킷이 빠지지 않고 정상적인 통신을 하고있는 것을 확인할 수 있다.
 

 

ifconfig ens224 up 명령어를 통해 원복 후
ifconfig ens192 down 명령어로 ens192 네트워크를 down 시킨다.
기본적으로 시스템 가용성을 보장하기 위해 양쪽 어댑터의 테스트를 진행한다.
cat /proc/net/bonding/bond0 파일을 확인하니
Primary 어탭터가 ens192에서 ens224로 변경이 되었고
Slaver Interface 상태에서 ens192의 경우 MII Status 상태가 Down으로 변경되었다.
 

 

ethtool 명령어로 다시 확인하니 ens192의 상태가 down이면서 ens224의 상태가 up으로 마찬가지로 한쪽 인터페이스의 상태가 Down 상태에서도 ping 테스트를 통해서 정상 패킷 통신이 되는 것을 확인할 수 있다.
 

 

마지막으로 재부팅을 하기전에
systemctl enable network 명령어로 재부팅 후에도 데몬이 자동으로 기동 될 수 있도록 설정한다.

728x90

'Linux' 카테고리의 다른 글

MegaRAID  (0) 2024.05.24
Linux 점검 명령어 모음  (1) 2024.05.21
Linux 파일 시스템의 계층 구조  (0) 2024.04.25
CentOS7,8 SoftWare Selection  (0) 2024.04.24
리눅스 커널(Kernel), 쉘(Shell)  (0) 2024.03.27