
현재 2개의 퍼블릭 IP를 가리키고 싶은 ec2 인스턴스가 하나 있습니다. 2개의 EIP가 할당되어 있고, EIP가 연결되어 있고 둘 다 ubuntu 14.04.2 LTS를 실행하는 단일 EC2 인스턴스에 연결되어 있는 2개의 네트워크 인터페이스가 있습니다. 최근에 두 번째 EIP와 네트워크 인터페이스가 추가되었으며 실제로 eth1
팝업이 나타나는데 현재는 수동으로 실행해야 dhclient
하지만 문제는 아닙니다. 문제는 패킷이 통과되지 않는다는 것입니다. 보안 그룹을 세 번 확인했는데 모두 모든 IP 주소에서 포트 80을 허용합니다. 그러나 iptables에 바이트 카운터 규칙을 추가하면 iptables -A INPUT -i eth1
정확히 0개의 패킷이 두 번째 인터페이스를 통해 내 컴퓨터에 도달한다는 것을 알 수 있습니다.
찾아서 읽었습니다이것하지만 그것은 도움이 되지 않습니다.
내가 무엇을 놓치고 있나요? 클릭하는 것을 잊어버린 버튼이 있나요?
답변1
2개의 개인 IP 주소와 2개의 EIP가 연결된 ec2 인스턴스가 올바르게 작동하고 있지만 두 번째 IP에는 다른 네트워크 인터페이스가 아닌 하위 인터페이스를 사용했습니다.
/etc/network/interfaces의 내용(debian wheezy)
auto lo
iface lo inet loopback
auto eth0 eth0:0
iface eth0 inet dhcp
post-up ifconfig eth0:0 172.31.xx.yy netmask 255.255.240.0 up
IP 주소를 eth0:0에 수동으로 할당한 이유가 기억나지 않지만 이 설정은 작동합니다. 또한 테스트
curl --interface PRIVATE_IP ifconfig.me
eth0 및 eth0:0에서 나가는 트래픽은 실제로 올바른 EIP에서 시작된다는 것을 보여줍니다.
답변2
1년이 넘게 지난 후, 마침내 그 사실을 깨달았습니다! 덕분에이 기사. 요약하자면:
아직 실행하지 않았다면 새 인터페이스에서 dhclient를 실행하세요.
# dhclient eth1
그런 다음 새 개인 IP 주소가 무엇인지 알아보세요. EC2 콘솔을 보거나 다음을 실행할 수 있습니다.
ip addr
게이트웨이 IP도 알아야 합니다. 대부분의 경우 이지만 your.ip.0.1
확실히 실행하려면 다음을 수행하세요.
ip route
그러면 다음과 같은 내용이 표시됩니다.
default via 12.34.0.1 dev eth0
12.34.0.1
이 경우 게이트웨이입니다. 데모를 위해 개인 IP가 12.34.56.78
. 이제 (루트로) 실행하십시오:
ip rule add from 12.34.56.78 table 1000
ip route add default via 12.34.0.1 dev eth1 table 1000
ip route flush cache
구성을 테스트하려면 다음을 수행하세요.
curl --interface 12.34.56.78 ifconfig.me
/etc/network/interfaces
그런 다음 변경 사항을 영구적으로 적용하려면 해당 명령과 반대 명령을 추가하세요 .
auto eth1
iface eth1 inet dhcp
up ip rule add from 12.34.56.78 table 1000
up ip route add default via 12.34.0.1 dev eth1 table 1000
down ip rule del from 12.34.56.78 table 1000
down ip route del default via 12.34.0.1 dev eth1 table 1000
참고: 문제가 발생하여 인스턴스에 액세스할 수 없는 경우를 대비하여 영구 네트워크 설정을 변경하기 전에 인스턴스의 스냅샷이 있는지 확인하십시오.