VPN을 통해 홈 네트워크에서 AWS에 동적 라우팅 연결(NAT Traversal) - VyOS 편
11707 단어 VyOSAWSNatTraversal
개시하다
안녕하세요.업무 중에 AWS를 사용했지만 이전에 자신이 VPN을 사용한 적이 없기 때문에 검증으로 자신의 네트워크에서 AWS의 Site-SitVPN으로 연결을 시도해 봤다.
전제 조건
AWS와의 연결은 Site-SitVPN으로 구성됩니다.
우리 집은 전문 심판의 NTT 광선을 거쳐 NTT에서 보내는 표준형 광전화 공유기를 설치했다.라우터는 PPPOE(Pop over Ethernet) 인증을 통해 네트워크 속성에 연결되고 인터넷에 연결됩니다.
글로벌 고정 IP 주소에 대한 계약이 체결되지 않았기 때문에 이번에는 라우터가 취득한 글로벌 IP 주소를 사용해 NAT Traversal을 통해 VPN을 연결하기로 했다.
라우터는 테스트를 위해 가상 환경에서 구축할 수 있는 Vyatta(VyOS)를 사용합니다.
NAT-T가 뭐예요?
NAT Traversal은 NAT의 IP 주소 변환에 대해 애플리케이션이 정의하는 표준입니다.IPSec에서는 RFC 3947에서 IPSec NAT-T를 인터넷 측면 포트에서 NAT 내부 VPN 장치로 매핑하여 통신합니다.
AWS와의 연결은 Site-SitVPN으로 구성됩니다.
우리 집은 전문 심판의 NTT 광선을 거쳐 NTT에서 보내는 표준형 광전화 공유기를 설치했다.라우터는 PPPOE(Pop over Ethernet) 인증을 통해 네트워크 속성에 연결되고 인터넷에 연결됩니다.
글로벌 고정 IP 주소에 대한 계약이 체결되지 않았기 때문에 이번에는 라우터가 취득한 글로벌 IP 주소를 사용해 NAT Traversal을 통해 VPN을 연결하기로 했다.
라우터는 테스트를 위해 가상 환경에서 구축할 수 있는 Vyatta(VyOS)를 사용합니다.
NAT-T가 뭐예요?
NAT Traversal은 NAT의 IP 주소 변환에 대해 애플리케이션이 정의하는 표준입니다.IPSec에서는 RFC 3947에서 IPSec NAT-T를 인터넷 측면 포트에서 NAT 내부 VPN 장치로 매핑하여 통신합니다.
매혹NTT 빛의 라우터를 설정할 수 없습니다!?
NAT 호랑이바 원숭이를 위해 오랜만에 집에 연결된 라우터에 포트 매핑 설정을 살펴본다.
저것은 회색이어서 설정할 수 없습니다.
//또는 NAT 설정을 몰라요!포트 매핑이 없습니까?
・・・ 이전에는 PPPoE 인증 설정과 관련이 없습니다!이거 뭐야?
확인해 보니 현재 IPv6의 IPoE 방식은 기본 계약이 되었다. IPv4망의 인터넷 연결이 아니라 IPv6망의 통신을 전제로 한다.이전에는 NTT 프레이츠망 시대가 PPPoE 인증을 전제로 했지만, 사회는 진화하고 있다.
IPv4망에 비해 IPv6망은 통신의 혼란 없이 고속 인터넷 접속이 가능하지만 이대로는 검증이 불가능하기 때문에 변경하기로 했다.
나는 IPv6 서비스를 중단하라고 전문가의 콜센터에 전화를 걸었다.1주일 정도 걸리지만 1일 뒤 메일을 보내 IPv4로 전환했다는 연락이 왔다.라우터 설정을 다시 보고 그리운 IPv4를 설정할 수 있습니다.
가정용 공유기 옆에 포트 매핑을 설정해 주세요.
집에 있는 라우터는 NTT광의 PR-S300NE입니다.화면을 설정하는'정적 IP 마스카라 설정'부터 진행한다.
이 설정에서 192.168.12는 VPN 장치입니다.
집에 있는 라우터는 NTT광의 PR-S300NE입니다.화면을 설정하는'정적 IP 마스카라 설정'부터 진행한다.
이 설정에서 192.168.12는 VPN 장치입니다.
AWS 측면 설정
단계는 다음과 같습니다.
Customer Gateway 설정
IP 주소 자체에서 얻은 글로벌 IP 주소로 설정합니다.
고정 IP의 PPPoE 형식을 사용할 수 없는 경우 주소를 매번 수정하십시오.
가상 개인 Gateway 설정
AWS에 대한 가상 개인 Gateway를 설정합니다.
사이트 간 VPN 연결 설정
Customer Gateway와 가상 개인 Gateway를 사용하여Site-to-SitVPN을 설정합니다.
설정되면 다운로드 설정에서 객체로 사용할 VPN 설정 파일을 다운로드할 수 있습니다.
VyOS에 대한 VPN 설정이 다운로드되어 적용됩니다.
VyOS 설치
공식 사이트ova 이미지 구축 환경을 다운로드합니다.
VyOS Configuration
AWS 측에서 다운로드한 VPN 설정 정보를 가져옵니다.
set vpn ipsec nat-traversal enable
set vpn ipsec ipsec-interfaces interface eth0
set vpn ipsec nat-networks allowed-network 0.0.0.0/0
set vpn ipsec site-to-site peer 18.181.XXX.XXX local-address 192.168.1.12
set vpn ipsec site-to-site peer 54.250.XXX.XXX local-address 192.168.1.12
VyOS 설정 예vyos@awsvpnr:~$ show configuration
interfaces {
ethernet eth0 {
address 192.168.1.12/24
description OutSide
duplex auto
hw-id 08:00:27:0c:fe:cd
smp_affinity auto
speed auto
}
ethernet eth1 {
address 172.16.1.1/24
description InSide
duplex auto
hw-id 08:00:27:dc:b0:7d
smp_affinity auto
speed auto
}
loopback lo {
}
vti vti0 {
address 169.254.XX.XX/30
description "VPC tunnel 1"
mtu 1436
}
vti vti1 {
address 169.254.XX.XX/30
description "VPC tunnel 2"
mtu 1436
}
}
protocols {
bgp 65000 {
neighbor 169.254.XX.XX {
remote-as 64512
soft-reconfiguration {
inbound
}
timers {
holdtime 30
keepalive 10
}
}
neighbor XXX.XXX.XXX.XXX {
remote-as 64512
soft-reconfiguration {
inbound
}
timers {
holdtime 30
keepalive 10
}
}
network 0.0.0.0/0 {
}
}
}
service {
ssh {
port 22
}
}
system {
config-management {
commit-revisions 100
}
console {
}
gateway-address 192.168.1.1
host-name awsvpnr
login {
user vyos {
authentication {
encrypted-password ****************
plaintext-password ****************
}
level admin
}
}
ntp {
server 0.pool.ntp.org {
}
server 1.pool.ntp.org {
}
server 2.pool.ntp.org {
}
}
package {
auto-sync 1
repository community {
components main
distribution helium
password ****************
url http://packages.vyos.net/vyos
username ""
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level debug
}
}
}
time-zone Asia/Tokyo
}
vpn {
ipsec {
esp-group AWS {
compression disable
lifetime 3600
mode tunnel
pfs enable
proposal 1 {
encryption aes128
hash sha1
}
}
ike-group AWS {
dead-peer-detection {
action restart
interval 15
timeout 30
}
ikev2-reauth no
key-exchange ikev1
lifetime 28800
proposal 1 {
dh-group 2
encryption aes128
hash sha1
}
}
ipsec-interfaces {
interface eth0
}
nat-networks {
allowed-network 0.0.0.0/0 {
}
}
nat-traversal enable
site-to-site {
peer 18.181.XXX.XXX {
authentication {
mode pre-shared-secret
pre-shared-secret ****************
}
connection-type initiate
description "VPC tunnel 1"
ike-group AWS
ikev2-reauth inherit
local-address 192.168.1.12
vti {
bind vti0
esp-group AWS
}
}
peer 54.250.XXX.XXX {
authentication {
mode pre-shared-secret
pre-shared-secret ****************
}
connection-type initiate
description "VPC tunnel 2"
ike-group AWS
ikev2-reauth inherit
local-address 192.168.1.12
vti {
bind vti1
esp-group AWS
}
}
}
}
}
VPN 정보 확인
AWS 관리 콘솔에서 VPN 연결 상태가 UP인지 확인할 수 있습니다.
VyOS 측면 VPN 상태
vyos@awsvpnr:~$ show vpn ipsec sa
Peer ID / IP Local ID / IP
------------ -------------
18.181.XXX.XXX 192.168.1.12
Description: VPC tunnel 1
Tunnel State Bytes Out/In Encrypt Hash NAT-T A-Time L-Time Proto
------ ----- ------------- ------- ---- ----- ------ ------ -----
vti up 25.1K/23.9K aes128 sha1 yes 2670 3600 all
Peer ID / IP Local ID / IP
------------ -------------
54.250.XXX.XXX 192.168.1.12
Description: VPC tunnel 2
Tunnel State Bytes Out/In Encrypt Hash NAT-T A-Time L-Time Proto
------ ----- ------------- ------- ---- ----- ------ ------ -----
vti up 24.9K/25.0K aes128 sha1 yes 2996 3600 all
vyos@awsvpnr:~$
라우팅 확인
vyos@awsvpnr:~$ show ip bgp neighbors
BGP neighbor is 169.254.XXX.XXX, remote AS 64512, local AS 65000, external link
BGP version 4, remote router ID 169.254.XXX.XXX
BGP state = Established, up for 00:35:09
Last read 14:52:14, hold time is 30, keepalive interval is 10 seconds
Configured hold time is 30, keepalive interval is 10 seconds
Neighbor capabilities:
4 Byte AS: advertised and received
Route refresh: advertised and received(old & new)
Address family IPv4 Unicast: advertised and received
Message statistics:
Inq depth is 0
Outq depth is 0
Sent Rcvd
Opens: 1 0
Notifications: 0 0
Updates: 2 2
Keepalives: 212 212
Route Refresh: 0 0
Capability: 0 0
Total: 215 214
Minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast
Inbound soft reconfiguration allowed
Community attribute sent to this neighbor(both)
1 accepted prefixes
Connections established 1; dropped 0
Last reset never
Local host: 169.254.XXX.XXX, Local port: 179
Foreign host: 169.254.XXX.XXX, Foreign port: 38641
Nexthop: 169.254.XXX.XXX
Nexthop global: ::
Nexthop local: ::
BGP connection: non shared network
Read thread: on Write thread: off
BGP neighbor is 169.254.XXX.XXX, remote AS 64512, local AS 65000, external link
BGP version 4, remote router ID 169.254.XXX.XXX
BGP state = Established, up for 00:34:58
Last read 14:52:12, hold time is 30, keepalive interval is 10 seconds
Configured hold time is 30, keepalive interval is 10 seconds
Neighbor capabilities:
4 Byte AS: advertised and received
Route refresh: advertised and received(old & new)
Address family IPv4 Unicast: advertised and received
Message statistics:
Inq depth is 0
Outq depth is 0
Sent Rcvd
Opens: 1 1
Notifications: 0 0
Updates: 4 2
Keepalives: 211 211
Route Refresh: 0 0
Capability: 0 0
Total: 216 214
Minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast
Inbound soft reconfiguration allowed
Community attribute sent to this neighbor(both)
1 accepted prefixes
Connections established 1; dropped 0
Last reset never
Local host: 169.254.XXX.XXX, Local port: 44927
Foreign host: 169.254.XXX.XXX, Foreign port: 179
Nexthop: 169.254.XXX.XXX
Nexthop global: ::
Nexthop local: ::
BGP connection: non shared network
Read thread: on Write thread: off
vyos@awsvpnr:~$
총결산
AWS 측은 NAT-T를 의식하지 못하고 일반적인 Site-to-site VPN만 설정했다.
공식 사이트에 기재된 바와 같이 사용자 측이 포트를 통해 NAT-T를 비추어 UDP 500(IKE), 4500(NAT-T)의 소통을 하면 문제없이 통신할 수 있다는 조건이 있다.
누구를 도울 수 있을지 영광입니다.
Reference
이 문제에 관하여(VPN을 통해 홈 네트워크에서 AWS에 동적 라우팅 연결(NAT Traversal) - VyOS 편), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hisnakad/items/dc212b5cbbc33901b559
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(VPN을 통해 홈 네트워크에서 AWS에 동적 라우팅 연결(NAT Traversal) - VyOS 편), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hisnakad/items/dc212b5cbbc33901b559텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)