
상황에 맞게 개인용으로 3노드 Proxmox 클러스터를 설정하고 4개의 인터페이스(각 메시 네트워크에 대해 노드당 2개의 인터페이스)에 2개의 서로 다른 메시 네트워크를 설정하고 있습니다. 이렇게 하면 각 노드가 다른 모든 노드와 직접 연결됩니다. 네트워킹이 작동하도록 하기 위해 다음과 같이 구성된 각 인터페이스의 고정 경로에 의존합니다.
auto lo
iface lo inet loopback
iface enp5s0f0 inet manual
iface enp5s0f1 inet manual
auto eno1
iface eno1 inet static
address 10.83.86.10/24
up ip route add 10.83.86.11/32 dev eno1
down ip route del 10.83.86.11/32
auto eno2
iface eno2 inet static
address 10.83.86.10/24
up ip route add 10.83.86.12/32 dev eno2
down ip route del 10.83.86.12/32
auto eno3
iface eno3 inet static
address 10.83.67.10/24
up ip route add 10.83.67.11/32 dev eno3
down ip route del 10.83.67.11/32
auto eno4
iface eno4 inet static
address 10.83.67.10/24
up ip route add 10.83.67.12/32 dev eno4
down ip route del 10.83.67.12/32
auto vmbr0
iface vmbr0 inet static
address 192.168.0.20/24
gateway 192.168.0.1
bridge-ports enp5s0f0
bridge-stp off
bridge-fd 0
source /etc/network/interfaces.d/*
IP 주소는 노드마다 다르지만 구성은 동일합니다. 인터페이스 eno1
및 네트워크 eno2
의 일부 10.83.86.0
이며 네트워크 의 일부 eno3
입니다 .eno4
10.83.67.0
Proxmox에서 실행되는 VM 및 컨테이너에 이러한 네트워크를 노출하는 방법을 모른다는 문제가 발생합니다. 예를 들어, 메시 네트워크에만 노출할 계획인 Proxmox용 웹 인터페이스의 로드 밸런싱과 프록시 터널링을 원합니다. 또 다른 예는 Ceph Kubernetes CSI 드라이버와 같은 Ceph 공용 네트워크에 액세스하려면 특정 워크로드가 필요하다는 것입니다.
내가 이해하는 바에 따르면 Proxmox에는 가상 네트워크 카드 가상화를 위한 Linux 브리지가 필요합니다. 인터페이스 구성을 다음과 같이 다시 작성하려고 했습니다.
auto eno1
iface eno1 inet manual
up ip route add 10.83.86.11/32 dev eno1
down ip route del 10.83.86.11/32
auto eno2
iface eno2 inet manual
up ip route add 10.83.86.12/32 dev eno2
down ip route del 10.83.86.12/32
auto vmbr1
iface vmbr1 inet static
address 10.83.86.10/24
bridge-ports eno1 eno2
bridge-stp off
bridge-fd 0
하지만 이 구성은... ifreload -a
. 이유를 완전히 이해하지 못합니다.
답변1
경로는 브리지 포트가 아닌 IP 인터페이스에 속합니다. 브리지 포트에는 문자 그대로 아무 것도 포함되어서는 안 됩니다. 모든 경로는 IP 주소가 있는 인터페이스와 연결됩니다.
다음과 같은 경우를 고려해보세요.
auto eno1
iface eno1 inet static
address 10.83.86.10/24
up ip route add 10.83.86.11/32 dev eno1
down ip route del 10.83.86.11/32
그러면 다음과 같이 됩니다:
iface eno1 inet manual
auto vmbr1
iface vmbr1 inet static
address 10.83.86.10/24
up ip route add 10.83.86.11/32 dev vmbr1
down ip route del 10.83.86.11/32
bridge-ports eno1
bridge-stp off
bridge-fd 0
모든 IP 관련 항목이 물리적 NIC에서 브리지로 어떻게 이동했는지 확인하세요. NIC는 L2 전용 인터페이스가 됩니다. 스위치 포트라고 생각하세요. 스위치에는 각 인터페이스에 IP 주소가 없으며 브리지 인터페이스에도 IP 주소가 없습니다.
에서 모두 지정하여 여러 물리적 NIC를 브리지할 수 있습니다 bridge-ports
. 어떤 포트에도 IP 구성이 없습니다. 오직 다리만이 그것을 가질 수 있습니다.
각 인터페이스에 개별 /32 주소와 개별 경로를 가짐으로써 달성하려는 목표를 이해할 수 없습니다. 왜 그런 걸 원하는지는 모르겠지만, 이 네트워크 설정은 좀 이상해 보입니다.
그러나 질문과 같이 네트워크(계층 3) 구조를 유지하려면 각 IP 주소에 대한 전용 브리지를 만들고 해당 VM을 해당 브리지에 배치해야 합니다.
이 모든 것이 단지 호스트-VM 통신을 위한 것이라면 해당 브리지에 물리적 NIC를 가져올 필요가 없습니다. vmbrX
없이 떠나세요어느포트를 브리지하지만 IP 주소를 구성합니다. VM을 "빈" 브리지에 넣을 수 있으며 VM은 서로 및 호스트 간에 통신합니다. 물리적 NIC는 이 가상 네트워크 세그먼트를 계층 2의 물리적 네트워크(예: 이더넷)와 연결해야 하는 경우에만 브리지의 일부이면 됩니다.