OpenVPN 게이트웨이를 구축하려고 합니다.~에서나의VPC->~ 안으로그만큼사무실회로망. EC2 인스턴스 중 하나("게이트웨이"로 지정)에 VPN 클라이언트를 성공적으로 설정했으며 이제 VPN 가상 인터페이스 "tun0"이 생겼습니다.
이제 모든 사무실 관련 트래픽(dst 172.20.0.0/16)을 VPC의 나머지 EC2 인스턴스에서 "게이트웨이"의 네트워크 인터페이스(10.0.0.100)로 라우팅하려고 합니다.
나는 두 가지 다른 접근 방식을 시도했습니다.
- 관련 AWS 라우팅 테이블에 172.20.0.0/16 -> eni-XXX(여기서 eni-XXX는 "게이트웨이" 인터페이스의 ID임)에 새 규칙을 추가합니다.
- EC2의 경로 테이블을 업데이트합니다. 경로 추가 -net 172.20.0.0 netmask 255.255.0.0 gw 10.0.0.100
게이트웨이에서 "tcpdump -i eth0 'src port not 22 and dst port not 22'"를 실행하고 내부 사무실 IP를 컬링/핑하면 아무것도 표시되지 않기 때문에 두 변종 모두 실패한 것 같습니다.
누구든지 무엇이 잘못되었는지 알고 있습니까? 아니면 내 문제에 대한 해결책이 있을까요?
그리고 두 번째 질문. 게이트웨이의 eth0에서 트래픽을 얻은 후에는 다음 IpTables 명령을 사용하여 VPN 연결로 트래픽을 전달할 계획입니다.
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -A FORWARD -i eth0 -s 10.0.0.0/16 -o tun0 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
여기에 어떤 문제가 있을 것으로 예상됩니까(IP 전달 활성화 제외)?
답변1
귀하의 접근 방식은 차선책입니다. AWS를 사용해야 합니다.가상 프라이빗 게이트웨이하나의 EC 인스턴스에서 VPN에 연결하지 않고 거기에서 라우팅을 시도하는 대신 사무실을 VPN에 연결합니다.
시도해 보세요. 문서는 훌륭합니다. 문제가 있으면 아마도 새로운 질문을 시작해야 할 것입니다. 이 솔루션을 사용할 수 없는 경우 사용 사례에 대한 자세한 내용을 포함하도록 질문을 편집해야 합니다.
답변2
좋아, 내 주요 문제는 AWS에 있었습니다. 기본적으로 EC2 인스턴스 간 트래픽 라우팅을 허용하지 않습니다. 이 순간을 해결하려면 비활성화해야 합니다.원본/일자 확인"게이트웨이" 인스턴스의 경우. 그런 다음 모든 사무실 대상 트래픽을 "게이트웨이" ec2 인스턴스(예: 172.20.0.0/16 -> eni-XXX - 여기서 eni-XXX는 게이트웨이 인터페이스의 ID임)로 리디렉션하는 경로를 AWS 라우팅 테이블에 추가하면 작동합니다. 괜찮은.
공용 네트워크 인터페이스(eth0)에서 OpenVpn 가상 네트워크 인터페이스로 트래픽을 전달하는 경우 iptables는 이 문제를 매우 쉽게 해결합니다.
iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING --out-interface tun0 -j MASQUERADE
iptables -A FORWARD -i eth0 -s 10.0.0.0/16 -d 172.20.0.0/16 -o tun0 -j ACCEPT
여기서 "10.0.0.0/16"은 VPC 하위 네트워크이고 "172.20.0.0/16"은 사무실 네트워크입니다. 또한 IP 전달도 활성화됩니다.
echo 1 > /proc/sys/net/ipv4/ip_forward
vim /etc/sysctl.conf <- net.ipv4.ip_forward = 1
답장을 보내주신 모든 분들께 감사드립니다.