저는 OVHcloud에 4개의 서버를 만들었고 모두 Ubuntu 22를 실행했습니다. 그들은 다음 IP를 사용하여 간단한 테스트 네트워크를 형성합니다.
Client_A:
ens3 - public IP
ens4 - 10.200.0.1
Server_B:
ens3 - public IP
ens4 - 10.200.0.2
Server_C:
ens3 - public IP
ens4 - 10.201.0.1
Client_D:
ens3 - public IP
ens4 - 10.201.0.2
StrongSwan을 사용하여 Server_B와 Server_C 사이에 IPsec 터널을 만들었습니다. ipsec status 명령의 출력에 표시된 것처럼 성공적으로 설정되었습니다.
B_to_C{1}: INSTALLED, TUNNEL, reqid 1, ESP SPIs: c333a692_i ca3c274b_o B_to_C{1}: 10.200.0.0/16 === 10.201.0.0/16
C_to_B{2}: INSTALLED, TUNNEL, reqid 1, ESP SPIs: ca3c274b_i c333a692_o C_to_B{2}: 10.201.0.0/16 === 10.200.0.0/16
Client_A에 고정 경로를 추가했습니다.
10.201.0.0/16 via 10.200.0.1 dev ens4
...그리고 Client_D...
10.200.0.0/16 via 10.201.0.1 dev ens4
두 IPsec 서버 모두에 net.ipv4.ip_forward = 1을 포함하도록 /etc/sysctl.conf를 설정했습니다.
Client_A에서 Client_D로 ping을 하면 응답이 없지만 Server_B에서 tcpdump를 실행하면 Client_D가 Client_A에 에코 응답을 보내는 것으로 표시되지만 어떤 이유로 Server_B에서 중지되고 Client_A에 도달하지 않습니다.
10.201.0.2 > 10.200.0.2: ICMP echo reply, id 56, seq 2, length 64
Server_B에서 Client_D로 핑을 보내면 Server_B가 올바른 응답을 받습니다.
그러면 누군가 Client_A에서 Client_D로의 에코 요청에 대한 응답이 개시자(Client_A)에 도달할 수 없는 이유를 설명해 주시겠습니까?
어떤 방화벽 규칙도 패킷을 차단하지 않습니다.