티스토리 뷰

728x90
반응형

레드헷 리눅스 계열에 네트워크 팀 , 본딩 에 대해 구분 해보자.

예전에는 리눅스에서 네트워크를 장치를 묶어 하나에 장치로 사용하는걸 본딩이라고 통치해서 불렀고

현재 지원 중인 고객사에서도 네트워크 장치 를 이중화 할대 본딩이라고 명칭 하기도 하고 윈도우에서는 티밍이라고 통칭 했었느데

내가 구분을 명확히 하지 않고 사용했다는걸 댓글 을 달아주신 phinn 님을 통해서 알게 되었다.

간략히 하자면 팀 은 네트워크 장치 2개를 하나의 논리적 구조로 묶어서 대역폭을 확장 하고  주요 기능은 같은 네트워크 장비가 아닌

Ethernet + WIFI(무선) 네트워크 장비를 묶어 줄수 있고 ,

본딩은 같은 기능을 하나 이종 간의 장비가 아닌 동일 장비간 네트워크 를 묶어 주는것이다 ( Ethernet+ Ethernet) 

 

 

목차

  1. 네트워크 브리지 
  2. 티밍 과 본딩 차이
  3. RHEL8 과 RHEL9 변경점
  4. team2bond 구성 방법
  5. 본딩 구성 방법

 


네트워크 브리지 구성

네트워크 브리지 는 MAC 주소 테이블을 기반으로 네트워크 간에 트래픽을 전달하는 링크 계층 장치이다.

RHEL 호스트에서 소프트웨어 브릿지를 사용하여 하드웨어 브릿지 또는 가상화 환경을 에뮬레이션 해서 가상머신 을 호스트 와 동일한 네트워크에 통합 할수 있다.

브릿지에는 브릿지가 연결할 네트워크 장치가 있어야 하고 구성하면 브리지를 컨트롤러(controller) 라고 하며 포트를 사용 하는 장치 이다.

하이퍼바이져 에 올린 vm os를 호스트 네트워크와 브릿지 하여 동일한 네트워크를 구성할수 있다는 뜻이다.

무선 에서 는 AD-hoc 또는 인프라 모드에서 작성 하는 wifi 네트워크 를 통한 브릿지 구성은 할수 없다.

명령어 는 nmcli 를 사용 한다.

 사전 요구 사항 - 서버에 두개 이상의 네트워크 장치가 구성 되어야 한다.( 가상 이던 물리적이든 네트워크 카드가 두개 있어야한다)

 

 


티밍 과 본딩 차이 

- 티밍( teamd)

네트워크 팀은 물리적 및 가상 네트워크 인터페이스를 결합하거나 집계하여 처리량 또는 중복성 이 높은 논리 인터페이스를 제공 하는 방법입니다.

네트워크 팀에서는 작은 커널 모듈과 사용자 공간 서비스 모두 작업 처리한다.

커널 드라이버를 사용하여 패킷 흐름을 빠르게 처리하거나 다른 작업에 대한 사용자 공간 라입러리 및 서비스를 구성 , 로드 밸런싱 및 중복 요구 사항에 맞게 쉽게 확장 가능 한 솔루션.

## chat gpt 검색 결과 ###

 네트워크 팀(Team) 은 서로 다른 무리적 네트워크 인터펭이스를 한의 노리적 네트워크 인터페이스로 결합하는 기술입니다.

 이를 통해 물리적으로 분리된 네트워크 인터페이스를 노리적으로 결합하여 대욕폭을 증가시키고 , 장애 내구성으르 향상 시킬 수 있습니다. 네트워크 팀은 일반적으로 다양한 네트워크 인터페이스 타입 간에 사용 ( ethernet + Wi-Fi) 간에 사용

 

- 본딩(bond)

본딩은 물리적 및 가상 네트워크 인터페이스를 결합 하거나 집계하여 중복석이 높은 논리 인터페이스를 제공한다.(여기 까지는 teamd와 같다)

커널은 모든 작업을 독점적으로 처리한다.

