lxc 컨테이너의 동적 네트워크 장치에 대한 영구 브리징을 설정하시겠습니까?

lxc 컨테이너의 동적 네트워크 장치에 대한 영구 브리징을 설정하시겠습니까?

TL:DR /etc/network/interfaces의 브리지 구성에 네트워크 장치를 추가하지 않고 브리지를 영구적으로(재부팅 후에도 계속 작동하도록) 어떻게 만들 수 있나요?

안녕하세요, 저는 방금 우분투 14.04에서 lxc를 사용하기 시작했습니다.

내가 달성하려는 설정은 haproxy가 포함된 컨테이너 하나와 nginx가 포함된 컨테이너 하나입니다.

iptables를 통해 외부 요청 dnat를 haproxy로 보내고 거기에서 nginx로 보냅니다.

모든 컨테이너는 자체 서브넷에 있습니다. 컨테이너 간의 라우팅/패킷 필터링은 호스트에 의해 수행됩니다.

지금까지 설정이 절반 정도 진행되었습니다.

brctl을 사용하여 두 개의 브리지를 만들고 브리지에 IP를 추가했습니다.

br-haproxy: 10.100.0.1/24
br-nginx: 10.100.3.1/24

그런 다음 lxc 구성을 통해 해당 컨테이너에 해당 브리지를 추가했습니다.

nginx got br-nginx
haproxy got br-haproxy

그런 다음 컨테이너에 IP 주소를 구성했습니다.

haproxy: 10.100.0.10/24 GW 10.100.0.1
nginx: 10.100.3.10/24 GW 10.100.3.1

이제 두 컨테이너 사이를 핑할 수 있습니다. 이제 iptables의 전달 정책을 거부로 설정하여 액세스를 거부합니다. 이제 iptables를 통해 두 컨테이너 간의 트래픽을 제어할 수 있습니다.

좋아, 지금까지는 아주 좋았어. 지금 내가 이루고 싶은 것은 다리를 영구적으로 만드는 것입니다. /etc/network/interfaces에 bridgeconfig를 추가했는데 브릿지에 추가할 네트워크 장치가 없어서 이 부분은 무시했습니다.

지금 브리지를 시작하려고 하면 장치(예: br-haproxy)를 찾을 수 없다는 오류가 발생합니다.

브리지 구성에 장치가 누락되어 문제가 발생한 것으로 나타났습니다. 호스트의 eth0을 브리지 구성에 추가하면 브리지를 시작할 수 있고 완벽하게 작동합니다. 하지만 그것은 나에게 필요한 것이 아닙니다.

LXC는 컨테이너가 시작될 때 컨테이너에 인터페이스를 동적으로 생성하고 이를 해당 브리지에 추가합니다.

여기에 내 문제가 있습니다. 시작 시 네트워크 장치를 추가하지 않고 브리지를 영구화하려면 어떻게 해야 합니까?

어떻게 든 문제를 명확하게 만들었기를 바랍니다. :-)

미리 감사드립니다.

답변1

bridge_ports none이 인터페이스에 멤버를 추가하지 않고 시작 시 작업하는 데 사용한다면 어떻게 될까요?

auto br-haproxy
iface br-haproxy inet static
       bridge_ports none
       bridge_fd 0 
       bridge_waitport 0
       address 10.100.0.1
       netmask 255.255.255.0

bridge_fd멤버 포트가 온라인 상태가 될 때 전달 지연을 방지 waitport하고 포트가 온라인 상태가 될 때까지 기다리는 지연을 방지합니다.

관련 정보