LINUX(Server)

Bonding

천천히, 한 걸음씩 2024. 4. 22. 09:58

Bonding

- 네트워크 카드 ( NIC ) 이중화


① 테스트
( 네트워크 설정이후 혹은 환경변수 이후로 스냅샷 )

Server-A -> Settings -> Add -> Network Adaptor추가(NAT)

#ifconfig -a // 모든 장치 확인
   eth0 , eth1 확인


#vi /etc/sysconfig/network-scripts/ifcfg-eth0
-----------------------------------------------
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static

IPADDR=100.100.100.100
NETMASK=255.255.255.0
GATEWAY=100.100.100.2
DNS1=8.8.8.8
DNS2=8.8.4.4

:wq! // 위와 같이 수정후 저장 및 종료
-------------------------------------------------

#service network restart
#ifconfig -a
#ping 8.8.8.8 //외부와 통신가능한지 확인(가능)


#vi /etc/sysconfig/network-scripts/ifcfg-eth1
-----------------------------------------------
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static

IPADDR=100.100.100.110
NETMASK=255.255.255.0
GATEWAY=100.100.100.2
DNS1=8.8.8.8
DNS2=8.8.4.4

:wq! // 위와 같이 수정후 저장 및 종료
-------------------------------------------------

#service network restart
#ifconfig -a
#ping 8.8.8.8 //외부와 통신가능한지 확인(가능)


오른쪽 하단에 네트워크어댑터 연결을 번갈아가면서
connect , disconnect로 확인   //eth0 네트워크 카드에서만 통신 가능

 


② 이중화를 위한 인터페이스 설정 파일 수정
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
-----------------------------------------------
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
SLAVE=yes // bonding의 구성멤버로 동작
MASTER=bond0 // 주체의 장치명 : bond0

:wq! // 위와 같이 수정후 저장 및 종료
-------------------------------------------------



#vi /etc/sysconfig/network-scripts/ifcfg-eth1
-----------------------------------------------
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
SLAVE=yes
MASTER=bond0

:wq! // 위와 같이 수정후 저장 및 종료
-------------------------------------------------



#vi /etc/sysconfig/network-scripts/ifcfg-bond0
-----------------------------------------------
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
USERCTL=no // 일반 유저가 컨트롤 할 수 없음 ( root권한 필요 )


IPADDR=100.100.100.100
NETMASK=255.255.255.0
GATEWAY=100.100.100.2
DNS1=8.8.8.8
DNS2=8.8.4.4

BONDING_MASTER=yes  // 실제 본딩에 사용되는 장치
BONDING_OPTS="mode=1 miimon=100"

//mode=1 (active-backup)
  일반 기업들이 많이 쓴다.
  활성화되어있는 NIC에 문제가 발생시
  예비 NIC로 변경되는 기능

//miimon=100 모니터링 주기 ( 단위:ms )
  

:wq! // 위와 같이 수정후 저장 및 종료
-------------------------------------------------

 


③ bonding.conf 파일 생성
#vi /etc/modprobe.d/bonding.conf // 커널에게 전달할 본딩 설정이 저장된 파일
    // 해당 디렉터리에 위치한 *.conf파일의 내용을
   커널이 읽어들여 시스템에 기능을 추가한다.

-------------------------------------
alias bond0 bonding // 본딩 모듈의 이름이 bonding이지만
                                       bond0이름으로 사용하기 위해서 alias를 사용

options bond0 mode=1 miimon=100 // ifcfg-bond0파일에 추가한 옵션과 동일
   둘중의 하나의 파일에만 작성해도 옵션은 적용된다.
:wq!
--------------------------------------

 


④ 커널에 본딩 기능 추가
#modprobe bond0 // 커널에 기능을 추가
// 정상적일 경우 메세지 x
// 원격에서 작업할 경우 연결이 해제된다.

#lsmod | grep "bonding" // 커널에 기능이 추가되었는지 확인하는 명령어


⑤ 네트워크 재시작 혹은 재부팅
#service network restart   or   #reboot


⑥ 설정 확인
6-1) 

#ifconfig -a    // eth0 , eth1 , bond0을 확인
// bond0에 IP주소 할당
   eth0 , eth1에는 IP주소 할당x

6-2)
#cat /proc/net/bonding/bond0

Bonding Mode: fault-tolerance (active-backup) // mode=1 , 장애 대비
Currently Active Slave: eth0   // 현재 활성화 되어있는 장치명
MII Status: up   // 모니터링 상태
MII Polling Interval (ms): 100   // 모니터링 주기


Slave Interface: eth0 // 본딩을 구성한 실제 장치1
Link Failure Count: 0 // 장치의 링크가 비활성화 된 횟수


Slave Interface: eth1   // 본딩을 구성한 실제 장치2
Link Failure Count: 0


⑦ 절체 테스트
@(VMware , Server-A) root
#ping 8.8.8.8 // 실시간 통신 테스트

@(Xshell, Server-A) root
#watch -d -n 0.1 "cat /proc/net/bonding/bond0" // 실시간 모니터링


VMWare 오른쪽 하단에 네트워크 어댑터를 번갈아가면서
Connect , Disconnect로 테스트 // 두 장치가 비활성화가 되지 않는다면
                                       모두 통신 가능

+@실무에서는 랜선을 번갈아가면서 랜카드의 포트와 탈부착

'LINUX(Server)' 카테고리의 다른 글

Samba  (0) 2024.04.24
NC , Telnet , SSH , VNC  (1) 2024.04.23
네트워크 기초  (0) 2024.04.21
패키지 관리  (4) 2024.04.20
파일시스템 관리  (4) 2024.04.19