VPN 터널 만들기

이 페이지에서는 한 VPN 게이트웨이에서 다른 VPN 게이트웨이로 VPN 터널을 추가하는 방법을 설명합니다.

VPN 터널은 조직 네트워크와 원격 네트워크 간의 암호화된 IPsec 터널입니다. VPNGateway 인터페이스를 PeerGateway 인터페이스에 연결하고 VPNBGPPeer 리소스를 사용하여 터널을 통해 라우팅 정보를 교환합니다.

시작하기 전에

VPN 터널을 만들려면 다음이 필요합니다.

  • 기존 VPN 게이트웨이 및 VPN 피어 게이트웨이 리소스 자세한 내용은 VPN 게이트웨이 및 피어 게이트웨이 만들기를 참고하세요.
  • 기존 VPN BGP 피어 객체입니다. 자세한 내용은 VPN BGP 세션 만들기를 참고하세요.
  • 기존 보안 비밀입니다. 자세한 내용은 PSK로 보안 비밀 만들기를 참고하세요.
  • 필요한 ID 및 액세스 역할:

    • VPN 관리자: 모든 VPN 관련 리소스에 대한 읽기 및 쓰기 권한이 있습니다. 조직 IAM 관리자에게 VPN 관리자 (vpn-admin) 역할을 부여해 달라고 요청하세요.
    • VPN 뷰어: 모든 VPN 관련 리소스에 대한 읽기 권한이 있습니다. 조직 IAM 관리자에게 VPN 뷰어 (vpn-viewer) 역할을 부여해 달라고 요청하세요.
    • 자세한 내용은 역할 정의를 참고하세요.

VPN 터널 만들기

이전 단계에서 만든 VPNGateway, PeerGateway, VPNBGPPeer, Secret 리소스를 참조하여 터널을 만듭니다.

VPN 터널을 만들려면 다음 단계를 따르세요.

  1. VPNTunnel 객체를 만듭니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER create -n platform -f - <<EOF
    apiVersion: networking.gdc.goog/v1
    kind: VPNTunnel
    metadata:
      name: VPN_TUNNEL_NAME
    spec:
      vpnInterface:
        name: VPN_GW_NAME
        namespace: platform
        interface: VPN_INTERFACE_NAME
      peerInterface:
        name: PEER_GW_NAME
        namespace: platform
        interface: PEER_INTERFACE_NAME
      vpnBGPPeer:
        name: VPN_BGP_PEER_NAME
        namespace: platform
      ikeKey:
        name: PSK_NAME
        namespace: platform
    EOF
    

    다음을 바꿉니다.

    • MANAGEMENT_API_SERVER: 영역 API 서버의 kubeconfig 경로입니다. 타겟 영역의 API 서버에 대한 kubeconfig 파일을 아직 생성하지 않은 경우 로그인을 참고하세요.
    • VPN_TUNNEL_NAME: 사용 중인 VPN 터널의 이름입니다.
    • VPN_GW_NAME: VPN 게이트웨이의 이름입니다.
    • VPN_INTERFACE_NAME: VPN 인터페이스의 이름입니다.
    • PEER_GW_NAME: 피어 VPN 게이트웨이의 이름입니다.
    • PEER_INTERFACE_NAME: 피어 VPN 게이트웨이 인터페이스의 이름입니다.
    • VPN_BGP_PEER_NAME: VPN BGP 피어의 이름입니다. 자세한 내용은 VPN BGP 세션 만들기를 참고하세요.
    • PSK_NAME: PSK로 보안 비밀 만들기에서 만든 PSK의 이름입니다.
  2. Status 필드를 검사하여 VPN_TUNNEL_NAME 객체가 올바르게 조정되었는지 확인합니다. VPN 터널의 세부정보를 가져옵니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpntunnel VPN_TUNNEL_NAME
    

    출력을 검토합니다. 출력은 다음 예와 비슷해야 합니다.

    Status:
      Conditions:
        Last Transition Time:  2024-05-10T00:33:31Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Reconciled
        Last Transition Time:  2024-05-10T00:33:31Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Ready
        Last Transition Time:  2024-05-10T00:33:31Z
        Message:               Tunnel is established.
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  TunnelEstablished
      State:                   Established
    
  3. VPNGateway, PeerGateway, VPNBGPPeer 객체는 VPNTunnel에서 참조된 후 상태가 업데이트되어야 합니다. 예를 들어 VPNBGPPeer가 올바르게 조정되었는지 확인하면 업데이트된 상태 값이 표시됩니다. VPNBGPPeer 객체의 세부정보를 가져옵니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpnbgppeer VPN_BGP_PEER_NAME
    

    출력을 검사합니다. 상태 값이 업데이트되었습니다.

    Status:
      Advertised:
        Prefix:  10.0.0.16/28
        Prefix:  10.0.1.32/27
        Prefix:  172.16.0.0/14
        Prefix:  172.20.0.0/17
        Prefix:  172.20.128.0/17
        Prefix:  2002:4860:100e:fa00::/58
      Conditions:
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  ValidIPs
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  TunnelsAttached
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Reconciled
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  AdvertisedRoutesReady
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  ReceivedRoutesValid
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  ReceivedRoutesReady
        Last Transition Time:  2024-05-10T00:36:38Z
        Message:               Ready
        Observed Generation:   1
        Reason:                Ready
        Status:                True
        Type:                  Ready
      Received:
        Prefix:  192.168.100.0/24
        Prefix:  193.188.200.0/24
      State:     Established
    

다음 단계