LXC 라우팅 컨테이너 서브넷 라우팅

LXC 라우팅 컨테이너 서브넷 라우팅

2개의 NIC(이더넷 포트 1개, 무선 포트 1개)가 있는 CentOS 7 상자가 있습니다. 다음 요구 사항을 충족하는 라우터 역할을 하는 lxc 컨테이너를 만들고 싶습니다.

  1. Hostapd를 실행할 때 액세스 포인트에 연결된 클라이언트는 모든 데이터가 이 컨테이너를 통해 라우팅되어야 합니다.
  2. 설치된 다른 모든 lxc 컨테이너도 이 라우팅 컨테이너를 통해 모든 데이터를 라우팅해야 합니다.
  3. 이더넷 포트가 인터넷에 연결되어 있으면 호스트와 모든 컨테이너는 물론 액세스 포인트에 연결된 모든 클라이언트도 인터넷에 액세스할 수 있어야 합니다.

이를 구성하기 위해 다음을 수행했습니다.

  • 라우팅 lxc 컨테이너 생성
  • 호스트에는 인터페이스 eth0 및 wlan0이 있습니다. 또한 브릿지인 br-eth0과 br-wlan0을 생성하고 이 두 인터페이스를 각각 추가했습니다.
  • br-eth0은 eth0 NIC를 통해 외부 라우터에 연결하기 위해 dhcp 클라이언트로 구성됩니다.
  • br-wlan0의 고정 IP는 10.0.0.1이고 dnsmasq는 해당 인터페이스를 수신하고 10.0.0.0/24 서브넷에서 IP 주소를 발급합니다.
  • 해당 브리지(leth0, leth1)에 연결된 2개의 인터페이스를 생성하도록 lxc 라우팅 컨테이너를 구성했습니다. leth0은 dhcp 클라이언트이고 leth1의 고정 IP 주소는 10.0.0.201입니다.
  • 라우팅 컨테이너의 세 번째 인터페이스에도 연결된 br-router라는 또 다른 브리지를 만들었습니다. 이 브리지는 호스트에서 고정 IP 주소 192.168.3.254를 가지며, 라우팅 컨테이너(leth2)의 인터페이스는 고정 IP 주소 192.168.3.1을 갖습니다.
  • 라우팅 컨테이너도 dnsmasq를 실행하고 leth2 인터페이스를 수신하며 192.168.3/24 서브넷(.3 - .200)에 IP 주소를 제공하므로 이 브리지를 가져오는 다른 lxc 컨테이너에는 모든 IP 주소가 제공됩니다. 해당 서브넷에서
  • 라우팅 컨테이너의 leth0에서 가장을 켰습니다.
  • 호스트 내에서 발생하는 모든 트래픽이 라우팅 컨테이너를 통해 라우팅되도록 호스트의 기본 게이트웨이를 192.168.3.1로 구성했습니다.

테스트 목적으로 br-router를 컨테이너로 가져오는 단일 인터페이스를 포함하는 두 번째 lxc 컨테이너도 만들었습니다. 이 컨테이너는 포트 8080에서 웹페이지를 호스팅합니다. 해당 단일 인터페이스(teth0)는 dhcp를 통해 IP 주소가 발급됩니다. (이 경우 192.168.3.9)

이 설정을 사용하면 호스트, 라우팅 컨테이너 및 테스트 컨테이너 내에서 인터넷에 성공적으로 연결할 수 있습니다. 또한 라우팅 컨테이너와 테스트 컨테이너 모두에서 컬링할 수 있습니다.http://192.168.3.9:8080웹페이지를 성공적으로 검색했습니다.

따라서 요구사항 2와 3이 충족됩니다. 그러나 클라이언트를 이 시스템에 연결할 때 10.0.0.0/24 서브넷의 IP 주소가 제공되지만(br-wlan0에서 실행되는 dnsmasq를 통해) 인터넷에 연결되어 있지 않습니다. 라우팅이 약간 변경되었거나 그래서 제가 여기 있는 것입니다.) 또한 leth1의 라우팅 컨테이너에서 방화벽을 사용하여 포트 80에서 192.168.3.9:8080으로 포트 전달을 시도했습니다. 이를 사용하여 테스트 컨테이너에서 연결된 클라이언트로 웹 페이지를 제공할 수 있기를 바랍니다.http://10.0.0.201- 하지만 그런 행운은 없습니다. (즉, 이 포트 전달 시도를 통해 호스트의 201 주소를 통해 웹 사이트에 액세스할 수 있습니다)

라우팅 변경, IP 테이블 규칙, 포트 포워딩 규칙 등을 조합하면 이 모든 것이 잘 작동할 것이라고 확신합니다. 하지만 며칠 동안 실험을 해본 후에도 평생 동안 그것을 알아낼 수는 없습니다. 저는 이 모든 네트워킹에 관해 아직 초보이기 때문에 누군가가 저를 도와줄 수 있기를 바랍니다. 현재 구성에 대해 충분히 괜찮은 그림을 그렸기를 바랍니다.

감사해요!

관련 정보