
내 두뇌는 이것을 알아내려고 약간 튀었지만 예를 들어 업데이트를 가져오기 위해 개인 서브넷을 인터넷에 연결할 수 없는 것 같습니다. 기본적으로 내가 원하는 것은 이 서버에 대한 웹 액세스뿐입니다. 다른 게시물에서 찾은 솔루션을 시도했지만 꽤 오랫동안 이 문제를 살펴봤기 때문에 뭔가가 쉽게 누락될 수 있습니다.
지금까지 나는 다음과 같은 설정을 수행했습니다.
- 내 NAT 인스턴스에서 소스/대상 확인 비활성화
- 퍼블릭 서브넷에 대한 라우팅 테이블을 생성하고 해당 소스를 IGW로 설정합니다(작동하는지 확인).
- 프라이빗 서브넷에 대한 라우팅 테이블을 생성하고 해당 소스를 NAT 인스턴스로 설정합니다.
- 80/443 및 SSH에 대한 인바운드 및 아웃바운드 규칙을 사용하여 NAT 인스턴스용 보안 그룹 생성
- 인바운드 및 아웃바운드 80/443 및 SSH를 사용하여 프라이빗 인스턴스에 대한 보안 그룹 생성
SSH를 통해 NAT 인스턴스로 이동한 다음 개인 서버로 전환할 수 있으므로 많은 부분이 작동하고 있음을 알 수 있습니다. 내부 주소를 ping하여 규칙을 확인했지만 로컬 네트워크를 벗어나면 문제가 발생하기 시작합니다.
이 문제를 좁히려면 어디를 확인해야 하며 무엇을 해결해야 합니까? 제가 간과한 NAT 인스턴스에서 수행해야 할 일부 구성이 있습니까?
편집: 구성 업데이트
- VPC: 172.16.0.0./16
- 프라이빗 서브넷: 172.16.1.0/24
- 퍼블릭 서브넷: 172.16.0.0/24
프라이빗 서브넷 라우팅 테이블:
퍼블릭 서브넷의 NAT 인스턴스를 가리킵니다. 인터넷에 액세스할 수 없습니다. 공용 인터넷 연결 인터페이스에 EIP가 연결되어 있습니다.
퍼블릭 서브넷 라우팅 테이블:
IGW의 퍼블릭 서브넷을 가리키고 인터넷 액세스를 확인했습니다.
생각:
프라이빗 인스턴스의 트래픽을 전달하기 위해 퍼블릭 서브넷에 있는 NAT 인스턴스에 설정하거나 생성해야 할 것이 있다고 생각하기 시작했지만, 무엇을 추가해야 할지 정확히 모르겠습니다. 나는 찾았다이 게시물iptables에 가장 무도회 규칙을 추가하는 것을 설명하는 내용이 내 상황에 적용되는 것인가요?
답변1
예, nat 호스트에 iptables masquerading을 설정해야 합니다.
iptables -A POSTROUTING -t nat -s (private-subnet/cidr) -j MASQUERADE
우리는 동일한 설정을 가지고 있으며 다른 모든 작업을 올바르게 수행했습니다(소스 확인 비활성화, 개인 서브넷을 nat 인스턴스의 인터페이스로 지정, 공용 서브넷을 igw로 지정).
답변2
비슷한 문제가 있는 것을 우연히 발견했습니다. 마법사를 사용하여 NAT 인스턴스를 생성했다고 가정하면 위에서 언급한 가장 무도회 규칙이 이미 존재했을 것입니다. 이것은 "자신만의" NAT 인스턴스를 구축하려는 경우에만 추가하면 되는 것입니다. (저는 보통 이 작업을 두 배로 늘리고 OpenSWAN L2TP/IPSec 원격 사용자 VPN 서버로 만들기 위해 그렇게 합니다.)
이 중 하나를 마지막으로 생성한 이후 추가하는 것을 잊어버린 것은 NAT 인스턴스를 통해 트래픽을 라우팅하는 모든 개인 보안 그룹 또는 서브넷의 모든 트래픽(또는 적어도 허용하려는 것)을 허용하는 규칙이었습니다. NAT 인스턴스는 이를 허용하는 규칙 없이는 그러한 아웃바운드 트래픽을 허용하지 않습니다. 트래픽에 도달하기 위해 인터넷에서 무엇이 들어오는지에 대해서만 생각하지 마십시오. NAT 보안 그룹에 22/80/443을 추가한다고 언급하셨기 때문에 이것이 문제인지 확실하지 않지만 비슷한 문제가 있는 다른 사람들에게 이 방법을 제안할 것이라고 생각했습니다.
답변3
나는 이것을 발견할 때까지 한동안 이것과 싸웠습니다.
그런 다음 NAT 인스턴스로 실행되도록 구성된 AMI에서 퍼블릭 서브넷으로 인스턴스를 시작합니다. Amazon은 NAT 인스턴스로 실행되도록 구성된 Amazon Linux AMI를 제공합니다. 이러한 AMI에는 이름에 amzn-ami-vpc-nat 문자열이 포함되어 있으므로 Amazon EC2 콘솔에서 검색할 수 있습니다.
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html#NATInstance
저는 NAT 서버를 자체 표준(Ubuntu) 인스턴스로 설정했고, Amazon Linux AMI를 사용하고 라우팅 테이블을 업데이트하고 나면 작동하기 시작했습니다.