2つのNICとインターフェース間のルーティング

2つのNICとインターフェース間のルーティング

2 つの異なるサブネット上で 2 つの NIC を実行し、それらの間をルーティングしている Ubuntu サーバーで問題が発生しています。パブリック サブネットとプライベート サブネットを持つリバース プロキシとして Nginx サーバーを実行しています。

Ubuntu サーバー 15.04 を実行しています。

セットアップは次のとおりです:

eth0      Link encap:Ethernet  HWaddr 00:50:56:88:6e:91
          inet addr:89.21.20.14  Bcast:89.21.20.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fe88:6e91/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:89152 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1729 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5552124 (5.5 MB)  TX bytes:286442 (286.4 KB)

eth1      Link encap:Ethernet  HWaddr 00:50:56:88:16:0b
          inet addr:10.150.200.50  Bcast:10.150.200.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fe88:160b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:549 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:53395 (53.3 KB)  TX bytes:1908 (1.9 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:160 errors:0 dropped:0 overruns:0 frame:0
          TX packets:160 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:12960 (12.9 KB)  TX bytes:12960 (12.9 KB)

ゲートウェイは eth0 にあります。

10.150.200.xxサブネット上のサーバーから89.21.20.14にpingを打とうとすると、うまくいかず通信できません。トラフィックはeth0にヒットしています。

sudo tcpdump -i eth0 proto \\icmp

89.21.20.xxのサーバーから10.150.200.50にアクセス/pingして同じことを試してみましたが、これもうまくいきませんでした。tcpdumpを実行すると、pingがeth1にヒットしているのがわかります。

問題は、プライベート サブネットの Web サーバー上で Web サイトが実行されており、それらの Web サイトが 89.21.20.xx のパブリック IP を指すドメインを参照しているため、サイト/アプリケーションと通信できないことです。

何らかのルーティングの問題だと思うのですが、どこから始めればよいかよくわかりません。

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         89.21.24.1      0.0.0.0         UG        0 0          0 eth0
10.150.200.0    0.0.0.0         255.255.255.0   U         0 0          0 eth1
89.21.20.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0



Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         89.21.20.1      0.0.0.0         UG    0      0        0 eth0
10.150.200.0    *               255.255.255.0   U     0      0        0 eth1
localnet        *               255.255.255.0   U     0      0        0 eth0

答え1

コメントで、サブネット トラバーサルは不要であると述べられています。つまり、サブネット トラバーサルは既に実現されており、一方eth0から他方へアクセスすることもeth1、他方からアクセスすることもできないため、問題はすでに解決されています。

ただし、他に質問がある場合は、質問内容をより具体的にする必要があります。(リバース プロキシは透過的に行われるため、リバース プロキシ サーバーを経由せずに、eth0からアクセスしたりeth1、その逆を行ったりすることはできませんnginx)。


以下は歴史的な理由から保存されています。

なぜこれがタグ付けされているのか知りたいこれは NGINX の問題ではないため、ルーター (またはルーターとして構成されたシステム) を設置しないまま、または「サーバー」を内部から外部へのプロキシとして動作させるルール (リバース プロキシではありません) を設定せずにeth1、内部 (および内部サブネット) から外部 (eth0およびパブリック インターネット) に移動しようとしているケースです。

NGINX はプロキシでもルーターでもありません。リバース プロキシは「OK、このリクエストをバックエンド abc に送信してください」と指示し、次に「ABC: 応答を送信してください」と指示して、外部からの最初のリクエストを内部サーバーに送信します。その後、nginx サーバーのバックエンド「abc」からの応答が返されます。これは、nginx によって要求元のクライアントに返されます。

リバース プロキシも外部から内部へのみ機能します。次の図は、基本的に外部から内部への様子を示しています。

Thomas W. による急いで描かれた図

リバース パスは機能しますが、これはリバース プロキシ システム (nginx) がバックエンドからの応答を待機し、そのデータを Web ブラウザーまたはリモート クライアントに返して、情報を要求し、応答を期待しているためです。

eth1ただし、リバースパスではeth0、リバースプロキシからリモートプロキシシステムを経由してリバースプロキシに移動することはできません。これはIPルーティングの仕組みではなく、目的を達成するには、本物内部 IP から外部へのネットワーク トラバーサルを処理できるルーターを設置し、その後eth0リバース プロキシ ボックスのパブリック IP アドレスに戻るようにすると、次のようになります。

ルーター方式、Thomas W. による別の図

この場合、データのトラバーサルは、内部ボックスから、それらが接続されているルーター ボックスを経由してインターネットに送られ、その後インターネットからボックスに戻りますeth0(もちろん、これはこれを説明する最も基本的な方法です)。

しかし、リバースプロキシボックスはないルーターとしても機能するため、期待通りには動作しません。


別の話ですが:

eth1内部( へ向かう)から へ直接pingすることはできませんeth0完全に異なるサブネット実際のルーターを経由して外に出て、また戻ってくるのでなければ。nginxもインストールされているサーバーをルーターとして設定しない限り、コメントから判断するとそうではないようです。つまり、この「インターフェースとサブネット間でpingができない」というのは予想される行動

関連情報