
クラウド ネットワークにゲートウェイ サーバーを設定して、すべてのサーバー (外部 IP を持たないサーバーも含む) がこのゲートウェイ サーバー経由でインターネットにアクセスできるようにしたいと考えています。
これを実現するための最初のタスクは、サーバー上のネットワーク インターフェイスを手動で構成し、ゲートウェイ プロパティを設定することです。
私が設定しようとしている最初のサーバーは、パブリックとプライベートの両方のネットワーク インターフェイスを備えた Ubuntu 16.04 Web サーバーです。私は先に進み、/etc/network/interfaces を次のように更新しました。
auto lo
iface lo inet loopback
# public interface - to be used only for inbound access
auto eth0
iface eth0 inet static
address 94.237.40.154
netmask 255.255.252.0
# internal interface - this is where it will get internet
auto eth1
iface eth1 inet static
address 10.5.0.155
netmask 255.255.252.0
gateway 10.5.2.135 # my gateway server
dns-nameservers 8.8.8.8
# unused interface - this was there from before
auto eth2
iface eth2 inet6 auto
そのため、これを保存してサーバーを再起動するとすぐに、外部 IP 上のサーバーへの着信接続が機能しなくなります。現在、このサーバーではポート 80 とポート 22 が開いていますが、どちらも機能しなくなります。
クラウド コンソールを使用してサーバーにアクセスし、ゲートウェイ サーバー経由でインターネット アクセスを完全に正常に取得できました (traceroute を試しましたが、すべて正常に動作しました)。インターフェイスは両方とも起動しており、「ifconfig」で正しい IP 構成が表示されています。ただし、着信アクセスはまったくありません。設定を元に戻して DHCP を再度使用すると、すべて正常に動作します。
以前、ローカル サーバーでもこの問題が発生したことがありますが、何が原因なのかわかりませんでした。ご協力いただければ幸いです。
編集: もう 1 つ注意点があります。eth0 にデフォルト ゲートウェイを設定し、eth1 からそれを削除すると、着信アクセスが機能し始めます。