4장. 네트워크 티밍 구성

네트워크 팀은 물리적 및 가상 네트워크 인터페이스를 결합하거나 집계하여 처리량 또는 중복성이 높은 논리 인터페이스를 제공하는 방법입니다. 네트워크 티밍은 작은 커널 모듈을 사용하여 패킷 흐름에 대한 빠른 처리 및 기타 작업에 대한 사용자 공간 서비스를 구현합니다. 이를 통해 네트워크 팀은 로드 밸런싱 및 중복 요구 사항에 맞게 쉽게 확장 가능하고 확장 가능한 솔루션입니다.

Red Hat Enterprise Linux는 관리자에게 팀 장치를 구성하는 다양한 옵션을 제공합니다. 예를 들면 다음과 같습니다.

  • nmcli 를 사용하여 명령줄을 사용하여 팀 연결을 구성합니다.
  • RHEL 웹 콘솔을 사용하여 웹 브라우저를 사용하여 팀 연결을 구성합니다.
  • nm-connection-editor 애플리케이션을 사용하여 그래픽 인터페이스에서 팀 연결을 구성합니다.
중요

네트워크 티밍은 Red Hat Enterprise Linux 9에서 더 이상 사용되지 않습니다. 대안으로 네트워크 본딩 드라이버를 사용하는 것이 좋습니다. 자세한 내용은 네트워크 본딩 구성 을 참조하십시오.

4.1. 네트워크 팀 구성을 네트워크 본딩으로 마이그레이션

