Debian 11에서 VLAN 및 브리지와 바인딩

Debian 11에서 VLAN 및 브리지와 바인딩

Linux에서 구성하려고 합니다.활성 백업 바인딩(2개의 물리적 인터페이스 eth2 및 eth3, 하나 사용) 그리고 또한VLAN 2개, 내부 브리지에 연결합니다. 두 가지 연결 옵션이 있는데 둘 다 작동합니다.

  1. 첫 번째 방법은 잘 작동하고 단순해 보이지만 모든 VLAN은 단일 물리적 인터페이스(낮은 대역폭)를 통해 라우팅됩니다.
  2. 두 번째는 문제가 있지만 eth2를 통해 하나의 VLAN을 라우팅하고 eth3을 통해 두 번째 VLAN을 라우팅할 수 있기 때문에(내결함성이 있는 더 큰 대역폭) 두 번째를 선호합니다.
  • bond-mode 4 = 802.3ad나는 AKA LACP(서버가 다른 Cisco 스위치에 연결되어 있으며 이러한 구성과 관련된 몇 가지 문제를 듣고 본 적이 있음)를 원하지 않으므로 bond-mode active-backup충분해야 합니다.
# 1. Two NICs agregated to one bonding, and then separate VLANS from bonding interface: 

eth2           bond1.10  - xenbr10
     > bond1 <
eth3           bond1.15 - xenbr15


# 2. VLANs separated form physical NIC, then aggregate to separate binding interfaces.

       eth2.15 ...
eth2 <
       eth2.10
                > bond10  - xenbr10
       eth3.10
eth3 <
       eth3.15 ...

나는 Debian 11, 2개의 네트워크 인터페이스, 패키지가 설치된 서버를 가지고 있습니다 vlan. (테스트 저장소의 2.13 버전에서는 다음과 같은 이유로 인해 bridge-utils)ifenslave이 문제2.12부터 시작). 모듈 8021qbonding시스템에 로드됩니다.

질문 1:여기서 첫 번째 연결 옵션이 모범 사례입니까?왜? 인터넷에서 찾을 수 있는 대부분의(또는 어쩌면 전부) 튜토리얼은 처음 연결하는 것에 관한 것이기 때문에 묻습니다.데비안 위키)

옵션 1

이것은 잘 작동하며 콘솔이나 구성 파일을 통해 수행할 수 있습니다. 단점은 두 VLAN이 항상 단일 인터페이스를 사용하여 전송된다는 것입니다. 내 현재 항목 /etc/network/interfaces(중요하지 않은 요소가 제거됨)

iface eth2 inet manual
iface eth3 inet manual

auto bond1
iface bond1 inet manual
    bond-slaves eth2 eth3
    bond-mode active-backup
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200

iface bond1.10 inet manual
    vlan-raw-device bond1
iface bond1.15 inet manual
    vlan-raw-device bond1

auto xenbr10
iface xenbr10 inet static
    address 1.2.3.4/24
    bridge_ports bond1.10

시스템을 다시 시작한 후 이 구성은 제대로 작동하지만 두 번째 옵션을 구성하고 사용하고 싶습니다.

옵션 2: 셸에서 실행, 구성 파일에서는 실행할 수 없음

명령줄에서 이를 구성할 수 있습니다.

ifconfig eth2 up
ifconfig eth3 up
#setting up VLANs
ip link add link eth2 name eth2.10 type vlan id 10
ip link add link eth3 name eth3.10 type vlan id 10

#creating bonding interface with 2 slaves NIC
ip link add name bond1 type bond mode active-backup
ip link set dev eth2.10 down
ip link set dev eth3.10 down
ip link set master bond10 dev eth2.10
ip link set master bond10 dev eth3.10

ip link set up dev bond10
ip link set dev eth2.10 up
ip link set dev eth3.10 up

### Bridge + bonding
brctl addbr xenbr10
brctl addif xenbr10 bond10

