공유할 서비스 선택

TECH


TECH

OS [Linux] Network Bonding 설명 및 구성

페이지 정보

작성자 LeeHyongDong 아이디로 검색 전체게시물 댓글 0건 조회 7,892회 좋아요 0회 작성일 20-04-28 16:31

본문

- Network Bonding 설명 및 구성 방법 

 

소개

  물리적으로 구성된 서버에서 네트워크를 구성할때 NIC를 논리적으로 묶어서 한개의 네트워크로 보이게 하는 기술

 

환경

  RHEL/CentOS 7버전

  사용 Network Device명 ens224, ens256 


구성

8f4b3cbfcb0ff223512806c57ede0d62_1588573977_1438.png
  서버에서 2개의 NIC를 묶어 하나의 네트워크로 사용하는 방법.


이슈

  물리적 서버에서 본딩 구성이 되지 않은경우 네트워크에 이상이 생겨 서비스가 중간에 내려가는 경우가 생길수 있습니다.


1. Bonding 설명


  1.1. Bonding설명

    Bonding은 여러개의 NIC카드를 하나의 NIC로 논리적으로 묶어 사용하는 기술

    대역폭을 확장하거나 네트워크 결함을 대비해 Active-Stand by로 사용할수 있다.

    본딩(Bonding)의 다른 이름으로는 티밍(Teaming)이 있으며 티밍(Teaming)은 윈도우에서 본딩(Bonding)은 Linux에서 사용되는 용어입니다.

    두개의 하는 역활은 같으며 RHEL7버전에서는 티밍(Teaming)과 본딩 두개 다 사용 가능합니다.

 

  1.2. Bonding mode 설명

    0 : Balance-round robine 정책 : 2개 이상의 NIC를 첫번째 슬레이브부터 마지막까지 순차적으로 패킷을 분산해 부하를 분산 시켜줍니다.

 

    1 : Active-standby 정책 : 한개의 Slave를 Active상태로 두고 문제가 발생시 대기중이던 다른 NIC로 넘어감 NIC가 여러개 있어도 하나의 슬레이브만 액티브가 됩니다. 

 

    2 : Balnce-XOR 정책 : 0과 비슷하지만 xor연산을 사용해 목적지 Mac과 근원지 Mac을 이용한 분배 [(출발지 Mac 주소와 도착지 Mac 주소의 XOR) modula 슬레이브 1개]에 기초하여 전송합니다. 

 

    3 : Broadcast 정책 : 2개의 NIC에서 어떠한 규칙 없이 데이터 통신함 모든 슬레이브 인터페이스에 모든것을 전송합니다. 

 

    4 : 802.3ad (link aggregation) - switch에 aggregation 그룹 생성이 필요함.

         IEEE 802.3ad dynamic link aggregation정책을 설정하며 전송과 받는 것은 active aggregator 내부의 모든 slave에 의해 작동됩니다.

 

    5 : tansmit load 밸런스로서 보내는 패킷만 밸런스 합니다. 

         outgoing traffic은 각 slave 인터페이스에 현재의 부하에 따라서 분배됩니다.

         incoming traffic은 현재의 slave로 받습니다.

 

    6 : receive와 transmit 패킷을 밸런스 하며 이때 5,6은 하나의 스위치에 있을때만 작동합니다. 

 