'active-backup,balance-tlb  balance-alb 모드에는 네트워크 스위치의 특정 구성이 필요하지 않습니다. 그러나 다른 본딩 모드에서는 링크를 집계하도록 스위치를 구성해야 합니다. 예를 들어, Cisco 스위치에는 0, 2 및 3 모드의 경우 4.6.1 Channel 이 필요하지만 모드 4에서는LACP(Link Aggregation Control Protocol) 및ECDHE Channel 이 필요합니다.'

라고 rhel 공식 문서에 나와 있다.( 즉 네트워크 를 구성해주는 스위치 단에서 구성이 동반 되어야 한다)

#### chat gpt 내용 #####

본딩(Bonding)은 같은 유형의 물리적 네트워크 인터펭스를 결합하는 기술입니다.

본딩을 사용 하면 하나의 놀리적 네트워크 인터페이스에 여러 물리적 네트워크 인터페이스를 연결 하여 대역폭을 증가시키너나, 장내

내구성을 향상 , 본딩은 일반적으로 서버나 스토리지와 같은 특수한 용도에서 사용 됩니다.

 

따라서 , 네트워크 팀과 본딩은 둘다 물리적 네트워크 인터페이스를 논리적으로 묶는 기술이지만, 네트워크 팀은 다양한 유형의 네트워크 인터페이스를 사용할 수 있으면,

본딩은 같은 유형의 네트워크 인터페이스를 사용 합니다

 


 

rhel 8 과 rhel 9  변경 점

우선 rhel 8 버전대 까지는 team 을 사용 가능 하나 rhel 9 부터는 team 구성을 지원 하지 않는다.

기존에 구성 되어 있던 teamd 구성을 유지 하며 9버전으로 업데이트 하게 되면 새로운 명령어로 설정을 하여 옮겨줘야 한다.

 

" rhel8 버전에 team 에 관한 공식 문서 내용 "

하단에 중요 부분에 Red Hat Enterprise Linus 9 에서 더 이상 사용되지 않습니다. 향후 버전으로 업그레이드 하련는 경우 커널 본딩 드라이버를 대안으로 사용하는 것이 좋습니다.

 

 

아래 이미지 는 Red Hat Enterprise Linux  9 공식 문서에 내용이다

 

 

" 중요 " 내용 을 보면 기존에 구성된 team 구성을 본딩으로 변경하는 작업에 명령어는 team2bond 라고 명시가 되어있다.

 

 


 

team2bond 구성 방법

 

사전 요구 사항

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

절차

  1. 선택 사항: team-team0 NetworkManager 연결의 IP 구성을 표시합니다.
  2. # 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
    ...
  3. team0 장치의 구성을 JSON 파일로 내보냅니다.
  4.  
  5. # teamdctl team0 config dump actual > /tmp/team0.json
  6. 네트워크 팀을 제거합니다. 예를 들어 NetworkManager에서 팀을 구성한 경우 team-team0 연결 프로필과 관련 포트의 프로필을 제거합니다.
  7. # nmcli connection delete team-team0
    # nmcli connection delete team-team0-port1
    # nmcli connection delete team-team0-port2
  8. 시험 실행 모드에서 team2bond 유틸리티를 실행하여 팀 장치와 유사한 설정으로 네트워크 본딩을 설정하는 nmcli 명령을 표시합니다.첫 번째 명령에는 팀 구성 파일에 두 개의 link_watch 항목이 포함되어 있었기 때문에 두 개의 miimon 옵션이 포함되어 있습니다. 이는 본딩 생성에는 영향을 미치지 않습니다.
  9. 서비스를 팀의 장치 이름에 바인딩하고 이러한 서비스를 업데이트하거나 중단하지 않으려면 --rename=bond0 옵션을 생략합니다. 이 경우 team2bond 는 팀에 대해 본딩에 동일한 인터페이스 이름을 사용합니다.
  10. # 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
  11. team2bond 유틸리티에 대한 옵션이 올바른지 확인합니다.
  12. 본딩을 만듭니다. 제안된 nmcli 명령을 실행하거나 --exec-cmd 옵션을 사용하여 team2bond 명령을 다시 실행할 수 있습니다.다음 단계에 본딩 연결 프로필의 이름(bond-bond0)이 필요합니다.
  13. # 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.
  14. team-team0 에서 이전에 구성된 IPv4 설정을 bond-bond0 연결로 설정합니다.
  15. # 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
  16. team-team0 에서 이전에 구성된 IPv6 설정을 bond-bond0 연결로 설정합니다.
  17. # 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
  18. 연결을 활성화합니다.
  19. # nmcli connection up bond-bond0

