2014-10-03 3 views
0

의도적으로 공용 IP가없는 인스턴스가 있습니다.GCE +로드 밸런서 + 공용 IP가없는 인스턴스

위의 인스턴스를 대상 풀로 사용하는 GCE 네트워크 부하 분산 장치가 있습니다.

모든 것이 효과적입니다. https://cloud.google.com/compute/docs/networking#natgateway (A NAT 게이트웨이 구성) 더 이상 내 인스턴스와 통신 할 수 없습니다 인터넷 미세하지만 부하 분산 장치와 통신 할 수

인스턴스 :이 문서를 다음 있도록

은 그 때 나는 인터넷과 통신 할 수 내 인스턴스를 원했다.

나는이 단계는로드 밸런서와 함께 문제를 만들 수 있다고 생각 :

```

$ gcloud compute routes create no-ip-internet-route --network gce-network \ 
    --destination-range 0.0.0.0/0 \ 
    --next-hop-instance nat-gateway \ 
    --next-hop-instance-zone us-central1-a \ 
    --tags no-ip --priority 800 

[email protected]:~$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
은 두 가지가 함께 작동하도록 무엇을 할 수 있는지 알고 계십니까?

+0

NAT 게이트웨이를 사용하려는 특별한 이유가 있습니까? 그렇지 않으면 원하는 트래픽과 포트를 허용하는 방화벽 규칙을 만들면됩니다. 인스턴스가 인터넷을 통해 잘 연결될 수 있어야합니다. – Boyan

+1

@Boyan Google 문서에 따르면 : "현재 인터넷에 전송 된 모든 패킷은 외부 IP 주소가있는 인스턴스에서 전송해야합니다. 특정 인스턴스에서 인터넷으로 패킷을 보내는 경로를 만드는 경우 해당 인스턴스도 외부 IP를 가지고있다.인터넷 게이트웨이로 패킷을 보내는 경로를 만들지 만 원본 인스턴스에 외부 IP 주소가 없으면 패킷이 삭제됩니다. "- 그래서 인스턴스에서 인터넷과 통신하기 위해 NAT 게이트웨이가 필요합니다. – TikTak

답변

1

설명해 주신 환경을 다시 작성했지만 문제가 발생하지 않았습니다.

$ gcloud compute routes create no-ip-internet-route --network gce-network \ 
--destination-range 0.0.0.0/0 \ 
--next-hop-instance nat-gateway \ 
--next-hop-instance-zone us-central1-a \ 
--tags no-ip --priority 800 

위의 명령이 어떤 작업을 수행하는 것이 유일한 것은, 아니 외부 트래픽 인스턴스들은 보낼 필요가 원하는 모든 트래픽에 대한 NAT 게이트웨이로 지적되도록 라우팅 규칙을 만들 수 있습니다. 이것은 LB가 귀하의 인스턴스에 접근하는 능력에 영향을 미치지 않습니다. 내 테스트에서

, 난 당신이 참조하는 정확한 가이드, which you can find here를 따라하고 결과 것을 :

  • 한 새로운 네트워크
  • 한 방화벽 규칙 포트에 SSH를 수 있도록 22
  • 1 모든 내부 트래픽을 허용하는 방화벽 규칙
  • 1 개의 새 인스턴스가 NAT 게이트웨이의 역할을 수행합니다.
  • 외부 인스턴스가없는 새 인스턴스 내부 인스턴스 IP 주소

또한 'TargetPool'에 내부 인스턴스를 추가하고 테스트 목적으로 LB를 만들었습니다.

내 내부 인스턴스는 LB의 외부 주소와 NAT 게이트웨이를 통해 내부적으로 액세스 할 수있었습니다. 내부 인스턴스는 NAT 게이트웨이의 구성으로 인해 인터넷과도 통신 할 수있었습니다. 모든 것이 예상대로 작동합니다.

내 독자 및 다른 독자에게 추천합니다 (이 게시물은 다소 오래되었으므로). 다시 시도하십시오. 다른 상충되는 규칙, 경로 또는 소프트웨어가 없는지 확인하십시오.

관련 문제