ip addr add 1.2.3.4/24 dev xenbr10
ip link set dev xenbr10 up

네트워크가 작동 중입니다.

cat /proc/net/bonding/bond10
Ethernet Channel Bonding Driver: v5.10.0-12-amd64

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth2.10
MII Status: up
(..)

Slave Interface: eth2.10
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: (..)

Slave Interface: eth3.10
MII Status: up
(..)

하지만 프로필을 만들어 영구적으로 만들 수는 없습니다. 나는 이와 같은 많은 옵션을 시도했지만 운이 없습니다. eth2.10인터페이스를 일부 인터페이스에 직접 연결 하면 xenbr10작동합니다.

iface eth2.10 inet manual
    vlan-raw-device eth2
iface eth3.10 inet manual
    vlan-raw-device eth3
    bond-master bond10 #It doesn't change nothing, for testing

auto bond10
iface bond10 inet manual
    bond-slaves eth2.10 eth3.10
    #bond-slaves none
    bond-mode active-backup
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200

auto xenbr10
iface xenbr10 inet static
    address 1.2.3.4/24
    bridge_ports bond1.10

시스템을 다시 시작한 후 일반적으로 다음과 같은 오류가 발생합니다.

ifup[686]: eth2.10을 bond10에 종속시킬 수 없습니다. bond10 준비되었으며 본드 인터페이스가 있습니까?

질문 2:이 구성에 어떤 문제가 있나요?나는 노력했다

  • eth2.10 구성을 bond10 구성보다 높거나 낮게 설정하고,
  • bond-master bond10eth2.10 및 bond-slaves nonebond10 구성 섹션 의 항목을 사용하십시오 .
  • 부분 사용 bond-slaves eth2.10 eth3.10항목bond10
  • 사용auto eth2.10

답변1

하루 동안 검색하고 테스트한 끝에 두 가지 해결책을 찾았습니다. 첫 번째 구성은 우아하지 않을 수 있지만 작동합니다.

# Using default ifupdown on Debian 11:
# Set up NIC and NIC's alias with VLAN:
auto eth2
iface eth2 inet manual
    post-up ip link add link eth2 name eth2.10 type vlan id 10
    post-up ip link add link eth2 name eth2.15 type vlan id 15
auto eth3
iface eth3 inet manual
    post-up ip link add link eth3 name eth3.10 type vlan id 10
    post-up ip link add link eth3 name eth3.15 type vlan id 15

auto bond533
iface bond533 inet manual
    bond-slaves eth2.533 eth3.533
    bond-mode active-backup
# (...)

AB의 의견에 감사드립니다(협회) 를 사용하여 더 나은 솔루션을 찾았습니다 ifupdown2. 참고: 이 패키지를 설치하는 동안(이전 버전 제거 ifupdown) 다시 시작할 때까지 네트워크가 끊어졌습니다(테스트를 거치지 않고 네트워크를 다시 시작하는 것으로 충분할 수도 있음).

# After installing ifupdown2:
# No need to set up physical NIC or VLAN interface!
#iface eth2.10 inet manual
#   vlan-raw-device eth2
#iface eth2.533 inet manual
#   vlan-raw-device eth2

#Set up bonding and brige (the same as with ifupdown)
auto bond533
iface bond533 inet manual
    bond-slaves eth2.533 eth3.533
    bond-mode active-backup
# (...)

이렇게 간단한 구성이 올바르게 작동한다는 것이 조금 이상합니다. ifupdown2필요한 본딩된 슬레이브 네트워크 인터페이스(또는 심지어 VLAN)를 미리 구성하지 않고도 설정할 수 있는 것 같습니다 .

내 구성은 다음 페이지를 기반으로 합니다. https://docs.nvidia.com/networking-ethernet-software/knowledge-base/Configuration-and-Usage/Network-Interfaces/Compare-ifupdown2-with-ifupdown/

관련 정보