리눅스에서 본딩을 설정한다는 말은 들어봤어도 티밍을 설정한다는 말은 이번에 처음 들어봤다.
티밍은 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으로 바뀌었다.
조금이나마 도움이 되셨다면 밑에 공감 한 번 클릭해주시면 감사하겠습니다.
댓글