관리 메뉴

IT창고

리눅스 본딩(Bonding) 본문

서버운영/Linux

리눅스 본딩(Bonding)

방구석여포 2017. 9. 16. 00:00

리눅스서버를 사용하면 네트워크를 연결하고 서비스를 하는데 네트워크 카드가 망가지거나 오류가 날수있습니다.

본딩(Bonding)은 리눅스에서 네트워크 카드를 두개 이상 사용해야만 사용할수있고 네트워크 카드(MIC)를 이중화할 수 있습니다. bonding의 장점은 대역폭을 확장할수있고 네트워크 카드가 하나 망가지면 다른 하나로 대처할수 있습니다.


본딩(bonding)을 설정하는 법을 알아보겠습니다. 본딩을 고정ip로 잡아보겠습니다.

1. 본딩을 사용하기위해서 네트워크 카드가 2개를 추가합니다.

만약 VMware를 사용한다면 Settings에 들어가 Add를 누르면 네트워크 어뎁터 추가가 있습니다. 거기서 NAT로 추가해줍니다. ifconfig -a을 입력해서 네트워크 카드가 추가 됬는지 확인해봅니다(eth1 확인)


2.네트워크 설정 파일을 수정 및 생성합니다.

cd /etc/sysconfig/network-scripts 의 디렉토리로 들어가서 파일 3개를 생성하고 수정해야합니다. 파일목록은 ifcfg-eth0 , ifcfg-eth1 , ifcfg-bond0 3개의 파일입니다. 아래의 내용을 vi편집기로 수정 및 생성해줍니다.


ifcfg-eth0 파일

DEVICE=eth0 //장치명

TYPE=Ethernet  //통신타입

ONBOOT=yes  //부팅시 활성화 여부

BOOTPROTO=none  //IP할당방식(사용안함)

NM_CONTROLLED=no // 네트워크 매니저 데몬으로 해당장치 제어 여부

SLAVE=yes  // SLAVE bonding 구성멤버로 동작

MASTER=bond0 // MASTER bonding에 실제 사용되는 장치명


ifcfg-eth1 파일  

DEVICE=eth1

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=none

NM_CONTROLLED=no

SLAVE=yes

MASTER=bond0


ifcfg-bond0 파일

DEVICE=bond0

TYPE=Ethernet

BOOTPROTO=static

ONBOOT=yes

USERCTL=no

NM_CONTROLLED=no

IPADDR=100.100.100.110 //bond0에 사용할 IP주소

NETMASK=255.255.255.0 //고정ip를 위한 설정

GATEWAY=100.100.100.2

BONDING_MASTER=yes  // Bonding 주체 여부

BONDING_OPTS="mode=1 miimon=100" // 본딩 옵션 mode=1  (Active/Backup) miimon=100 모니터링 주기 (ms)

DNS1=8.8.8.8

DNS2=8.8.4.4


3.  /etc/modprobe.d/bonding.conf 파일을 생성합니다.

bonding.conf파일은 커널에게 전달할 본딩 설정을 저장하고 있는 파일로 커널은 시스템에 적용할 기능이 있다면 해당 디렉토리에 위치한 .conf파일의 내용을 커널이 읽어 시스템에 작동을 합니다.

vi /etc/modprobe.d/bonding.conf 를 입력해서 맨아래 아래와 같이 입력하고 저장합니다.

alias bond0 bonding

options bond0 mode=1 miimon=100

이 두줄만 추가합니다. 


4. 커널에 본딩(bonding) 기능을 사용합니다.

modprobe bond0 을 입력합니다. modprobe bonding 대신에 bond0를 사용하도록 alias가 설정되고 실제 사용하는 모듈은 bonding입니다. modprobe는 커널에게 사용할 기능(모듈)을 추가해주는 명령어 입니다.


5. 네트워크 데몬을 재시작합니다.

service network restart를 입력해서 본딩설정을 적용해줍니다.


6. 설정을 확인합니다.

먼저 ifconfig로 확인해봅니다. cat /proc/net/bonding/bond0 로 확인해볼수있습니다.

eth0가 네트워크 카드1번 eth1이 네트워크 카드 2번 입니다. 

확인해보면 Active/Backup 모드로 설정되어있고 두개의 네트워크 카드가 본딩으로 설정되어있는 모습을 확인할수있습니다.

7. 본딩 절체 테스트를 해봅니다.

ssh로 세션을 두개 정도 열어두고 하나는 ping으로 계속 신호를 보내고 다른 세션에 watch -d -n 1 "cat /proc/net/bonding/bond0"으로 상태를 계속 확인해볼수있습니다. 실제 물리적 네트워크 카드라면 랜선을 하나 뽑아보고 VMware라면 네트워크 카드 하나를 연결종료해봅니다. 네트워크 카드 하나가 오작동을 해도 정상적으로 네트워크를 사용할수있음을 확인할수있습니다.

'서버운영 > Linux' 카테고리의 다른 글

리눅스 DNS 고급설정  (0) 2017.09.19
리눅스 DNS 설정  (0) 2017.09.18
리눅스 DHCP  (0) 2017.09.15
리눅스 NTP  (0) 2017.09.14
리눅스 원격 접속 프로그램  (0) 2017.09.13
Comments