검증

  1. bond-bond0 NetworkManager 연결의 IP 구성을 표시합니다.
  2. # 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
    ...
  3. 본딩 상태를 표시합니다.이 예에서는 두 포트가 모두 유효합니다.
  4. # 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
  5. 본딩 장애 조치가 작동하는지 확인하려면 다음을 수행합니다.
    1. 호스트에서 네트워크 케이블을 일시적으로 제거합니다. 명령줄을 사용하여 링크 실패 이벤트를 올바르게 테스트하는 방법이 없습니다.
    2. 본딩 상태를 표시합니다.
    3. # cat /proc/net/bonding/bond0

사전 요구 사항

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

절차

  1. 선택 사항: team-team0 NetworkManager 연결의 IP 구성을 표시합니다.
  2. # 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
    ...
  3. team0 장치의 구성을 JSON 파일로 내보냅니다.
  4. # teamdctl team0 config dump actual > /tmp/team0.json
  5. 네트워크 팀을 제거합니다. 예를 들어 NetworkManager에서 팀을 구성한 경우 team-team0 연결 프로필과 관련 포트의 프로필을 제거합니다.
  6. # nmcli connection delete team-team0
    # nmcli connection delete team-team0-port1
    # nmcli connection delete team-team0-port2
  7. 시험 실행 모드에서 team2bond 유틸리티를 실행하여 팀 장치와 유사한 설정으로 네트워크 본딩을 설정하는 nmcli 명령을 표시합니다.첫 번째 명령에는 팀 구성 파일에 두 개의 link_watch 항목이 포함되어 있었기 때문에 두 개의 miimon 옵션이 포함되어 있습니다. 이는 본딩 생성에는 영향을 미치지 않습니다.
  8. 서비스를 팀의 장치 이름에 바인딩하고 이러한 서비스를 업데이트하거나 중단하지 않으려면 --rename=bond0 옵션을 생략합니다. 이 경우 team2bond 는 팀에 대해 본딩에 동일한 인터페이스 이름을 사용합니다.
  9. # 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
  10. team2bond 유틸리티에 대한 옵션이 올바른지 확인합니다.
  11. 본딩을 만듭니다. 제안된 nmcli 명령을 실행하거나 --exec-cmd 옵션을 사용하여 team2bond 명령을 다시 실행할 수 있습니다.다음 단계에 본딩 연결 프로필의 이름(bond-bond0)이 필요합니다.
  12. # 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.
  13. team-team0 에서 이전에 구성된 IPv4 설정을 bond-bond0 연결로 설정합니다.
  14. # 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
  15. team-team0 에서 이전에 구성된 IPv6 설정을 bond-bond0 연결로 설정합니다.
  16. # 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
  17. 연결을 활성화합니다.
  18. # nmcli connection up bond-bond0

검증

  1. bond-bond0 NetworkManager 연결의 IP 구성을 표시합니다.
  2. # 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
    ...
  3. 본딩 상태를 표시합니다.이 예에서는 두 포트가 모두 유효합니다.
  4. # 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
  5. 본딩 장애 조치가 작동하는지 확인하려면 다음을 수행합니다.
    1. 호스트에서 네트워크 케이블을 일시적으로 제거합니다. 명령줄을 사용하여 링크 실패 이벤트를 올바르게 테스트하는 방법이 없습니다.
    2. 본딩 상태를 표시합니다.
    3. # cat /proc/net/bonding/bond0

 

