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/16을 10.50.0.0/16통해 전달하는 데 필요한 정방향 정책이 없음 을 확인하는 것처럼 보이지만 그 이유를 이해하지 못합니다.

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

답변:


9

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

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

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

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

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


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


매우 흥미 롭습니다. 그러나 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.