본문 바로가기
아이티 공부/리눅스

RHEL 7에 티밍(teaming) 설정하는 방법

by Klero 2016. 1. 3.

리눅스에서 본딩을 설정한다는 말은 들어봤어도 티밍을 설정한다는 말은 이번에 처음 들어봤다. 

티밍은 Windows Server에서 네트워크 이중화를 위해 사용하는 줄 알았는데 리눅스에서도 티밍을 설정할 수 있다.

레드햇 7 버전 부터 나왔다. 본딩을 기능적으로 개선하기 위해 티밍이 새로 생겼다고 한다.

티밍이 본딩보다 여러가지 기능이 추가되었으니 자세한 것은 따로 검색을 해보면 될 것 같다.



테스트 환경 : VMware에 설치한 RHEL 7.1 64bit



1. VMware에 네트워크 카드를 2개 추가 한다. 

(그럼 총 네트워크카드가 3개인데 이 중 2개를 티밍으로 설정할 것이다.)


2. [root@RHEL7 Desktop]# ip link 명령어를 입력하여 리눅스 시스템에 이용가능한 인터페이스들의 목록을 확인한다. 

총 4개의 인터페이스가 이용가능하다. 


이 중 3번과 4번의 인터페이스를 티밍으로 묶을 것이다.




3. [root@RHEL7 Desktop]# nmcli device status

디바이스들의 DEVICE , TYPE , STATE , CONNECTION 의 정보를 조회한다.




4. [root@RHEL7 Desktop]# nmcli connection show

네트워크 connection 상태를 확인한다.




5. [root@RHEL7 Desktop]# nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}'

activebackup mode로 티밍 인터페이스를 만든다. 그리고 name을 team0 이라고 명명한다.


(* 설정할 수 있는 mode에는 activebackup , loadbalance , lacp , broadcast , roundrobin 이렇게 5가지가 있다.) 


activebackup : failover runner로 이것은 데이터 전송을 위한 링크 변경을 감시하고 active port를 선택한다.

loadbalance : 트래픽을 모니터링하고 패킷 전송에 대한 포트를 선택할 때 완변학 균형에 도달하기 위해 hash function을 사용한다.

lacp : 802.3ad 링크 aggregation control protocol을 구현한다. loadbalance runner와 동일한 전송 포트를 선택할 수 있다.

broadcast : simple한 runner로 이것은 모든 포트로 부터 각각의 패킷을 전송한다.

roundrobin : simple한 runner로 이것은 각 포트에서 라운드 로빈 방식으로 각각의 패킷을 전송한다.



[root@RHEL7 Desktop]# nmcli connection show

team0이 정상적으로 설정되었는지 확인한다.




6. [root@RHEL7 Desktop]# nmcli connection add con-name team0-port1 type team-slave ifname eno33559296 master team0

   [root@RHEL7 Desktop]# nmcli connection add con-name team0-port2 type team-slave ifname eno50338560 master team0


eno33559296 , eno50338560을 slave interface로 추가한다. 그리고 team0 interface를 master로 가르킨다.




7. [root@RHEL7 Desktop]# nmcli connection show

mater와 slave로 설정한 인터페이스의 connection 상태를 확인한다. 




8. [root@RHEL7 Desktop]# nmcli connection modify team0 ipv4.addresses 192.168.0.199/24 ipv4.method manual

team0 인터페이스에 IP주소를 할당한다. 


[root@RHEL7 Desktop]# teamdctl team0 state

activebackup 모드로 설정한 team0의 티밍 상태를 확인한다. active port는 eno33559296 인 것을 볼 수 있다. 




9. [root@RHEL7 Desktop]# teamnl team0 ports

team0에 설정되어 있는 port를 확인할 수 있다.


[root@RHEL7 Desktop]# teamnl team0 getoption activeport

team0에서 active port를 확인할 수 있다.




10. [root@RHEL7 Desktop]# nmcli dev dis eno33559296

현재 activeport인 eno33559296을 disconnect 시키면 어떻게 될까 궁금해서 해봤다.


[root@RHEL7 Desktop]# teamdctl team0 state

activeport가 eno33559296에서 eno50338560으로 바뀌었다.


[root@RHEL7 Desktop]# teamnl team0 getoption activeport

activeport도 당연히 3에서 4번으로 바뀌었다.


[root@RHEL7 Desktop]# teamnl team0 ports

team0에 해당하는 포트는 4번인 eno50338560만 보인다.




11. [root@RHEL7 Desktop]# nmcli dev con eno33559296

eno33559296 인터페이스를 다시 connect 해보았다.


[root@RHEL7 Desktop]# teamnl team0 getoption activeport

eno33559296을 connect 했음에도 불구하고 activeport는 여전히 4번이다.


[root@RHEL7 Desktop]# teamnl team0 ports

team0의 port에 3번인 eno33559296 , 4번인 eno50338560이 설정되어 있긴하다.


[root@RHEL7 Desktop]# teamdctl team0 state

둘 다 link가 up상태이지만 active port는 eno50338560이다 




12. [root@RHEL7 Desktop]# nmcli dev dis eno50338560

activeport를 eno33559296으로 바꾸기 귀해 eno50338560을 disconnect 하자


[root@RHEL7 Desktop]# teamnl team0 ports

eno50339560이 disconnect되어 안보인다.


[root@RHEL7 Desktop]# nmcli dev con eno5033860

eno50338560을 다시 connect 시키자


[root@RHEL7 Desktop]# teamnl team ports

2개의 port가 정상적으로 보인다.


[root@RHEL7 Desktop]# teamnl team0 getoption activeport

activeport가 3번인 eno33559296으로 바뀌었다.




 

조금이나마 도움이 되셨다면 밑에 공감 한 번 클릭해주시면 감사하겠습니다.


댓글