2. Bonding 구성 

  본딩 구성에는 네트워크 구성과 같이 총 3개가 존재합니다

  3가지 방법으로 네트워크 구성하는 방법은 다른 글에서 설명을 찾아볼수 있습니다.

  http://www.chlux.co.kr/bbs/board.php?bo_table=board02&wr_id=76&sca=OS&page=2

 

  2.1. graphical 설정

    graphical 설정은 명령어 nmtui를 사용하며 기본적으로 NetworkManager가 있어야 합니다. 


    - nmtui 초기 화면

    8f4b3cbfcb0ff223512806c57ede0d62_1588564875_0705.png 

    명령줄에 nmtui를 입력하면 위 그림과 같은 사진이 나오며 기본 설정 방법은 네트워크 구성법과 같습니다.

 

    - nmtui 추가 및 설정 

    8f4b3cbfcb0ff223512806c57ede0d62_1588565527_775.png
    본딩을 구성할때 다른 구성 방법에서는 각 장치를 따로 추가를 해줘야 하지만 nmtui에서는 한번에 구성이 됩니다. 

 

    - Bond 선택 

    8f4b3cbfcb0ff223512806c57ede0d62_1588565816_2015.png
    bond 외에도 team도 있지만 저는 bond를 선택해 구성하겠습니다. 


    - bonding 설정 첫화면

    8f4b3cbfcb0ff223512806c57ede0d62_1588565966_5121.png
    bond를 선택하면 위와 같이 나오며 여기에서 설정이 필요한 내용은 bonding name설정, slave 추가, mode설정, ipv4 설정이 있겠습니다.

 

    - slave 추가 

    8f4b3cbfcb0ff223512806c57ede0d62_1588566580_7933.png
    slave 추가를 할때 존재하는 device를 입력해야 합니다. 만약 잘못 입력할 경우 잘못 입력한 slave는 bonding구성에 추가되지 않으며

    모든 slave를 잘못 입력할경우 bonding구성이 되어도 작동되지 않습니다. 

 

    - nmtui 모드 선택 

    8f4b3cbfcb0ff223512806c57ede0d62_1588567191_9164.png
    모드를 선택할때 보통 대역폭의 확장이 필요하다면 Round-robin을 선택하고 

    대역폭의 확장보다 네트워크의 안정성이 필요하다면 active-backup을 선택합니다. 

    

    - nmtui ip추가

    8f4b3cbfcb0ff223512806c57ede0d62_1588567731_6006.png
    여기에서 Active-Backup을 선택하면 primary를 추가할수 있습니다 최우선으로 설정된 Device를 Active상태로 설정하는 명령어입니다.

     

    primary를 추가할경우 생길수 있는 문제가 있습니다. 

    ens224를 primary로 설정을 했지만 ens224가 잠시 연결 문제가 생겨 ens256으로 넘어갔다가

    다시 ens224로 바로 연결이 변경되는 순간 패킷로스가 생길수 있습니다. 

     

    물론 primary를 추가하고 설정을 하게된다면 다시 넘어가는 경우를 없앨수 있습니다. 

    설정 방법은 nmcli와 config에서 알려드리겠습니다. 

 

    설정에 IP를 추가한다음 설정 저장하고 마치게 되면 별다른 명령어 없이 처음엔 설정이 적용 됩니다. 

  2.2. command 설정 

    command는 nmtui보다 외워야 하는 명령어가 많지만 추가적인 설정을할때 더욱 편합니다. 

     

    - nmcli dev

    8f4b3cbfcb0ff223512806c57ede0d62_1588571638_5663.png 

    nmcli dev로 현재 device를 확인할수 있습니다. 


    - nmcli add bond

    8f4b3cbfcb0ff223512806c57ede0d62_1588571676_7232.png
    nmcli 를 추가할때 옵션을 추가할수 있습니다 만약 primary를 지정하고 싶다면 bond.options를 사용해야합니다.

 

    - nmcli bond.options사용 

    8f4b3cbfcb0ff223512806c57ede0d62_1588572555_7693.png
    위와 같은 옵션을 사용하면 primary를 설정 하지만 오토 페일백을 하지 않아 ens224가 끊어졌다가 다시 연결된다 해도 ens256에서 Active를 유지합니다 

     

    mode=1 위에서 알려드린 0~6까지의 숫자로 옵션을 선택합니다. 숫자가 아닌 정책명으로 할수 있습니다 

    miimon 모니터링 주기 설정입니다  

    primary=ens224 primary 설정 옵션입니다. 

    primary_reselect=2 오토 페일백을 하지 않겠다는 옵션입니다. 0(default)오토페일벡 사용 1 slave중 더 좋은 장치 사용 

 

    - nmcli add slave 

    8f4b3cbfcb0ff223512806c57ede0d62_1588572146_7618.png
    slave를 추가합니다 nmtui와 달리 장치명을 잘못적으면 추가가 안됩니다. 

    

    - nmcli con mod bond0 

    8f4b3cbfcb0ff223512806c57ede0d62_1588572407_6037.png
    위와 같이 하시면 bonding구성이 완료됩니다. 


   2.3 config 설정

    config 설정은 /etc/sysconfig/network-scripts/에 config를 추가하면 됩니다. 

 

    - bond0 설정 

    8f4b3cbfcb0ff223512806c57ede0d62_1588573151_0119.png
    nmcli 와 nmtui로 설정을 해도 파일이 똑같이 생성됩니다 nmcli를 사용하다가 nmtui로 설정할수 있으며 중간에 config로 수정을 할수도 있습니다. 

 

    - slave ens224 

    8f4b3cbfcb0ff223512806c57ede0d62_1588573301_2926.png
    bonding slave는 TYPE, NAME, DEVICE, ONBOOT, MASTER, SLAVE 만 있어도 설정이 됩니다. 

    똑같이 ens256을 추가해준다음 network를 재시작합니다. 

 

    - systemctl restart network 

    8f4b3cbfcb0ff223512806c57ede0d62_1588573428_542.png
    network를 재시작 시켜주면 설정이 변경되거나 추가된것을 다시 불러 옵니다. 

 

    - ip a 

    8f4b3cbfcb0ff223512806c57ede0d62_1588573519_0695.png
 

