티스토리 뷰

728x90
반응형

글에 오류가 있어 정정 하고자 합니다.

그동안 리눅스 과정을 준비 할까 하다가 기초는 너무 많은 자료가 있고 내가 필요한 부분을 정리해서 작성 하려다가

미루미루 미루던 teamd 하는 방법이다..

예전에는 윈도우는 티밍 , 리눅스 는 본딩 이라는 명칭으로 불렀는데 요즘은 그냥 다 혼용 하는 듯 하다...

원리는 두개의 네트워크 카드를 가지고 하나의 포트로 RR , LB , failover  등을 설정 할수 있다.

이 글에서는 bon01 이라는 인터페이스 명을 사용 할것이다.

그리고 실습 하는 분들은 Ethernet interface 명이 각자 다를것이고

vm , vitualBox 마다 이름이 다를수 있기 때문에 ifconfig , ip l 명령어로 본인이 묶어줄 네트워크 이름을 꼭 확인 하고 진행하자

하나한 설명 하긴 할거니끄아~~~

 

phinn 님이 달아 주신 댓글에 내용입니다. (  내용 확인 해주셔서 감사합니다)

안녕하세요. 잘 정리된 블로그여서 평소에 자주 보고 있습니다. 그동안 댓글 하나 없이 보기만 해서 죄송할 따름입니다... ^^
그런데 티밍과 본딩은 서로 다른 것 아닐까요? 레드햇 공식 문서에서도 서로 별개로 설명하고 있습니다. (아래)
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-comparison_of_network_teaming_to_bonding

그리고 티밍과 본딩 커맨드 자체도 다르고요.. (아래 첫 번째가 티밍, 두 번째가 본딩)
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/configuring_and_managing_networking/index#configuring-network-teaming_configuring-and-managing-networking
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/configuring_and_managing_networking/index#configuring-network-bonding_configuring-and-managing-networking

무엇보다... 티밍 설명에 들어가시면 RHEL 9 부터는 사용되지 않는다고 나와 있네요. (Network teaming is deprecated in Red Hat Enterprise Linux 9)
어쨌거나 티밍이든 본딩이든 이제 헷갈릴 필요 없이 본딩만 하면 될 테니 편해지긴 한 것 같습니다 ㅎㅎ
하시는 공부 다 잘 되시길 바라겠습니다.. 감사합니다

------------------------------------------------------------------------------------------------------------------------------------------------

아래 내용은 rhel 8 버전 까지 확인 된 내용이며 9버전이후에는 변경되었습니다.

링크는 위에 phinn 님이 달아주신 주소를 참고 하시면 됩니다.

 

