웹사이트 검색

Debian Linux에서 네트워크(NIC) 본딩/팀 구성을 구성하는 방법


NIC 팀 구성은 서버/워크스테이션 컴퓨팅 영역의 중복성과 고가용성에 대한 흥미로운 솔루션을 제시합니다. 여러 네트워크 인터페이스 카드를 보유할 수 있는 기능을 통해 관리자는 특정 서버에 액세스하는 방법을 창의적으로 만들거나 트래픽이 특정 서버를 통과하도록 더 큰 파이프를 만들 수 있습니다.

추가 읽기: Ubuntu에서 네트워크 결합 또는 팀 구성을 구성하는 방법

이 가이드는 데비안 시스템에서 두 개의 네트워크 인터페이스 카드를 팀으로 구성하는 방법을 안내합니다. ifenslave라고 알려진 소프트웨어는 연결된 장치에서 NIC를 연결하고 분리하는 데 사용됩니다. 그러면 결합 장치는 커널과 인터페이스하지만 실제 네트워크 인터페이스 장치(eth0, eth1 등)를 물리적으로 사용하는 네트워크 장치가 됩니다.

Debian Linux에서의 결합

구성하기 전에 가장 먼저 해야 할 일은 시스템을 실제로 구현해야 하는 결합 유형을 결정하는 것입니다. 이 글을 쓰는 시점에서 Linux 커널은 6가지 결합 모드를 지원합니다. 이러한 결합 '모드' 중 일부는 설정이 간단하고 다른 일부는 링크가 연결되는 스위치에 특별한 구성이 필요합니다.

본드 모드 이해

본드 모드 0 – Balance-rr

이 NIC 팀 구성 방법을 '라운드 로빈'이라고 부르므로 이름에 'RR'이 있습니다. 이 결합 방법을 사용하면 네트워크 패킷이 결합된 인터페이스를 구성하는 각 네트워크 인터페이스 카드를 통해 순환됩니다.

예를 들어 eth0, eth1eth2가 모두 bond0 인터페이스에 종속된 시스템입니다. 본드 모드 0으로 활성화되면 이 인터페이스는 첫 번째 패킷을 eth0로 보내고, 두 번째 패킷을 eth1로 보내고, 세 번째 패킷을 eth0으로 보냅니다. Strong>eth2, 그리고 네 번째 패킷으로 eth0에서 다시 시작합니다. 여기가 모드의 '라운드 로빈' 이름을 얻는 곳입니다.

본드 모드 1 – 활성-백업

이 연결 방법을 사용하면 하나의 네트워크 인터페이스만 활성화되고 연결의 다른 인터페이스는 기본 네트워크 인터페이스 카드에 대한 링크에 오류가 발생할 때까지 기다립니다.

본드 모드 2 – 밸런스 XOR

밸런스 XOR 본드 모드에서 본드는 소스 및 대상 mac 주소를 평가하여 네트워크 패킷을 보낼 인터페이스를 결정합니다. 이 방법은 주어진 Mac 주소에 대해 동일한 인터페이스를 선택하므로 결과적으로 로드 밸런싱 및 내결함성이 가능합니다.

본드 모드 3 – 방송

이 방법에서 결합 장치는 모든 슬레이브 인터페이스로 데이터를 전송하므로 이 특정 결합 방법의 이름은 '브로드캐스트'입니다. 이 방법은 용도가 거의 없지만 일정 수준의 내결함성을 제공합니다.

본드 모드 4 – 802.3ad

이는 링크 집계를 위한 특수 결합 방법이며 이 특정 결합 인터페이스가 연결되는 스위치에 특별한 구성이 필요합니다. 이 방법은 링크 집합에 대한 IEEE 표준을 따르며 내결함성과 증가된 대역폭을 모두 제공합니다.

본드 모드 5 - 전송 로드 밸런싱

TLB에서 본드는 정상적으로 슬레이브 인터페이스에서 트래픽을 수신하지만 시스템이 트래픽을 전송해야 하는 경우 각 인터페이스의 로드/큐를 기반으로 데이터를 전송하는 데 가장 적합한 인터페이스를 결정합니다. 인터페이스.

본드 모드 6 – 적응형 로드 밸런싱

ALB에서 본드는 본드 모드 5와 유사하게 로드 밸런싱을 수행하지만 로드 수신 밸런스 기능도 추가되었습니다.

시스템이 수행할 역할에 따라 적절한 결합 방법을 선택하는 것이 필수적입니다. 이 튜토리얼은 두 개의 네트워크 인터페이스(eth0eth1)를 사용하는 Debian Jessie에서 수행되며 결합 모드 1<로 설정됩니다. 또는 활성 백업.

