[Linux] 리눅스 ip binding / channel bonding 설정
IP Binding
하나의 NIC에 여러개의 IP주소를 할당하는 기술
한대의 서버에서 여러개의 서비스를 운영하는데 각각 서로 다른 IP주소로 서비스 하고자 할 때 사용
하지만 systemctl restart network 하면 사라진다
영구적으로 유지시키려면
Channel Bonding
여러개의 NIC를 하나로 묶어 단일 체널 형식으로 운영하는 것
채널 본딩을 구현 할 경우 Fault tolerance 환경을 구축할 수 있으며, 네트워크 인터페이스에 대한 redundancy를 구현 가능
부하도가 많은 장치의 경우 채널 본딩을 통한 네트워크 트래픽에 대한 load balacing을 구현 가능
load balancing은 네트워크 인터페이스 카드의 대역폭을 균형있게 사용하여 전체 네트워크 트래픽에 대한 각 장치의 부하도를 감소시킬 수 있다.
Fault tolerance 란 한쪽 장치에 문제가 발생하더라도 반대쪽 장치에서 그 기능을 온전히 수행 하므로, 전체 시스템 운영에는 문제가 발생하지 않는 환경을 말한다.
[MODE 0](default) : Balance-rr(round robin)
로드밸런싱 구현 가능 전체 NIC에 대한 순환 통신을 진행하고, 데이터 전송시에만 부하분산 진행
[MODE 1] : Active-Backup
Failover, Bond 내의 하나의 NIC만 통신, Main NIC에 문제가 발생했을경우 Bond내의 대체 NIC가 통신을 수행
[MODE 4] : 802.3ad(LACP)
Failover, 동적 부하분산, NIC대역폭 확장통신 (IEEE 802.3ad 통신을 지원하는 스위치와 연결되어 있을 경우 사용 가능)
Channel Bonding [mode 1]
직접 설정파일을 편집해서 설정하는 방법
ens32, ens34를 bond0(192.168.1.150)로 묶음
1. bonding module 활성화
# modprobe --first-time bonding
2. 설정 파일 편집
/etc/sysconfig/network-scripts/ifcfg-bond0
mode=1
100 milli sec 단위로 monitoring
/etc/sysconfig/network-scripts/ifcfg-ens32
/etc/sysconfig/network-scripts/ifcfg-ens34
3. network 재시작
# systemctl restart network
4. 확인
강제로 ens32를 다운시키면
자동으로 ens34로 연결하는걸 확인할 수 있다.
Channel Bonding [mode 1]
NetworkManager 명령어를 사용해서 설정하는 방법
# ifconfig ens32 down
# ifconfig ens34 down
# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ip4 192.168.1.150/24
# nmcli con mod id bond0 bond.options mode=active-backup.miimon=100
# nmcli conn del ens32
# nmcli conn del ens34
# nmcli conn add type bond-slave ifname ens32 con-name ens32 master bond0
# nmcli conn add type bond-slave ifname ens34 con-name ens34 master bond0
# systemctl restart NetworkManager
같은 설정이지만 방법이 여러가지이다.