3. 관련 페이지


  네트워크 설정

   http://www.chlux.co.kr/bbs/board.php?bo_table=board02&wr_id=76&sca=OS&page=2

댓글목록

등록된 댓글이 없습니다.

TECH - 좋아요글 총 건전체보기 >

  • 게시물이 없습니다.
TECH - 좋아요글 더보기
TECH 목록
번호 제목 작성자 작성일 조회수
20 OS LeeHyongDong 아이디로 검색 전체게시물 01-21 3885
[Linux] #2. 클러스터 OCF 및 LSB 구성

카테고리 : OS

3,885 0
작성자 : LeeHyongDong 21/01/21
19 OS LeeHyongDong 아이디로 검색 전체게시물 01-13 3827
[Linux] #1. 클러스터 OCF 및 LSB 구성

카테고리 : OS

3,827 0
작성자 : LeeHyongDong 21/01/13
18 OS LeeHyongDong 아이디로 검색 전체게시물 09-15 3714
[Linux] RedHat Insights 설명 및 설정

카테고리 : OS

3,714 0
작성자 : LeeHyongDong 20/09/15
17 OS LeeHyongDong 아이디로 검색 전체게시물 08-17 3156
[Linux] CentOS 및 Oracle linux에서 RHEL로 전환방법

카테고리 : OS

3,156 0
작성자 : LeeHyongDong 20/08/17
16 OS LeeHyongDong 아이디로 검색 전체게시물 07-28 4278
[Linux] fence loop 설명 및 방지

카테고리 : OS

4,278 0
작성자 : LeeHyongDong 20/07/28
15 OS LeeHyongDong 아이디로 검색 전체게시물 06-08 6574
[Linux] THP 비활성화 방법 및 설명

카테고리 : OS

6,574 0
작성자 : LeeHyongDong 20/06/08
열람중 OS LeeHyongDong 아이디로 검색 전체게시물 04-28 7893
열람중
[Linux] Network Bonding 설명 및 구성

카테고리 : OS

7,893 0
작성자 : LeeHyongDong 20/04/28
13 OS LeeHyongDong 아이디로 검색 전체게시물 04-06 14927
[Linux] Logrotate 설명 및 설정 방법

카테고리 : OS

14,927 0
작성자 : LeeHyongDong 20/04/06
12 OS LeeHyongDong 아이디로 검색 전체게시물 03-16 5927
[Linux] split-brain 현상

카테고리 : OS

5,927 0
작성자 : LeeHyongDong 20/03/16
11 OS LeeHyongDong 아이디로 검색 전체게시물 03-12 9489
[Linux] 오픈소스 모니터링툴 제품 특징

카테고리 : OS

9,489 0
작성자 : LeeHyongDong 20/03/12
Total 30건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top