proxmox가 설치되어 있고 아웃바운드 연결(eth0)이 1개만 있는 서버가 있습니다.
머신 간 네트워킹을 활성화하기 위해 인터페이스 구성에 브리지(vmbr0)를 생성하고 Proxmox 네트워크 모델(하위 노드 NAT)에 따라 구성했습니다.
브리지는 IP를 소유하며 10.1.1.1
내 이해에 따르면 로컬 네트워크와 외부 네트워크 사이의 게이트웨이 역할을 합니다.
이를 달성하려면 서버에서 다음 iptable 정책을 구현하십시오.
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- 10.1.1.0/24 anywhere
ACCEPT all -- anywhere 10.1.1.0/24
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 10.1.1.0/24 anywhere to:x.x.x.x
서버에 설치되어 있고 브리지를 통해 연결된 가상 머신 중 하나에서 Google DNS 서버를 핑하면 ping 8.8.8.8
가상 머신이 Google DNS 서버에서 핑 결과를 얻을 수 있으므로 NAT가 작동하는 것처럼 보입니다.
(nat는 다시 전체 서브넷(10.1.1.0/24)을 나타냅니다.)
이렇게 하면: ping -I vmbr0 8.8.8.8
하지만 호스트에서는 ping 명령이 실패합니다. 이 ping 명령은 브리지 인터페이스를 사용하여 Google DNS 서버를 ping합니다. POSTROUTING 정책을 통해 Google DNS 서버와도 통신할 수 있을 것으로 예상됩니다.
즉, 다른 클라이언트가 브리지를 게이트웨이로 사용하면 인터넷에 연결할 수 있지만 인터페이스 자체가 나가는 인터페이스로 선택되면 경로를 찾을 수 없습니다.
따라서 이것은 내 질문을 불러일으킵니다. 인터페이스를 명시적으로 사용하면 포스트 라우팅 규칙을 건너뛰고 실제로 문제의 컴퓨터에서 라우팅을 위한 절대 끝점으로 간주됩니까?- in a sense: vmbr0 stays vmbr0 and never will be masqueraded to eth0 if you choose to ping over it -
답변1
man ping
, 굵은 글씨:
-I 인터페이스
인터페이스는 다음과 같습니다.주소, 또는인터페이스 이름. 인터페이스가 다음과 같은 경우주소, 이는 다음을 설정합니다.소스 주소지정된 인터페이스 주소로. 인터페이스가 다음과 같은 경우인터페이스 이름, 이는 다음을 설정합니다.소스 인터페이스지정된 인터페이스에.
ping -I vmbr0
문제는 시스템이 궁극적으로 올바른 인터페이스를 선택하도록 하는 것이 아니라 인터페이스를 강제로 사용하도록 하는 데 있습니다 ping -I 10.1.1.1
.
또한 별 차이가 없더라도 nat/POSTROUTING
(아래 참조), 귀하는아니요호스트에서 명령이 실행될 때 라우팅이 수행되므로 일부 체인(예: filter/FORWARD
)이 적용되지 않을 수 있습니다(그러나 nat/POSTROUTING
여전히 적용됩니다. 아래 참조). 대신 호스트에서 명령을 실행할 때 다른 결과가 나타날 수 있다는 점을 명심하십시오.라우팅됨VM은 올바른 ping 명령을 사용하는 경우에는 해당되지 않더라도 규칙에 따라 달라집니다.
이것일반 네트워크의 Netfilter 및 패킷 흐름OUTPUT
회로도는 다른 체인을 통과한 후에도 로컬 프로세스에서 오는 패킷이 nat/POSTROUTING
계속 통과되므로 패킷이 eth0
이를 통과하더라도 여전히 SNAT 처리됨을 보여줍니다. 이는 다음을 사용하여 수행됩니다.ping -I 10.1.1.1 8.8.8.8
반면에 강제 인터페이스를 사용할 경우 를 ping -I vmbr0 8.8.8.8
실행하면 tcpdump
10.1.1.1 vmbr0
부터 8.8.8.8까지의 ARP 요청이 응답되지 않는 것을 볼 수 있습니다.
마지막 질문에 대해: 예, 강제 라우팅은 패킷이 올바른 대상에 도달하는 것을 허용하지 않습니다. vmbr0
SNAT/MASQUERADE는 절대 변장할 수 없습니다.패킷 IP, 인터페이스보다는 목적지까지의 경로에 따라 적용됩니다.