본딩 구성 방법

 

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

  • nmcli 를 사용하여 명령줄을 사용하여 본딩 연결을 구성합니다.
  • RHEL 웹 콘솔을 사용하여 웹 브라우저를 사용하여 본딩 연결을 구성합니다.
  • nmtui 를 사용하여 텍스트 기반 사용자 인터페이스에서 본딩 연결을 구성합니다.
  • nm-connection-editor 애플리케이션을 사용하여 그래픽 인터페이스에서 본딩 연결을 구성합니다.
  • nmstatectl 을 사용하여 Nmstate API를 통한 본딩 연결을 구성합니다.
  • RHEL 시스템 역할을 사용하여 하나 이상의 호스트에서 본딩 구성을 자동화합니다.

NetworkManager 서비스를 사용하여 팀 또는 본딩 포트 인터페이스를 관리하거나 해결할 때의 기본 동작을 고려하십시오.

  • 컨트롤러 인터페이스를 시작하면 포트 인터페이스가 자동으로 시작되지 않습니다.
  • 포트 인터페이스를 시작하면 항상 컨트롤러 인터페이스가 시작됩니다.
  • 컨트롤러 인터페이스를 중지하면 포트 인터페이스도 중지됩니다.
  • 포트가 없는 컨트롤러는 고정 IP 연결을 시작할 수 있습니다.
  • 포트 없는 컨트롤러는 DHCP 연결을 시작할 때 포트를 대기합니다.
  • 포트를 기다리는 DHCP 연결이 있는 컨트롤러는 캐리어가 있는 포트를 추가할 때 완료됩니다.
  • 포트를 기다리는 DHCP 연결이 있는 컨트롤러는 캐리어 없이 포트를 추가할 때 계속 대기합니다.

https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/9/html/configuring_and_managing_networking/configuring-network-bonding_configuring-and-managing-networking#doc-wrapper

nmcli를 사용하여 네트워크 본딩 구성

