IBM Cloud VPC에 대한 사이트 간 IPsec 터널

6475 단어 ibmcloud

개요



이 문서에서는 온프레미스 IPsec 터널에서 서비스 제공으로 IBM Cloud VPC VPN에 연결하는 과정을 안내합니다. 이렇게 하면 로컬 시스템에서 VPC 컴퓨팅 인스턴스에 할당된 개인 IP 주소로 통신할 수 있습니다. 이 가이드에서는 다음 단계를 안내합니다.
  • VPC VPN 인스턴스를 서비스로 프로비저닝
  • 로컬 네트워크에 연결하기 위해 VPC VPN에 피어 연결 추가
  • 로컬 시스템/VM에 strongSwan 설치
  • 로컬 IPsec 피어 구성
  • 로컬 IPsec 터널을 가동하고 VPC 리소스를 ping합니다
  • .

    VPC VPNaaS 프로비저닝 및 구성



    VPNaaS 인스턴스를 배포하는 것으로 시작하겠습니다. 기본VPC landing page에서 왼쪽 탐색 모음에 있는 VPN 게이트웨이를 클릭합니다.



    VPC가 있는 지역을 선택한 다음 VPN 생성을 클릭하십시오.



    화면 상단에서 VPN 이름을 지정하고 VPN을 배포할 VPC를 선택한 다음 VPN과 함께 사용할 서브넷을 선택합니다. 참고: 선택한 서브넷과 동일한 영역에 있는 리소스만 이 VPN 게이트웨이를 통해 연결할 수 있습니다.



    서브넷을 선택한 상태에서 아래로 스크롤하여 VPC용 새 VPN 연결 옵션이 활성화되어 있는지 확인합니다. 새 연결에 이름을 지정하고 사전 공유 키와 함께 로컬 및 피어 서브넷을 제공하십시오.

    참고: 사전 공유 키를 생성해야 하는 경우 IBM Cloud 포털의 오른쪽 상단에 있는 터미널 아이콘을 클릭하여 Cloud Shell을 시작하십시오.


    Cloud Shell 세션이 시작되면 다음 명령을 실행하여 32자의 사전 공유 키를 생성합니다.

    tr -dc "[:alpha:][:alnum:]" < /dev/urandom | head -c 32
    


    이 예에서 내 VPC는 ​​10.240.0.0/24 서브넷을 사용하고 내 로컬 네트워크는 172.16 IP를 사용합니다. 피어 게이트웨이 주소는 로컬 네트워크의 공용 IP입니다. 이것이 무엇인지 확실하지 않은 경우 브라우저를 열고 IP Chicken으로 이동하십시오.


    모든 세부 정보가 추가되면 오른쪽 탐색 모음에서 VPN 게이트웨이 만들기를 클릭하여 VPN을 배포합니다. 새 VPN을 배포할 시간을 잠시 제공한 다음 로컬 터널 구성에 필요한 피어 주소를 복사합니다.


    로컬 시스템에 strongSwan 설치



    내 예에는 로컬 IPsec 피어로 사용할 로컬 Ubuntu 18 VM이 있습니다. 첫 번째 단계는 strongSwan 을(를) 설치하는 것입니다.

    $ apt-get update && apt-get install strongswan -y 
    


    strongSwan이 설치되면 커널 매개변수에 IP 포워딩을 추가해야 합니다.

    $ sudo cat >> /etc/sysctl.conf << EOF
    net.ipv4.ip_forward = 1 
    net.ipv4.conf.all.accept_redirects = 0 
    net.ipv4.conf.all.send_redirects = 0
    EOF
    
    $ sysctl -p /etc/sysctl.conf
    


    로컬 ipsec 피어 구성



    다음으로 /etc/ipsec.secrets 파일을 업데이트합니다. 파일의 구문은 다음과 같습니다.

    LOCAL_PEER_IP VPC_VPN_PEER_IP : PSK "Pre-shared key"
    


    예를 들어 로컬 퍼블릭 IP가 192.168.20.2이고 VPC VPN 피어 주소가 192.168.30.5이고 사전 공유 키가 XtemrMYFfmmMCpxgdCwSYoRBKdjQ1ndb인 경우 파일은 다음과 같습니다.

    192.168.20.2 192.168.30.5 : PSK "XtemrMYFfmmMCpxgdCwSYoRBKdjQ1ndb"
    


    비밀 파일이 업데이트되었으므로 이제 strongSwan 구성 파일 업데이트로 이동합니다.

    # ipsec.conf - strongSwan IPsec configuration file
    # basic configuration
    config setup
        # strictcrlpolicy=yes
        # uniqueids = no
            charondebug="all"
            uniqueids=yes
            strictcrlpolicy=no
    
    # connection to us-east-vpc
    conn home-to-vpc
      authby=secret
      left=%defaultroute
      leftid=<Local Server Public IP>
      leftsubnet=<Local Internal Subnet range>
      right=<VPC VPN Endpoint IP>
      rightsubnet=<VPC Subnet range>,166.8.0.0/14,161.26.0.0/16
      ike=aes256-sha2_256-modp1024!
      esp=aes256-sha2_256!
      keyingtries=0
      ikelifetime=1h
      lifetime=8h
      dpddelay=30
      dpdtimeout=120
      dpdaction=restart
      auto=start
    


    사설 IP 주소 공간을 통해 IBM Cloud 서비스와 통신할 수 있도록 166.8.0.0/14161.26.0.0/16 범위를 추가합니다.

    ipsec 구성이 업데이트되면 사후 라우팅을 위한 iptables 규칙을 추가합니다. 다시 내 터널의 경우 VPC 서브넷은 10.240.0.0/24이고 내 로컬 내부 서브넷은 172.16.0.0/24이므로 필요에 맞게 다음 명령을 조정합니다.

    $ iptables -t nat -A POSTROUTING -s 10.240.0.0/24 -d 172.16.0.0/24 -J MASQUERADE
    


    이제 ipsec 서비스를 다시 시작하고 터널 상태를 확인합니다.

    $ sudo ipsec restart
    Stopping strongSwan IPsec...
    Starting strongSwan 5.6.2 IPsec [starter]...
    
    $ sudo ipsec status
    Security Associations (1 up, 0 connecting):
     home-to-vpc[1]: ESTABLISHED 16 seconds ago, 10.0.0.67[x.x.x.x]...52.y.y.y[52.y.y.y]
     home-to-vpc{1}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c2225f47_i ccc3d826_o
     home-to-vpc{1}:   10.0.0.0/18 === 161.26.0.0/16 166.8.0.0/14 192.168.0.0/18
    


    VPC 인스턴스에 대한 연결 테스트



    내 VPC에는 프라이빗 IP가 10.240.0.6인 인스턴스가 있습니다.

    $ ibmcloud is instances --output json | jq -r '.[] | select(.vpc.name=="us-south-vpc-rt") | .network_interfaces[].primary_ipv4_address'
    10.240.0.6
    
    $ ping -c2 -q 10.240.0.6
    PING 10.240.0.6 (10.240.0.6) 56(84) bytes of data.
    
    --- 10.240.0.6 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1001ms
    rtt min/avg/max/mdev = 40.836/41.497/42.159/0.692 ms
    

    좋은 웹페이지 즐겨찾기