그러나 네트워크 인터페이스 파일만 변경하면 되기 때문에 다양한 모드 간에 전환하는 것은 매우 간단합니다(스위치 구성이 필요하므로 본드 모드 4를 선택하지 않는다고 가정).

NIC 팀 구성

이 프로세스의 첫 번째 단계는 리포지토리에서 적절한 소프트웨어를 얻는 것입니다. Debian용 소프트웨어는 ifenslave로 알려져 있으며 'apt'를 사용하여 설치할 수 있습니다.

apt-get install ifenslave-2.6

소프트웨어가 설치되면 현재 설치와 향후 재부팅 시에 결합 모듈을 로드하도록 커널에 지시해야 합니다. 이번 한 번만 모듈을 로드하려면 'modprobe' 유틸리티를 사용하여 커널 모듈을 로드할 수 있습니다.

modprobe bonding

다시 말하지만, 시스템 재부팅 시 이 결합이 활성화되도록 하려면 '/etc/modules' 파일을 수정하여 시작 시 결합 모듈을 로드하도록 커널에 알려야 합니다.

echo 'bonding' >> /etc/modules 

이제 커널이 NIC 본딩에 필요한 모듈을 인식했으므로 실제 본딩된 인터페이스를 생성할 차례입니다. 이는 '/etc/network/interfaces'에 있는 인터페이스 파일을 통해 수행되며 텍스트 편집기로 편집할 수 있습니다.

nano /etc/network/interfaces

이 파일에는 시스템이 연결한 모든 네트워크 장치에 대한 네트워크 인터페이스 설정이 포함되어 있습니다. 이 예에는 두 개의 네트워크 카드(eth0eth1)가 있습니다. 두 개의 물리적 네트워크 카드를 하나의 논리적 인터페이스로 묶는 데 적합한 본드 인터페이스를 이 파일에 생성해야 합니다. 이것은 매우 단순한 인터페이스 파일이지만 작동하는 본드 인터페이스를 생성하는 데 필요한 모든 작업을 수행합니다.

첫 번째 스탠자(위의 빨간색 상자)는 표준 루프백 인터페이스 구성입니다. 'auto lo'는 시작 시 어댑터를 자동으로 실행하도록 커널에 알립니다. 'iface loinet loopback'은 이 인터페이스가 시스템의 루프백 인터페이스이거나 보다 일반적으로 127.0.0.1로 참조된다는 것을 시스템에 알려줍니다.

두 번째 스탠자(위의 노란색 상자)는 사용될 실제 본드 인터페이스입니다. 'auto bond0'는 시스템 시작 시 자동으로 본드를 초기화하도록 시스템에 지시합니다. 'iface bond0 inet dhcp'는 분명할 수 있지만 만일의 경우에 대비하여 이 스탠자는 bond0이라는 인터페이스가 DHCP를 통해 네트워크 정보를 얻어야 한다고 명시합니다. (동적 호스트 제어 프로토콜).

'bond-mode 1'은 이 특정 결합 인터페이스에서 사용되는 결합 모드를 결정하는 데 사용됩니다. 이 경우 bond-mode 1은 이 본드가 사용할 본드의 기본 인터페이스를 나타내는 'bond-primary' 옵션이 있는 활성 백업 설정임을 나타냅니다. 'slaves eth0 eth1'는 어떤 물리적 인터페이스가 이 특정 결합 인터페이스의 일부인지를 나타냅니다.

다음 몇 줄은 링크 오류가 발생할 경우 본드가 기본 인터페이스에서 슬레이브 인터페이스 중 하나로 전환되어야 하는 시기를 결정하는 데 중요합니다. Miimon은 연결 링크 상태를 모니터링하는 데 사용할 수 있는 옵션 중 하나이며, 다른 옵션은 arp 요청을 사용하는 것입니다.

이 가이드에서는 miimon을 사용합니다. 'bond-miimon 100'은 커널에게 100ms마다 링크를 검사하도록 지시합니다. 'bond-downdelay 400'은 시스템이 현재 활성 인터페이스가 실제로 다운되었다고 결론을 내리기 전에 400ms를 기다린다는 의미입니다.

'bond-updelay 800'은 링크가 활성화된 후 800ms까지 새로운 활성 인터페이스를 사용하여 기다리도록 시스템에 지시하는 데 사용됩니다. updelaydowndelay에 대한 참고 사항입니다. 이 두 값은 모두 miimon 값의 배수여야 하며 그렇지 않으면 시스템이 반내림됩니다.