이 문서에서는 CentOS7에서 네트워크 인터페이스의 이중화라고 할 수 있는 Bonding을 구성하는 방법에 대해서 설명드리도록 하겠습니다.
Network Bonding이란
Linux kernel 내장된 기술로 2개 이상의 Network Interface Card를 논리적으로 하나의 interface 로 묶어서 NIC의 물리적 장애에 대응하거나나 처리량을 늘리는 기술입니다.
두개의 물리적 인터페이스를 하나로 묶는다
Bonded 된 네트워크 인터페이스는 몇가지 방식을 동작 방식을 설정하여 사용할 수 있고 이는 아래 얘기하겠습니다.
Bonding 모듈 로드
CentOS 7 에서는 bonding 모듈이 기본적으로 로드가 되어 있지 않습니다. 아래 명령을 통해 boning 모듈을 로드합니다.
modprobe --first-time bonding
Bond 인터페이스 생성
Bond Interface 생성 Bond Interface 생성을 하기위해서는 /etc/sysconfig/network-scripts/ 의 ifcfg-bond0 파일을 생성해야됩니다.
cat /etc/sysconfig/network-scripts/ifcfg-bond0
ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
IPADDR=10.0.0.1
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=1 miimon=100"
1st/2st Interface 생성
SLAVE Interface 생성 bond Interface 의 SLAVE Interface 파일을 생성합니다.
/etc/sysconfig/network-scripts/ 의 ifcfg-eth1 과 ifcfg-eth2 를 수정합니다.
cat ifcfg-eth1
ifcfg-eth1
DEVICE=eth1
NAME=eth1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
동일한 작업을 ifcfg-eth2에도 진행한다.
cat ifcfg-eth2
ifcfg-eth2
DEVICE=eth2
NAME=eth2
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
네트워크 서비스 재시작
이후 네트워크 서비스를 재시작하면 적용됩니다.
systemctl restart network
Bonding Option
Bonding 인터페이스에는 몇가지 옵션을 통해 이중화 모드를 운영할 수 있습니다.
가장 많이 사용되는 방식은 Active-Stanby 모드이다. 그럼 현재 운영중이 모드를 먼저 확인해 봅시다.
Bonding Interface 확인
본딩 인터페이스는 아래 cat /sys/class/net/bonding_masters 파일을 통해 인터페이스를 확인 할 수 있습니다. 그리고 해당 인터페이스의 구성은 커널의 /sys/class/net/bond<N>/bonding/ 에서 Bonding 인터페이스 관련된 파라메터를 수정할 수 있습니다.
cat /sys/class/net/bonding_masters
위 명렁으로 확인된 인터페이스의 모드는 /sys/class/net/bond<N>/bonding/mode에서 수정이 가능합니다.
Boding Interface 수정
Bonding Interface 수정을 위해서 인터페이스를 중지합니다.
ifconfig bond0 down
그리고 Active-Stanby 모드로 수정합니다.
echo balance-alb > /sys/class/net/bond0/bonding/mode
설정이 완료되었다면, 다시 Bonding Interface를 시작 합니다.
ifconfig bond0 up
balance-rr or 0
내결함성 및로드 균형 조정을위한 라운드 로빈 정책을 설정합니다. 전송은 사용 가능한 첫 번째 인터페이스부터 시작하여 각 본드 슬레이브 인터페이스에서 순차적으로 수신 및 전송됩니다. 2회선 모두 사용하는 방식으로 물리적 부하를 분산할 수 있습니다.
active-backup or 1
내결함성에 대한 활성 백업 정책을 설정합니다. 전송은 사용 가능한 첫 번째 본드 슬레이브 인터페이스를 통해 수신 및 전송됩니다. 다른 본드 슬레이브 인터페이스는 활성 본드 슬레이브 인터페이스가 실패한 경우에만 사용됩니다. 제일 안정성이 높고, 일반적으로 많이 사용되는 방식입니다.
balance-xor or 2
내결함성 및로드 균형 조정에 대한 XOR (독점 또는 정책) 정책을 설정합니다. 이 방법을 사용하여 인터페이스는 들어오는 요청의 MAC 주소를 슬레이브 NIC 중 하나의 MAC 주소와 일치시킵니다. 이 링크가 설정되면 사용 가능한 첫 번째 인터페이스부터 순차적으로 전송이 전송됩니다.
broadcast or 3
내결함성에 대한 브로드 캐스트 정책을 설정합니다. 모든 전송은 모든 슬레이브 인터페이스로 전송됩니다.
802.3ad or 4
IEEE 802.3ad 동적 링크 집계 정책을 설정합니다. 동일한 속도 및 이중 설정을 공유하는 집계 그룹을 만듭니다. 활성 어 그리 게이터의 모든 슬레이브에서 송수신합니다. 802.3ad 호환 스위치가 필요합니다.
balance-tlb or 5
내결함성 및 부하 분산에 대한 TLB (Transmit Load Balancing) 정책을 설정합니다. 발신 트래픽은 각 슬레이브 인터페이스의 현재로드에 따라 분산됩니다. 들어오는 트래픽은 현재 슬레이브에 의해 수신됩니다. 수신 슬레이브에 장애가 발생하면 다른 슬레이브가 장애가 발생한 슬레이브의 MAC 주소를 인계받습니다.
balance-alb or 6
내결함성 및로드 균형 조정에 대한 활성로드 균형 조정 (ALB) 정책을 설정합니다. IPV4 트래픽에 대한 전송 및 수신로드 밸런싱을 포함합니다. 수신로드 밸런싱은 ARP 협상을 통해 달성됩니다.
보다 제세한 사항은 아래 공식 문서를 참고하는것이 좋습니다.
Reference
'Linux' 카테고리의 다른 글
Linux - 삭제 예정 파일 찾기(deleted), df 용량 이슈 (0) | 2024.02.22 |
---|---|
리눅스 - 1-1024 PORT(Well-Know-Ports) 사용방법 3가지(SetUid, IPTables, Capabilities) (0) | 2024.02.21 |
리눅스 - Crontab 로그 남기는 방법 3가지(리다이렉션, syslog, cronolog) (0) | 2024.02.21 |
CentOS7 - 고정 IP 설정하기 (0) | 2024.02.20 |
Letsencrypt - renew(갱신) 오류 해결 (0) | 2024.02.20 |