네트워크 티밍은 Red Hat Enterprise Linux 9에서 더 이상 사용되지 않습니다. 작업 중인 네트워크 팀이 이미 구성되어 있는 경우(예: 이전 RHEL 버전에서 업그레이드한 경우 NetworkManager에서 관리하는 네트워크 본딩으로 구성을 마이그레이션할 수 있습니다.

중요

team2bond 유틸리티는 네트워크 팀 구성을 본딩으로만 변환합니다. 이후 IP 주소 및 DNS 구성과 같은 본딩의 추가 설정을 수동으로 구성해야 합니다.

사전 요구 사항

  • team-team0 NetworkManager 연결 프로필이 team0 장치를 구성하고 관리합니다.
  • teamd 패키지가 설치되어 있습니다.

절차

  1. 선택 사항: team-team0 NetworkManager 연결의 IP 구성을 표시합니다.

    # nmcli connection show team-team0 | egrep "^ip"
    ...
    ipv4.method:                            manual
    ipv4.dns:                               192.0.2.253
    ipv4.dns-search:                        example.com
    ipv4.addresses:                         192.0.2.1/24
    ipv4.gateway:                           192.0.2.254
    ...
    ipv6.method:                            manual
    ipv6.dns:                               2001:db8:1::fffd
    ipv6.dns-search:                        example.com
    ipv6.addresses:                         2001:db8:1::1/64
    ipv6.gateway:                           2001:db8:1::fffe
    ...
  2. team0 장치의 구성을 JSON 파일로 내보냅니다.

    # teamdctl team0 config dump actual > /tmp/team0.json
  3. 네트워크 팀을 제거합니다. 예를 들어 NetworkManager에서 팀을 구성한 경우 team-team0 연결 프로필과 관련 포트의 프로필을 제거합니다.

    # nmcli connection delete team-team0
    # nmcli connection delete team-team0-port1
    # nmcli connection delete team-team0-port2
  4. 시험 실행 모드에서 team2bond 유틸리티를 실행하여 팀 장치와 유사한 설정으로 네트워크 본딩을 설정하는 nmcli 명령을 표시합니다.

    # team2bond --config=/tmp/team0.json --rename=bond0
    nmcli con add type bond ifname bond0 bond.options "mode=active-backup,num_grat_arp=1,num_unsol_na=1,resend_igmp=1,miimon=100,miimon=100"
    nmcli con add type ethernet ifname enp7s0 master bond0
    nmcli con add type ethernet ifname enp8s0 master bond0

    첫 번째 명령에는 팀 구성 파일에 두 개의 link_watch 항목이 포함되어 있었기 때문에 두 개의 miimon 옵션이 포함되어 있습니다. 이는 본딩 생성에는 영향을 미치지 않습니다.

    서비스를 팀의 장치 이름에 바인딩하고 이러한 서비스를 업데이트하거나 중단하지 않으려면 --rename=bond0 옵션을 생략합니다. 이 경우 team2bond 는 팀에 대해 본딩에 동일한 인터페이스 이름을 사용합니다.

  5. team2bond 유틸리티에 대한 옵션이 올바른지 확인합니다.
  6. 본딩을 만듭니다. 제안된 nmcli 명령을 실행하거나 --exec-cmd 옵션을 사용하여 team2bond 명령을 다시 실행할 수 있습니다.

    # team2bond --config=/tmp/team0.json --rename=bond0 --exec-cmd
    Connection 'bond-bond0' (0241a531-0c72-4202-80df-73eadfc126b5) successfully added.
    Connection 'bond-slave-enp7s0' (38489729-b624-4606-a784-1ccf01e2f6d6) successfully added.
    Connection 'bond-slave-enp8s0' (de97ec06-7daa-4298-9a71-9d4c7909daa1) successfully added.

    다음 단계에 본딩 연결 프로필의 이름(bond-bond0)이 필요합니다.

  7. team-team0 에서 이전에 구성된 IPv4 설정을 bond-bond0 연결로 설정합니다.

    # nmcli connection modify bond-bond0 ipv4.addresses '192.0.2.1/24'
    # nmcli connection modify bond-bond0 ipv4.gateway '192.0.2.254'
    # nmcli connection modify bond-bond0 ipv4.dns '192.0.2.253'
    # nmcli connection modify bond-bond0 ipv4.dns-search 'example.com'
    # nmcli connection modify bond-bond0 ipv4.method manual
  8. team-team0 에서 이전에 구성된 IPv6 설정을 bond-bond0 연결로 설정합니다.

    # nmcli connection modify bond-bond0 ipv6.addresses '2001:db8:1::1/64'
    # nmcli connection modify bond-bond0 ipv6.gateway '2001:db8:1::fffe'
    # nmcli connection modify bond-bond0 ipv6.dns '2001:db8:1::fffd'
    # nmcli connection modify bond-bond0 ipv6.dns-search 'example.com'
    # nmcli connection modify bond-bond0 ipv6.method manual
  9. 연결을 활성화합니다.

    # nmcli connection up bond-bond0

검증

  1. bond-bond0 NetworkManager 연결의 IP 구성을 표시합니다.

    # nmcli connection show bond-bond0 | egrep "^ip"
    ...
    ipv4.method:                            manual
    ipv4.dns:                               192.0.2.253
    ipv4.dns-search:                        example.com
    ipv4.addresses:                         192.0.2.1/24
    ipv4.gateway:                           192.0.2.254
    ...
    ipv6.method:                            manual
    ipv6.dns:                               2001:db8:1::fffd
    ipv6.dns-search:                        example.com
    ipv6.addresses:                         2001:db8:1::1/64
    ipv6.gateway:                           2001:db8:1::fffe
    ...
  2. 본딩 상태를 표시합니다.

    # cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v5.13.0-0.rc7.51.el9.x86_64
    
    Bonding Mode: fault-tolerance (active-backup)
    Primary Slave: None
    Currently Active Slave: enp7s0
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 0
    Down Delay (ms): 0
    Peer Notification Delay (ms): 0
    
    Slave Interface: enp7s0
    MII Status: up
    Speed: Unknown
    Duplex: Unknown
    Link Failure Count: 0
    Permanent HW addr: 52:54:00:bf:b1:a9
    Slave queue ID: 0
    
    Slave Interface: enp8s0
    MII Status: up
    Speed: Unknown
    Duplex: Unknown
    Link Failure Count: 0
    Permanent HW addr: 52:54:00:04:36:0f
    Slave queue ID: 0

    이 예에서는 두 포트가 모두 유효합니다.

  3. 본딩 장애 조치가 작동하는지 확인하려면 다음을 수행합니다.

    1. 호스트에서 네트워크 케이블을 일시적으로 제거합니다. 명령줄을 사용하여 링크 실패 이벤트를 올바르게 테스트하는 방법이 없습니다.
    2. 본딩 상태를 표시합니다.

      # cat /proc/net/bonding/bond0