절차

  1. 본딩 인터페이스를 생성합니다.이 명령은 active-backup 모드를 사용하는 bond0 이라는 본딩을 생성합니다.
    # nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000"
  2. MEI(MediaECDHE Interface) 모니터링 간격을 추가로 설정하려면 miimon=interval 옵션을 bond.options 속성에 추가합니다. 예를 들어 동일한 명령을 사용하지만 추가 명령을 사용하려면ceptI 모니터링 간격을 1000 밀리초(1초)로 설정합니다.
  3. # nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"
  4. 네트워크 인터페이스를 표시하고 본딩에 추가할 인터페이스의 이름을 기록해 둡니다.이 예제에서는 다음을 수행합니다.
    • enp7s0  enp8s0 은 구성되지 않습니다. 이러한 장치를 포트로 사용하려면 다음 단계에서 연결 프로필을 추가합니다.
    • bridge0  bridge1 에는 기존 연결 프로필이 있습니다. 이러한 장치를 포트로 사용하려면 다음 단계에서 프로필을 수정합니다.
  5. # nmcli device status
    DEVICE   TYPE      STATE         CONNECTION
    enp7s0   ethernet  disconnected  --
    enp8s0   ethernet  disconnected  --
    bridge0  bridge    connected     bridge0
    bridge1  bridge    connected     bridge1
    ...
  6. 인터페이스를 본딩에 할당합니다.
    1. 본딩에 할당하려는 인터페이스가 구성되지 않은 경우 해당 인터페이스에 대한 새 연결 프로필을 생성합니다.이러한 명령은 enp7s0  enp8s0 에 대한 프로필을 생성하여 bond0 연결에 추가합니다.
    2. # nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname enp7s0 master bond0
      # nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname enp8s0 master bond0
    3. 기존 연결 프로필을 본딩에 할당하려면 다음을 수행합니다.
      1. 이러한 연결의 master 매개변수를 bond0 으로 설정합니다.이러한 명령은 bridge0  bridge1 이라는 기존 연결 프로필을 bond0 연결에 할당합니다.
      2. # nmcli connection modify bridge0 master bond0
        # nmcli connection modify bridge1 master bond0
      3. 연결을 다시 활성화합니다.
      4. # nmcli connection up bridge0
        # nmcli connection up bridge1
    4. IPv4 설정을 구성합니다.
      • 이 본딩 장치를 다른 장치의 포트로 사용하려면 다음을 입력합니다.
      • # nmcli connection modify bond0 ipv4.method disabled
      • DHCP를 사용하려면 작업이 필요하지 않습니다.
      • 정적 IPv4 주소, 네트워크 마스크, 기본 게이트웨이 및 DNS 서버를 bond0 연결로 설정하려면 다음을 입력합니다.
      • # nmcli connection modify bond0 ipv4.addresses '192.0.2.1/24'
        # nmcli connection modify bond0 ipv4.gateway '192.0.2.254'
        # nmcli connection modify bond0 ipv4.dns '192.0.2.253'
        # nmcli connection modify bond0 ipv4.dns-search 'example.com'
        # nmcli connection modify bond0 ipv4.method manual
    5. IPv6 설정을 구성합니다.
      • 이 본딩 장치를 다른 장치의 포트로 사용하려면 다음을 입력합니다.
      • # nmcli connection modify bond0 ipv6.method disabled
      • DHCP를 사용하려면 작업이 필요하지 않습니다.
      • 정적 IPv6 주소, 네트워크 마스크, 기본 게이트웨이 및 DNS 서버를 bond0 연결로 설정하려면 다음을 입력합니다.
      • # nmcli connection modify bond0 ipv6.addresses '2001:db8:1::1/64'
        # nmcli connection modify bond0 ipv6.gateway '2001:db8:1::fffe'
        # nmcli connection modify bond0 ipv6.dns '2001:db8:1::fffd'
        # nmcli connection modify bond0 ipv6.dns-search 'example.com'
        # nmcli connection modify bond0 ipv6.method manual
  7. 선택 사항: 본딩 포트에서 매개변수를 설정하려면 다음 명령을 사용합니다.
  8. # nmcli connection modify bond0-port1 bond-port.<parameter> <value>
  9. 연결을 활성화합니다.
  10. # nmcli connection up bond0
  11. 포트가 연결되어 있고 CONNECTION 열에 포트의 연결 이름이 표시되는지 확인합니다.연결 포트를 활성화하면 NetworkManager는 본딩을 활성화하지만 다른 포트는 활성화하지 않습니다. 본딩이 활성화되면 Red Hat Enterprise Linux가 모든 포트를 자동으로 사용하도록 설정할 수 있습니다.
    1. bond의 connection.autoconnect-slaves 매개변수를 활성화합니다.
    2. # nmcli connection modify bond0 connection.autoconnect-slaves 1
    3. 브리지를 다시 활성화합니다.
    4. # nmcli connection up bond0
  12. # nmcli device
    DEVICE   TYPE      STATE      CONNECTION
    ...
    enp7s0   ethernet  connected  bond0-port1
    enp8s0   ethernet  connected  bond0-port2

검증

  1. 호스트에서 네트워크 케이블을 일시적으로 제거합니다.
  2. 소프트웨어 유틸리티를 사용하여 오류 이벤트를 올바르게 연결하는 방법은 없습니다. nmcli 와 같은 연결을 비활성화하는 툴에는 포트 구성 변경 사항을 처리하는 본딩 드라이버 기능만 표시하고 실제 링크 실패 이벤트가 아닙니다.
  3. 본딩 상태를 표시합니다.
  4. # cat /proc/net/bonding/bond0

 

nmtui를 사용하여 네트워크 본딩 구성

nmtui 애플리케이션은 NetworkManager에 대한 텍스트 기반 사용자 인터페이스를 제공합니다. nmtui 를 사용하여 그래픽 인터페이스 없이 호스트에서 네트워크 본딩을 구성할 수 있습니다.

