
목표
- 여러 컨테이너가 시작되는 가상 네트워크 설정
- 각 컨테이너는 호스트 네트워크의 IP를 통해 액세스할 수 있어야 합니다.
- 컨테이너는 루트 없이 실행됩니다(CI 실행기에서 테스트 네트워크를 실행하기 위한 것입니다).
- 가상 네트워크로 필요한 전달을 허용하는 특정
iptables
명령을 실행하는 것이 허용됩니다.sudo
게시된 포트 사용을 피하는 이유는 가상 네트워크가 더 많은 수의 서비스가 별도의 하드웨어에서 실행되고 서로 다른 IP를 사용한다는 사실이 조정에 중요한 "현실"과 유사하기를 원하기 때문입니다. 서비스.
나의 접근 방식
$ podman network create --subnet 10.10.10.0/24 virtnet1
$ ( export DBUS_SESSION_BUS_ADDRESS=; podman run --rm -d --name nmt --network virtnet1 praqma/network-multitool )
( DBUS
해킹은 다음에 대한 해결 방법입니다.이 문제)
지금 보면 iptables -L
사슬이 보이고 CNI-FORWARD
순진하게도 단순한 가정을 하고 있었습니다.
sudo iptables -A CNI-FORWARD -d 10.10.10.0/24 -j ACCEPT
호스트 네트워크에서 컨테이너에 액세스할 수 있습니다. 그러나 그것들은 여전히 엄격하게 분리되어 있고 접근할 수 없는 것처럼 보입니다. ( 체인 에는 기본적으로 정책이 FORWARD
있으므로 문제가 없습니다.)ACCEPT
그것은 근본적으로 불가능합니까(이에 대한 어떤 예도 찾지 못했습니다), 아니면 제가 뭔가 잘못하고 있는 것입니까?
CNI-*
논리적으로 루트가 없는 컨테이너는 어쨌든 관련된 어떤 것에도 영향을 미칠 수 없기 때문에 체인이 이전의 루트 풀 컨테이너와 관련될 수 있습니까 iptables
?