4.3. teamd 서비스, 러너 및 link-watchers 이해
팀 서비스인 teamd
는 팀 드라이버의 인스턴스 하나를 제어합니다. 이 드라이버 인스턴스는 하드웨어 장치 드라이버의 인스턴스를 추가하여 네트워크 인터페이스의 팀을 형성합니다. 팀 드라이버는 team0
과 같은 네트워크 인터페이스를 커널에 제공합니다.
teamd
서비스는 모든 팀 작업에 공통 논리를 구현합니다. 이러한 함수는 라운드 로빈과 같은 다양한 로드 공유 및 백업 방법에 고유하며 실행자라고 하는 별도의 코드 단위로 구현 됩니다
. 관리자는 JSON(JavaScript Object Notation) 형식으로 runners를 지정하고, 인스턴스를 생성할 때 JSON 코드가 teamd
인스턴스로 컴파일됩니다. 또는 NetworkManager
를 사용하는 경우 team.runner
매개변수에서 runner를 설정하고 NetworkManager
는 해당 JSON 코드를 자동으로 만들 수 있습니다.
다음 러너를 사용할 수 있습니다.
-
broadcast
: 모든 포트에서 데이터를 전송합니다. -
roundrobin
: 모든 포트에서 데이터를 차례로 전송합니다. -
activebackup
: 다른 포트는 하나의 포트로 데이터를 전송하고 다른 포트는 백업으로 유지됩니다. -
loadbalance
: 활성 Tx 로드 밸런싱 및 Berkeley Packet Filter (BPF) 기반 Tx 포트 선택기를 사용하여 모든 포트에서 데이터를 전송합니다. -
임의의
: 임의로 선택한 포트에서 데이터를 전송합니다. -
LACP
: 802.3ad Link Aggregation Control Protocol (LACP)을 구현합니다.
teamd
서비스는 링크 감시자를 사용하여 하위 장치의 상태를 모니터링합니다. 다음 link-watchers를 사용할 수 있습니다.
-
ethtool
:libteam
라이브러리는ethtool
유틸리티를 사용하여 링크 상태 변경 사항을 확인합니다. 기본 link-watcher입니다. -
arp_ping
:libteam
라이브러리는arp_ping
유틸리티를 사용하여 ARP(Address Resolution Protocol)를 사용하여 원격 하드웨어 주소의 존재를 모니터링합니다. -
nsna_ping
: IPv6 연결에서libteam
라이브러리는 IPv6 Neighbor Discovery 프로토콜의 Neighbor Advertisement 및 Neighbor Discovery 기능을 사용하여 블랜딩 인터페이스의 존재를 모니터링합니다.
각 실행기에서는 lacp
를 제외하고 모든 링크 감시자를 사용할 수 있습니다. 이 실행기에서는 ethtool
링크 감시자만 사용할 수 있습니다.