엔지니어 은성의 성장록

[Bonding] Ubuntu [20.04]Version에서 (일시적, 영구적인)네트워크 본딩 설정방법 본문

서버/리눅스

[Bonding] Ubuntu [20.04]Version에서 (일시적, 영구적인)네트워크 본딩 설정방법

엔지니어 은성 2021. 9. 3. 11:55

가장 먼저 준비되어야 하는 것은 사용자 계정이 있어야 하고, 두 개 이상의 인터페이스 어댑터가 이용 가능해야 합니다.

▶Temporary bonding

가장 먼저 본딩 모듈을 설치해야 합니다.  리눅스에서 빠르게 command- line shell을 여는 방법은

Ctrl  + Alt + T이니 잊지 마세요~!  

$ sudo modprobe bonding 

modprobe 명령어를 설명해드리겠습니다. modprobe 명령어는 리눅스 프로그램으로서 적재 가능 커널 모듈(LKM)을 리눅스 커널에 추가하거나 커널로부터 제거하는 데 사용됩니다. modprobe는 기본적인 유틸리티인 insmod와 rmmod보다 더 완전한 다용도 적인 특징을 갖습니다.

 

bonding 모듈 설치

$ lsmod | grep bond

- 본딩 모듈 설치 확인

본딩이 없다면 ifenslave package를 설치해야 합니다. 아래와 같은 명령어를 통해 ifenslave 패키지를 설치할 수 있습니다.

 

$ sudo apt install ifenslave

일시적 네트워크 본딩

일시적 네트워크 본딩은 오직 다음에 reboot 할 때까지만 유효합니다.

즉 만약 시스템을 reboot 하거나 재시작하면 이 본딩이 사라지게 됩니다. 먼저 본딩이 이루어지기 위해 시스템에 얼마나 많은 인터페이스가 가능한지 확인해야 합니다. 이를 위해 알 와 같은 명령어로 체크하게 됩니다. 

$ sudo ifconfig

- 네트워크 인터페이스 확인

네트워크 인터페이스 비활성화

# sudo ifconfig enp0s3 down
# sudo ifconfig enp0s8 down

 

다음으로 ip link 명령어를 통해 마스터 노드 bond0에 본드 네트워크를 만들면서 본딩 모드 설정

$ sudo ip link add bond0 type bond mode 802.3ad

 

본드 네트워크 본드 생성 이후, 두 개의 인터페이스를 마스터 노드에 추가합니다.

$ sudo ip link  set enp0s3 master bond0

$ sudo ip link  set enp0s8 master bond0

다음으로 아래 쿼리를 사용하여 네트워크 본딩의 형성을 확인할 수 있습니다.

$ sudo ip link  

sudo ip link 명령어 

ip 명령어 사용방법은 sudo ip [옵션] object [대상] command

ip 명령어 option과 object 에는 다음과 같은 목록이 있습니다.

옵션 설명
link 모든 네트워크 인터페이스의 상태를 관리하고 출력함
address ip주소와 ip주소의 특징에 대한 정보를 출력
route  라우팅 테이블을 변경하거나 출력
maddr 멀티캐스트 ip주소를 관리하고 출력함

 

 

▶Permanent bonding 

그렇다면 영구적인 네트워크 본딩은 어떻게 하는 것일까요?

영구적인 네트워크 본딩을 원한다면 네트워크 인터페이스 설정 파일이 변경되어야만 합니다.

그래서 GNU 나노 에디터의 파일을 한번 열어보도록 하겠습니다.

$ sudo nano /etc/network/interfaces

위에 문장을 입력해주고 파일을 저장하고 나옵니다. cat 하고 나노 편집기에서 작업한 파일 변경내용을 보니 변경이 잘 된 것을 확인할 수 있었습니다.

 

영구적인 본딩 또한 두 개의 slave 네트워크 인터페이스를 비활성화하고 본드 0을 활성화하는 것부터 시작하겠습니다.

$ sudo ifconfig enp0s3 down && sudo ifconfig enp0s8 down && sudo ifconfig bond0 up

다음으로 네트워크 서비스를 재시작해줍니다.

$ sudo systemctl restart networking.service

* 위의 명령어가 되지 않을 때는 아래 명령어를 통해 네트워크 서비스를 재시작할 수 있습니다.

$ sudo systemctl restart network-manager.service

다음으로 master interface가 up 상태인지 아래 쿼리를 통해 확인할 수 있습니다.

$ sudo ifconfig bond0

 

또 새롭게 만들어진 네트워크 본드가 성공적으로 만들어졌는지 확인해보도록 하겠습니다.

 $ sudo cat /proc/net/bonding/bond0

 

Bonding Mode로 네트워크 본드가 만들어졌는지 확인하였습니다. 긴 글 읽어주셔서 감사합니다! 

Comments