Vyatta 피어에 연결
IBM Cloud VPN for VPC를 사용하여 안전하게 VPN 터널을 통해 VPC를 온프레미스 네트워크에 연결할 수 있습니다. 이 주제에서는 VPN for VPC에 연결하도록 Vyatta VPN 게이트웨이를 구성하는 방법에 대한 지침을 제공합니다.
이러한 지시사항은 Vyatta 버전 AT&T vRouter 5600 1801d를 기준으로 합니다.
온-프레미스 피어에 계속 연결하기 전에 VPN 게이트웨이의 알려진 문제를 읽어보세요.
Vyatta VPN이 VPN for VPC로부터 연결 요청을 받으면, Vyatta는 IPsec 1단계 매개변수를 사용하여 안전한 연결을 설정하고 VPN for VPC 게이트웨이를 인증합니다. 그런 다음 보안 정책에서 연결을 허용하는 경우 Vyatta VPN에서 IPsec 2단계 매개변수를 사용하여 터널을 설정한 후 IPsec 보안 정책을 적용합니다. 키 관리, 인증 및 보안 서비스는 IKE 프로토콜을 통해 동적으로 협상합니다.
이러한 기능을 지원하려면 Vyatta VPN에서 다음과 같은 일반 구성 단계를 수행해야 합니다.
- Vyatta에서 VPN for VPC를 인증하고 보안 연결을 설정하기 위해 필요한 1단계 매개변수를 정의하십시오.
- Vyatta에서 VPN for VPC를 사용하여 VPN 터널을 작성하기 위해 필요한 2단계 매개변수를 정의하십시오.
IBM 정책 기반 VPN을 Vyatta 피어에 연결
다음 구성을 사용하십시오.
- 인증에서
IKEv2를 선택하십시오. - 1단계 제안서에서
DH-group 19을 활성화합니다. - 1단계 제안에서
lifetime = 36000을 설정하십시오. - 2단계 제안에서 PFS를 사용 안함으로 설정하십시오.
- 2단계 제안에서
lifetime = 10800을 설정하십시오. - 2단계 제안에서 피어 및 서브넷 정보를 입력하십시오.
다음 명령은 다음과 같은 변수를 사용합니다.
{{ peer_address }}은(는) VPN 게이트웨이 공용 IP 주소입니다.{{ ibm_vpc_cidr }}은(는) IBM VPC 서브넷입니다.{{ vyatta_address }}은(는) Vyatta 공용 IP 주소입니다.{{ vyatta_cidr }}은(는) Vyatta 서브넷입니다.
시작하기 전에
원격 Vyatta 피어를 설정하려면 다음 사전 요구 사항을 충족하는지 확인하십시오.
-
VPC
-
VPC의 서브넷
-
연결이 없는 VPC의 VPN 게이트웨이
VPN 게이트웨이가 프로비저닝되면 해당 공인 IP 주소를 메모해 두십시오.
-
Vyatta 공용 IP 주소
-
VPN을 사용하여 연결하려는 Vyatta 서브넷
Vyatta 구성
Vyatta에서 구성을 실행하는 방법은 두 가지입니다.
- Vyatta에 로그인하고 다음 명령을 사용하여
create_vpn.vcli파일을 실행하십시오. - Vyatta 콘솔에서 다음 명령을 실행하십시오.
다음과 같은 내용을 기억하십시오.
- 인증에서
IKEv2를 선택하십시오. DH-group 19을(를) 활성화합니다.lifetime = 36000을(를) 설정합니다.- PFS를 비활성화합니다.
lifetime = 10800을(를) 설정합니다.
다음 명령들은 다음 변수들을 사용합니다.
{{ peer_address }}은(는) VPN 게이트웨이 공용 IP 주소입니다.{{ ibm_vpc_cidr }}은(는) IBM VPC 서브넷입니다.{{ vyatta_address }}은(는) Vyatta 공용 IP 주소입니다.{{ vyatta_cidr }}은(는) Vyatta 서브넷입니다.
vim vyatta_temp/create_vpn.vcli
#!/bin/vcli -f
configure
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} dead-peer-detection timeout 120
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} lifetime {{ ike["lifetime"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} ike-version {{ ike["version"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }} dh-group {{ proposal["dhgroup"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }} encryption {{ proposal["encryption"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }} hash {{ proposal["integrity"] }}
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} compression disable
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} lifetime {{ ipsec["lifetime"] }}
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} mode tunnel
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} pfs {{ ipsec["proposals"][0]["dhgroup"] }}
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} proposal {{ loop.index }} encryption {{ proposal["encryption"] }}
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} proposal {{ loop.index }} hash {{ proposal["integrity"] }}
set security vpn ipsec site-to-site peer {{ peer_address }} authentication mode pre-shared-secret
set security vpn ipsec site-to-site peer {{ peer_address }} authentication pre-shared-secret {{ psk }}
set security vpn ipsec site-to-site peer {{ peer_address }} ike-group {{ peer_address }}_{{ ike["name"] }}
set security vpn ipsec site-to-site peer {{ peer_address }} default-esp-group {{ peer_address }}_{{ ipsec["name"] }}
set security vpn ipsec site-to-site peer {{ peer_address }} description "automation test"
set security vpn ipsec site-to-site peer {{ peer_address }} local-address {{ vyatta_address }}
set security vpn ipsec site-to-site peer {{ peer_address }} connection-type {{ connection_type }}
set security vpn ipsec site-to-site peer {{ peer_address }} authentication remote-id {{ peer_address }}
set security vpn ipsec site-to-site peer {{ peer_address }} tunnel {{ ns.tunnel_index }} local prefix {{ vyatta_cidr }}
set security vpn ipsec site-to-site peer {{ peer_address }} tunnel {{ ns.tunnel_index }} remote prefix {{ ibm_vpc_cidr }}
commit
end_configure
예를 들면, 다음 명령을 실행할 수 있습니다.
#!/bin/vcli -f
configure
set security vpn ipsec ike-group 169.61.247.167_test_ike
set security vpn ipsec ike-group 169.61.247.167_test_ike dead-peer-detection timeout 120
set security vpn ipsec ike-group 169.61.247.167_test_ike lifetime 36000
set security vpn ipsec ike-group 169.61.247.167_test_ike ike-version 2
set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1
set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1 dh-group 19
set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1 encryption aes256
set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1 hash sha2_256
set security vpn ipsec esp-group 169.61.247.167_test_ipsec compression disable
set security vpn ipsec esp-group 169.61.247.167_test_ipsec lifetime 10800
set security vpn ipsec esp-group 169.61.247.167_test_ipsec mode tunnel
set security vpn ipsec esp-group 169.61.247.167_test_ipsec pfs disable
set security vpn ipsec esp-group 169.61.247.167_test_ipsec proposal 1 encryption aes256
set security vpn ipsec esp-group 169.61.247.167_test_ipsec proposal 1 hash sha2_256
set security vpn ipsec site-to-site peer 169.61.247.167 authentication mode pre-shared-secret
set security vpn ipsec site-to-site peer 169.61.247.167 authentication pre-shared-secret ***YOUR-PSK***
set security vpn ipsec site-to-site peer 169.61.247.167 ike-group 169.61.247.167_test_ike
set security vpn ipsec site-to-site peer 169.61.247.167 default-esp-group 169.61.247.167_test_ipsec
set security vpn ipsec site-to-site peer 169.61.247.167 description "automation test"
set security vpn ipsec site-to-site peer 169.61.247.167 local-address 169.63.66.53
set security vpn ipsec site-to-site peer 169.61.247.167 connection-type initiate
set security vpn ipsec site-to-site peer 169.61.247.167 authentication remote-id 169.61.247.167
set security vpn ipsec site-to-site peer 169.61.247.167 tunnel 1 local prefix 10.65.15.104/29
set security vpn ipsec site-to-site peer 169.61.247.167 tunnel 1 remote prefix 10.240.0.0/24
commit
end_configure
마지막으로, {{ psk }} 값을 기록해 두십시오. 다음 단계에서 VPN 연결을 설정할 때 이 값이 필요합니다.
IBM 라우트 기반 VPN을 Vyatta 피어에 연결하기
다음과 같은 IKE 및 IPsec 정책을 사용하여 VPN을 Vyatta에 연결합니다.
- 인증에서
IKEv2를 선택하십시오. - 1단계 제안에서
DH-group 19,aes256,sha256을(를) 활성화합니다. - 1단계 제안에서
lifetime = 86400을 설정하십시오. - 2단계 제안에서 PFS,
aes256및sha256을(를) 활성화합니다. - 2단계 제안에서
lifetime = 10800을 설정하십시오.
이 정책은 예시일 뿐입니다. Vyatta 제안과 일치하는 다른 값을 사용할 수 있습니다.
시작하기 전에
원격 Vyatta 피어를 설정하려면 다음과 같은 사전 요구 사항을 충족해야 합니다.
-
VPC
-
VPC의 서브넷
-
연결이 없는 VPC의 VPN 게이트웨이
VPN 게이트웨이가 프로비저닝되면 해당 공인 IP 주소를 메모해 두십시오. 소형 IP 주소는 일차 IP이고, 대형 IP 주소는 이차 IP입니다.
-
Vyatta 공용 IP 주소
-
VPN을 사용하여 연결하려는 Vyatta 서브넷
Vyatta 구성
다음 명령은 다음과 같은 변수를 사용합니다.
{{ primary_peer_address }}은(는) 라우트 기반 VPN 게이트웨이 소형 공용 IP 주소입니다.{{ ibm_vpc_cidr }}은(는) IBM VPC 서브넷입니다.{{ secondary_peer_address }}은(는) 라우트 기반 VPN 게이트웨이 대형 공용 IP 주소입니다.{{ vyatta_address }}은(는) Vyatta 공용 IP 주소입니다.
Vyatta를 구성하는 방법의 예는 다음과 같습니다.
-
일치하는 IKE 제안을 정의합니다.
set security vpn ipsec ike-group ibm-vpc-ike-group set security vpn ipsec ike-group ibm-vpc-ike-group dead-peer-detection interval 2 set security vpn ipsec ike-group ibm-vpc-ike-group dead-peer-detection action clear set security vpn ipsec ike-group ibm-vpc-ike-group lifetime 86400 set security vpn ipsec ike-group ibm-vpc-ike-group ike-version 2 set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1 set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1 dh-group 19 set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1 encryption aes256 set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1 hash sha2_256 -
일치하는 IPsec 제안을 정의합니다.
set security vpn ipsec esp-group ibm-vpc-ipsec-group compression disable set security vpn ipsec esp-group ibm-vpc-ipsec-group lifetime 10800 set security vpn ipsec esp-group ibm-vpc-ipsec-group mode tunnel set security vpn ipsec esp-group ibm-vpc-ipsec-group pfs dh-group19 set security vpn ipsec esp-group ibm-vpc-ipsec-group proposal 1 encryption aes256 set security vpn ipsec esp-group ibm-vpc-ipsec-group proposal 1 hash sha2_256 -
IBM 일차 터널에 VTI 및 VPN 연결을 생성합니다.
가상 터널 인터페이스를 작성한 후 인터페이스에서 링크 로컬 주소(
169.254.0.2/30)를 구성하십시오. 링크 로컬 주소를 선택하되 디바이스의 다른 주소와 겹치지 않도록 주의하십시오. 30비트 넷마스크가 있는 서브넷에는 두 개의 사용 가능한 IP 주소(169.254.0.1및169.254.0.2)가 있습니다. 첫 번째 IP 주소169.254.0.1은(는) IBM VPN 게이트웨이 VTI 주소로 사용됩니다. 두 번째인169.254.0.2은(는) Vyatta VTI 주소로 사용됩니다. Vyatta에 VTI가 두 개 이상인 경우169.254.0.4/30,169.254.0.8/30등과 같은 다른 링크-로컬 서브넷을 선택할 수 있습니다.IBM VPN 게이트웨이에서는
169.254.0.1을(를) 구성할 필요가 없습니다. 이것은 Vyatta에서 라우트를 구성할 때만 참조됩니다.set interfaces vti vti1 description "to-IBM-VPN-primary" set interfaces vti vti1 address 169.254.0.2/30 set interfaces vti vti1 ip tcp-mss limit 1360 set security vpn ipsec site-to-site peer {{ primary_peer_address }} authentication mode pre-shared-secret set security vpn ipsec site-to-site peer {{ primary_peer_address }} authentication pre-shared-secret {{your_pre_shared_key}} set security vpn ipsec site-to-site peer {{ primary_peer_address }} ike-group ibm-vpc-ike-group set security vpn ipsec site-to-site peer {{ primary_peer_address }} default-esp-group ibm-vpc-ipsec-group set security vpn ipsec site-to-site peer {{ primary_peer_address }} description "to-IBM-VPN-primary" set security vpn ipsec site-to-site peer {{ primary_peer_address }} local-address {{ vyatta_address }} set security vpn ipsec site-to-site peer {{ primary_peer_address }} connection-type initiate set security vpn ipsec site-to-site peer {{ primary_peer_address }} authentication remote-id {{ primary_peer_address }} set security vpn ipsec site-to-site peer {{ primary_peer_address }} vti bind vti1 -
일차 라우트를 생성합니다.
set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.1 distance 10 set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.1 interface vti1 -
IBM 이차 터널에 대한 VTI 및 VPN 연결을 생성합니다.
set interfaces vti vti2 description "to-IBM-VPN-secondary" set interfaces vti vti2 address 169.254.0.6/30 set interfaces vti vti2 ip tcp-mss limit 1360 set security vpn ipsec site-to-site peer {{ secondary_peer_address }} authentication mode pre-shared-secret set security vpn ipsec site-to-site peer {{ secondary_peer_address }} authentication pre-shared-secret {{your_pre_shared_key}} set security vpn ipsec site-to-site peer {{ secondary_peer_address }} ike-group ibm-vpc-ike-group set security vpn ipsec site-to-site peer {{ secondary_peer_address }} default-esp-group ibm-vpc-ipsec-group set security vpn ipsec site-to-site peer {{ secondary_peer_address }} description "to-IBM-VPN-secondary" set security vpn ipsec site-to-site peer {{ secondary_peer_address }} local-address {{ vyatta_address }} set security vpn ipsec site-to-site peer {{ secondary_peer_address }} connection-type initiate set security vpn ipsec site-to-site peer {{ secondary_peer_address }} authentication remote-id {{ secondary_peer_address }} set security vpn ipsec site-to-site peer {{ secondary_peer_address }} vti bind vti2VTI IP 주소
169.254.0.6은(는) 예시입니다. 사용되지 않은 다른 IP 주소를 사용해도 됩니다. -
일차 라우트를 생성합니다.
set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.5 distance 20 set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.5 interface vti2
문제점 해결
-
Vyatta에서 CPP 방화벽을 사용으로 설정하는 경우 IBM 게이트웨이에서 트래픽을 허용하도록 규칙을 구성해야 합니다. 예를 들어, CPP 방화벽 이름이
GATEWAY_CPP이면 다음 규칙을 방화벽에 추가하십시오.# set security firewall name GATEWAY_CPP rule 250 source address 169.61.247.167 # set security firewall name GATEWAY_CPP rule 250 action accept -
방화벽을 인터페이스에 적용하는 경우 IBM VPC에서 트래픽을 허용해야 합니다. 예를 들어, 다음과 같습니다.
# set security firewall name to-vpc rule 20 destination address 10.240.0.0/24 # set security firewall name to-vpc rule 20 action accept # set security firewall name from-vpc rule 20 source address 10.240.0.0/24 # set security firewall name from-vpc rule 20 action accept # set interfaces bonding dp0bond0 vif 862 firewall out to-vpc # set interfaces bonding dp0bond0 vif 862 firewall in from-vpc다른 트래픽을 허용하려면 네트워크 요구사항에 따라 다른 규칙을 추가해야 할 수 있습니다.
-
IPsec으로 구역 방화벽을 사용하는 경우 구역 방화벽에서 작동하는 IPsec 터널 설정을 참조하십시오.