참고

nmtui 에서 :

  • 커서 키를 사용하여 이동합니다.
  • 버튼을 선택하고 Enter 를 누릅니다.
  • 공간을 사용하여 확인란을 선택하고 선택 취소합니다.

사전 요구 사항

  • 서버에 두 개 이상의 물리적 또는 가상 네트워크 장치가 설치되어 있습니다.
  • 이더넷 장치를 본딩의 포트로 사용하려면 물리적 또는 가상 이더넷 장치를 서버에 설치해야 합니다.

절차

  1. 네트워크 본딩을 구성할 네트워크 장치 이름을 모르는 경우 사용 가능한 장치를 표시합니다.
  2. # nmcli device status
    DEVICE     TYPE      STATE                   CONNECTION
    enp7s0     ethernet  unavailable             --
    enp8s0     ethernet  unavailable             --
    ...
  3. start nmtui:
  4. # nmtui
  5. Edit a connection 을 선택하고 Enter 를 누릅니다.
  6. 추가 버튼을 누릅니다.
  7. 네트워크 유형 목록에서 Bond 를 선택하고 Enter 를 누릅니다.
  8. 선택 사항: 생성할 NetworkManager 프로필의 이름을 입력합니다.
  9. 생성할 본딩 장치 이름을 장치 필드에 입력합니다.
  10. 생성할 본딩에 포트를 추가합니다.
    1. Slaves 목록 옆에 있는 추가 버튼을 누릅니다.
    2. 본딩에 포트로 추가할 인터페이스 유형(예: 이더넷 )을 선택합니다.
    3. 선택 사항: 이 본딩 포트에 대해 생성할 NetworkManager 프로필의 이름을 입력합니다.
    4. 포트의 장치 이름을 장치 필드에 입력합니다.
    5. OK 버튼을 눌러 본딩 설정을 사용하여 창으로 돌아갑니다.
    6. 그림 9.1. 이더넷 장치를 본딩에 포트로 추가
    7. 이 단계를 반복하여 더 많은 포트를 본딩에 추가합니다.
  11. 본딩 모드를 설정합니다. 설정한 값에 따라 nmtui 는 선택한 모드와 관련된 설정에 대한 추가 필드를 표시합니다.
  12. 환경에 따라 IPv4 구성 및 IPv6 구성 영역에서 IP 주소 설정을 적절하게 구성합니다. 이를 위해 자동 버튼을 누른 후 다음을 선택합니다.

    그림 9.2. 고정 IP 주소 설정을 사용한 본딩 연결 예

    • 본딩에 IP 주소가 필요하지 않은 경우 비활성화됨
    • DHCP 서버가 IP 주소를 본딩에 동적으로 할당하는 경우 자동.
    • 네트워크에 고정 IP 주소 설정이 필요한 경우 수동. 이 경우 추가 필드를 작성해야 합니다.
      1. 추가 필드를 표시하도록 구성할 프로토콜 옆에 있는 표시 버튼을 누릅니다.
      2. 주소 옆에 있는 추가 버튼을 눌러 IP 주소와 서브넷 마스크를 CIDR(Classless Inter-Domain Routing) 형식으로 입력합니다.
      3. 서브넷 마스크를 지정하지 않으면 NetworkManager는 IPv4 주소에 대해 /32 서브넷 마스크와 IPv6 주소에 대해 /64 를 설정합니다.
      4. 기본 게이트웨이의 주소를 입력합니다.
      5. DNS 서버 옆에 있는 Add 버튼을 눌러 DNS 서버 주소를 입력합니다.
      6. Search domains (검색 도메인) 옆에 있는 Add (추가) 버튼을 눌러 DNS 검색 도메인을 입력합니다.
  13. 확인 버튼을 눌러 새 연결을 생성하고 자동으로 활성화합니다.
  14. Back 버튼을 눌러 주 메뉴로 돌아갑니다.
  15. Quit 을 선택하고 Enter 를 눌러 nmtui 애플리케이션을 종료합니다.

