태그 보관물: RHEL

Network Bonding Configuration

What is bonding?

  • 2개 이상의 물리적인 NIC(Network Interface Card)를 논리적인 NIC 1개로 묶어서 대역폭을 확장하거나 Active/Standby 구조로 구성하여 특정 NIC의 고장 또는 케이블의 단절로 인한 Disconnect를 예방하여 고가용성(High Availability) 또는 내결함성(Fault Tolerance)를 보장해줍니다.

Configuration

  • RHEL(CentOS) 7 & 6
// Bonding Interface 정의
# vi /etc/modprobe.d/bonding.conf
alias bond0 bonding

# vi /etc/sysconfig/network-script/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.12.117
NETMASK=255.255.255.0
GATEWAY=192.168.12.1
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"
※BONDING_OPTS에 primary=eth0 추가 하여 인터페이스 우선 순위 설정

// Bonding으로 묶을 NIC들의 설정 변경
# vi/etc/sysconfig/network-script/ifcfg-eth0
TYPE=Ethernet
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no

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

// CentOS 7 서비스 재시작
# systemctl restart network

// CentOS 6 서비스 재시작
# service network restart
  • Common Configuration(BONDING_OPTS=mode)
0 balance-rr : (Round Robin) Load Balancing, 송신할 패킷마다 사용하는 물리적 NIC를 순차 변경
1 active-backup: Fault-Tolerance, bond내에서 한개의 Slave만 사용, 해당 NIC에 문제가 발생할 경우 다른 Slave가 Enable
2 balance-xor : Load Balancing, 소스와 목적지의 MAC을 XOR 연산을 통해 사용할 NIC를 결정하여 분배
3 Broadcast : Fault-Tolerance, 모든 Slave로 데이터전송(failover), 일반적으로는 잘 사용안함.
4 802.3ad : Dynamic Link Aggregation, IEEE 802.3ad 프로토콜을 이용하여 동적 Aggregation 작성 대역폭 상승, 부하 분산, Failover 지원(Switch LACP 구성 필요)
5 balance-tlb(TLB) : 적응형 송신 부하 분산, 송신패킷 로드밸런싱, 송신시 부하가 낮은 NIC이용 수신은 특정 NIC이용
6 balance-alb(ALB) : 적응형 부하 분산, 송수신패킷 로드밸런싱, 송수신시 부하가 낮은 NIC를 사용

miimon=100 : NIC가 활성화되어 있는지 확인하는 단위 시간 0.1초
  • RHEL(CentOS) 5
// Bonding Interface 정의
# vi /etc/modprobe.conf
alias bond0 bonding
alias bond1 bonding

// NIC 설정 방식 동일

// 서비스 재시작
# service network restart
  • Network Manager 서비스가 기동중일 경우 설정중인 파일이 서비스 재기동과 관계 없이 반영될 수 있으므로 Network Manager 서비스를 종료 후 작업을 추천 드립니다.
// CentOS 7 서비스 재시작
# systemctl stop NetworkManager

// CentOS 6 서비스 재시작
# service NetworkManager stop
  • bonding 상태 확인
# cat /proc/net/bonding/bond0
# ethtool bond0
Bonding Mode와 Slave NIC의 상태를 확인 가능

리눅스 Shell 및 ssh 계정 잠금 설정

  • 콘솔 및 원격 접속(ssh)시 로그인 실패시 계정 잠금 설정
  • pam_tally.so와 pam_tally2.so은 기본값 및 옵션 차이가 있음
// CentOS 5.X 버전 이하용
# /etc/pam.d/system-auth , /etc/pam.d/password-auth 에 이하 설정 추가

// 3회 입력 실패시 계정이 잠기며 잠금 초기화 간격은 2분, root 계정은 잠기지 않고 로그인이 성공하면 실패 횟수는 초기화
auth required pam_tally.so no_magic_root deny=3 unlock_time=120
account required pam_tally.so no_magic_root reset
// CentOS 6.X 버전 이상부터는 pam_tally2.so를 사용할 수 있으므로 이하 설정 권고
# /etc/pam.d/system-auth , /etc/pam.d/password-auth 에 이하 설정 추가

// 3회 입력 실패시 계정이 잠기며 잠금 초기화 간격은 2분, 기본적으로 root 계정은 잠기지 않고 성공하면 실패 횟수는 초기화됨
// even_deny_root 인수를 사용하게 되면 root 비밀번호 입력 실패시 계정이 잠길 수 있음
auth required pam_tally2.so deny=3 unlock_time=120
account required pam_tally2.so