목차

    1. 리눅스 본딩? 

    2. 리눅스 본딩 구성 

    3. 리눅스 본딩 실습


    리눅스 본딩 ?

    네트워크 를 본딩 하여 두개의 네트워크를 결합 중복성이나 높은 처리량을 확보 할수 있는 방법!

    NIC를 논리적으로 묶어 Failover 등에 기술을 처리 할수 있다.

    데몬 teamd 를 사용하고 러너 라는 소프트웨어 는 부하 분산(RR) , 브로드캐스트(broadcast), 장애처리(activebackup/failover)

    로드밸런스(LB / loadbalance) , lacp  등을 구현 할수 있다.

    명칭 구분 : 포트 - 본딩에 소속될 네트워크 장치

     


    리눅스 본딩 구성

    리눅스 에서 본딩을 구성할때는 다음과 같은 몇가지 사항들을 주의 해야한다.

    • 네트워크 team 인터페이스를 시작해도 포트 인터페이스 는 자동으로 시작 하지 않음
    • 포트 인터페이스를 시작하면 항상 티밍된 인터페이스가 시작 됨
    • 본딩 된 인터페이스 를 중지하면 포트 인터페이스도 같이 중지 됨
    • 포트 없이 본딩된 인터페이스는 manual ip 열결을 시작 할수 있음
    • 포트 없는 team 은 DHCP 연결을 시작할 때 포트를 대기 함
    • 포트를 기다리는 DHCP 연결이 있으면 캐리어가 있는 포트를 추가 하면 완료됨
    • 포트를 기다리는 DHCP 연결이 있으면 캐리어가 없는 포트를 추가하면 계속 대기 함

    여기서는 nmcli 명령어로 네트워크를 구성 하고 본딩을 처리 한다.

    우선 자신의 vm 이던 서버이던 네트워크 카드를 두개 추가 하자

    그리고 리눅스 에서  인터페이스 명을 확인하고 팀 인터페이스를 구성 하면된다.

     

    $ ifconfig
    # 네트워크 장비명 확인
    
    $ ip a
    # ip addresses 확인

     

    네트워크 인터페이스 확인

    나는 여기서 ens161 , ens 256 를 사용해서 본딩을 진행 한다.

    만약 vm 에서 nic 를 추가 했는데 디바이스 는 보이는데 ip 가 할당이 되지 않은면 본딩을 해도 제대로 됬는지 ping 테스트 같은게 되지 않으니 꼭 ip 가 할당 되도록 설정 해야 한다.

    혹시 모를까 해서!!

    $ nmcli dev up ens161
    $ nmcli dev up ens256
    # 디바이스 활성화 시킨다.
    
    $ systemctl restart NetworkManager
    # NetworkManager 재시작 으로 ip를 할당 받는다..
    
    위 방법으로 ip를 할당 받지 못하면 manual 로 직접 넣어줘야 한다.
    vm 생성할때 네트워크를 nat 로 했다면 ip를 자동으로 받아 온다.
    (bridge 모드여도 불러온당)

    됬으리라 믿고 시작 한다! 안되면 댓글 남겨용!


     

    리눅스 티밍 실습

    이제 본격적으로 명령어 드러 갑니다! 잘따라오셍요

    # 우선 team 인터페이스를 만들어준다.
    
    $ nmcli con add team con-name bon01 ifname bon01 config '{"runner":{"name":"activebackup"}}'
    
    # 형식 #
     nmcli con add  type team con-name [본딩이름] ifname [인터페이스이름(본딩)] config [json형식]
     # 설명 하자면  team 타입에 [본딩이름] 을 지정하고 ifname 로 보여줄 인터페이스명 지정 한후
     config 뒤에 json 형식에 러너를 지정한다.
     
     # 러너 종류 는 위에서 언급 했듯이
      1. roundrobin , activebackup , loadbalance , broadcast , lacp 를 넣을수 있다.
      2 . '{runner":{"name":"러너이름"}}'
       2번 라인은 고정이다

    러너는 activebackup 으로 failover 를 테스트 할것이다

    두번째로 bon01 인터페이스에 ip를 할당 해주어야 한다.

    $ nmcli con mod bon01 ipv4.addresses 192.168.xxx.xxx/24
    $ nmcli con mod bon01 ipv4.method manual
    # ip주소는 기존에 할당된 ip를 피해서 /24 로 다른 네트워크와 겹치지 않는 ip를 사용한다.

    이제 포트 들을 묶어 줘야 한다.

    $ nmcli con add type team-slave con-name bon01-eh1 ifname ens161 master bon01
    $ nmcli con add type team-slave con-name bon01-eh2 ifname ens256 master bon01
    
    # bon01-eh1 이란 이름으로 인터페이스 ens161 을 bon01 에 slave 로 연결
    # bon01-eh2 이란 이름으로 인터페이스 ens256 을 bon01 에 slave 로 연결

    위 명령어가 정상적으로 잘 되어 succsesfully 가 되었다면

    상태를 확인 해야 하는데 다음과 같이 한다.

    $ teamdctl bon01 state
    # teamdctl 명령어로 bon01 에 상태를 확인 한다.

    하면!!

     

    마무리

    글에 오류가 있어 일부 내용 줄 긋기로 변경 하였고 rhle 공식 문서 URL 첨부 하였습니다.

    포스팅 일부 내용은 rhel8 버전 까지만 적용 되며  이후 버전 부터는 명령어 및 기능이 변경되 었습니다.

    차후에 변경 점 포스팅 하겠습니다.

    " 정확한 내용을 확인 해주신 phinn 님 께 감사드립니다"

     

     

     

     

    728x90
    반응형
    댓글