IPsec 터널에 3 개의 IP xfrm 정책 만 필요한 이유는 무엇입니까?


8

strongswan(v5.2.0) 인스턴스 (사이트 A)와 RouterOS라우터 (사이트 B) 사이에 사이트 간 IPsec 터널이 실행 중 입니다. 사이트 A ( 10.10.0.0/16) 및 B ( 10.50.0.0/16) 에 대한 두 개의 프라이빗 서브넷 설정의 호스트는 서로 올바르게 통신 할 수 있습니다.

내가 이해하지 못하는 것은 ip xfrm policy사이트 A의 라우터 (공용 IP가 난독 화 된) 의 다음 출력입니다 . 이 정책은에 의해 작성되었으며 strongswan수동으로 설치하거나 수정하지 않았습니다.

ip xfrm policy 
src 10.50.0.0/16 dst 10.10.0.0/16 
    dir fwd priority 2947 ptype main 
    tmpl src <PUBLIC_IP_B> dst <PUBLIC_IP_A>
        proto esp reqid 1 mode tunnel
src 10.50.0.0/16 dst 10.10.0.0/16 
    dir in priority 2947 ptype main 
    tmpl src <PUBLIC_IP_B> dst <PUBLIC_IP_A>
        proto esp reqid 1 mode tunnel
src 10.10.0.0/16 dst 10.50.0.0/16 
    dir out priority 2947 ptype main 
    tmpl src <PUBLIC_IP_A> dst <PUBLIC_IP_B>
        proto esp reqid 1 mode tunnel

입력 및 출력에 대한 정책이 각각 있지만 사이트 B에서 사이트 A로 전달하는 정책은 하나뿐입니다. 하지만 난 여전히 성공적으로, 예를 들어, Ping 할 수 있습니다 10.50.4.11에서 10.10.0.89:

ping -R 10.50.4.11
PING 10.50.4.11 (10.50.4.11): 56 data bytes
64 bytes from 10.50.4.11: icmp_seq=0 ttl=62 time=10.872 ms
RR:     10.10.0.89
    10.50.0.1
    10.50.4.11
    10.50.4.11
    10.50.4.11
    10.10.0.2
    10.10.0.89

이 경로 추적에 대한 흥미로운 부분은 사이트 A의 라우터 ( 10.10.0.2)가 Ping 대상에서 되돌아 오는 경로에만 표시되고 사이트 B의 라우터 ( 10.50.0.1)는 발신 경로에 대해서만 나열 된다는 것 입니다.

이것은 실제로 사이트 A의 라우터에 IPsec 터널 10.10.0.0/1610.50.0.0/16통해 전달하는 데 필요한 정방향 정책이 없음 을 확인하는 것처럼 보이지만 그 이유를 이해하지 못합니다.

설명해 주셔서 감사합니다!

답변:


9

FWD 정책은 하지 자동으로 커널에 의해 생성 된 대신 키잉 데몬 (이 경우 strongSwan)에 의해 설치 얻을.

터널 모드에서 VPN 게이트웨이 뒤의 호스트로 트래픽을 전달할 수 있어야합니다.

게이트웨이 자체에 설치되지 않은 IP 주소 인 인바운드 패킷의 경우 암호 해독 후 fwd 정책이 검색됩니다. 로컬 트래픽의 경우 정책 에서 일치하는 항목 찾습니다. 아무것도 발견되지 않으면 패킷이 삭제됩니다.

VPN 게이트웨이 자체에서 생성되지 않은 아웃 바운드 트래픽의 경우 fwd 정책이 검색됩니다. 패킷이 암호화되지 않은 경우 일치하는 fwd 정책이 없으면 실패하지 않습니다 . 두 터널 사이에 트래픽이 전달되면 하나의 방화벽으로 설치된 인바운드 fwd 정책 이 다른 방화벽의 아웃 바운드 fwd 정책으로 작동 하고 그 반대의 경우도 마찬가지입니다. 그 후, 패킷을 터널링할지 여부를 결정하기 위한 아웃 정책이 조회됩니다. 그렇기 때문에 아웃 바운드 방향 의 fwd 정책이 필요하지 않은 경우가 많습니다.

그러나 모든 우선 순위와 일치하는 우선 순위가 낮은 드롭 / 블록 fwd 정책이있는 경우 (예 : 터널이 설정되지 않은 경우 일반 텍스트 트래픽이 게이트웨이를 통과하지 못하도록) 차단 정책 에 따라 아웃 바운드 방향 의 fwd 정책이 명시 적으로 필요합니다. 그렇지 않으면 암호화되지 않은 모든 트래픽을 삭제하십시오. strongSwan 설치를 시작하는 이유입니다 FWD 와 양쪽 방향으로 정책을 5.5.0 .


이 답변의 이전 버전에서는 단일 (인바운드) fwd 정책이 대칭 적이라고 설명했습니다 (즉, srcdst 가 어느 방향 으로든 작동 함). 사실이 아니지만 많은 상황에서 위에서 설명한 것처럼 이것은 중요하지 않습니다.


매우 흥미 롭습니다. 그러나 src와 dest 주소가 일치하지 않을 때 패킷이 fwd 정책을 통해 라우팅되는 이유는 무엇입니까? 위의 예에서, 내 핑에서 나가는 패킷의 소스는 10.10.0.89이지만, src 선택기로 10.50.0.0/16을 갖는 fwd 정책에 의해 처리되고 있습니다 ... [e] : 실제로 src와 dst는 두 가지 방식으로 작동합니다. 그러나 FORWARD 체인이 iptables에서 작동하는 방식과 완전히 유사하지는 않습니다.
dorian

이 특정 세부 사항에 대해서는 아닙니다. 나는 그 문장을 명확히하려고 노력했다.
ecdsa

고맙습니다, 지금 이해한다고 생각합니다. Linux IPsec 구현에 대한 세부 정보가 지정된 참조가 있습니까?
dorian

1
@dorian : 안타깝게도 Linux IPsec에 대한 유일한 참조는 커널 소스입니다.
SRobertJames
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.