검증

  1. 호스트에서 네트워크 케이블을 일시적으로 제거합니다.
  2. 소프트웨어 유틸리티를 사용하여 오류 이벤트를 올바르게 연결하는 방법은 없습니다. nmcli 와 같은 연결을 비활성화하는 툴에는 포트 구성 변경 사항을 처리하는 본딩 드라이버 기능만 표시하고 실제 링크 실패 이벤트가 아닙니다.
  3. 본딩 상태를 표시합니다.
  4. # cat /proc/net/bonding/bond0

 

 nmstatectl을 사용하여 네트워크 본딩 구성

Nmstate API를 사용하여 네트워크 본딩을 구성하려면 nmstatectl 유틸리티를 사용합니다.

예를 들어 아래 절차에서는 NetworkManager에 다음 설정을 사용하여 본딩을 생성합니다.

  • 본딩의 네트워크 인터페이스 enp1s0  enp7s0
  • 모드: active-backup
  • 정적 IPv4 주소: 192.0.2.1  /24 서브넷 마스크
  • 정적 IPv6 주소: 2001:db8:1::1  /64 서브넷 마스크
  • IPv4 기본 게이트웨이: 192.0.2.254
  • IPv6 기본 게이트웨이: 2001:db8:1::fffe
  • IPv4 DNS 서버: 192.0.2.200
  • IPv6 DNS 서버: 2001:db8:1::ffbb
  • DNS 검색 도메인: example.com

사전 요구 사항

  • 서버에 두 개 이상의 물리적 또는 가상 네트워크 장치가 설치되어 있습니다.
  • 이더넷 장치를 본딩의 포트로 사용하려면 물리적 또는 가상 이더넷 장치를 서버에 설치해야 합니다.
  • 팀, 브리지 또는 VLAN 장치를 본딩에서 포트로 사용하려면 포트 목록에서 인터페이스 이름을 설정하고 해당 인터페이스를 정의합니다.
  • nmstate 패키지가 설치되어 있습니다.

절차

  1. 다음 콘텐츠와 같이 ~/create-bond.yml 과 같은 YAML 파일을 만듭니다.
  2. Expand
    ---
    interfaces:
    - name: bond0
      type: bond
      state: up
      ipv4:
        enabled: true
        address:
        - ip: 192.0.2.1
          prefix-length: 24
        dhcp: false
      ipv6:
        enabled: true
        address:
        - ip: 2001:db8:1::1
          prefix-length: 64
        autoconf: false
        dhcp: false
      link-aggregation:
        mode: active-backup
        port:
        - enp1s0
        - enp7s0
    - name: enp1s0
      type: ethernet
      state: up
    - name: enp7s0
      type: ethernet
      state: up
    
    routes:
      config:
      - destination: 0.0.0.0/0
        next-hop-address: 192.0.2.254
        next-hop-interface: bond0
      - destination: ::/0
        next-hop-address: 2001:db8:1::fffe
        next-hop-interface: bond0
    
    dns-resolver:
      config:
        search:
        - example.com
        server:
        - 192.0.2.200
        - 2001:db8:1::ffbb
  3. 시스템에 설정을 적용합니다.
  4. # nmstatectl apply ~/create-bond.yml

검증

  1. 장치 및 연결의 상태를 표시합니다.
  2. # nmcli device status
    DEVICE      TYPE      STATE      CONNECTION
    bond0       bond      connected  bond0
  3. 연결 프로필의 모든 설정을 표시합니다.
  4. # nmcli connection show bond0
    connection.id:              bond0
    connection.uuid:            79cbc3bd-302e-4b1f-ad89-f12533b818ee
    connection.stable-id:       --
    connection.type:            bond
    connection.interface-name:  bond0
    ...
  5. 연결 설정을 YAML 형식으로 표시합니다.
  6. # nmstatectl show bond0

 

728x90
반응형
댓글