インターフェイス間のポート/IPバインディングトラフィックの分割

インターフェイス間のポート/IPバインディングトラフィックの分割

〜のようにこれリクエスト(私の意見では)ある特定のインターフェイスを介してルーティングされる特定のポート番号にバインドされたトラフィックと、別のインターフェイスを介してルーティングされる特定のIPへのトラフィックを表示したいと思います。このタスクを実行するサーバーにはUbuntu 14.04.2が新しくインストールされているため、タスクを実行するために必要なツールがたくさんあります。しかし、ネットワーキングの経験があまりないので、どこから始めるべきかわかりません。 =)

よろしくお願いします!

編集する:

一部の詳細は重要なためです。

me@server:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 54:9f:35:0a:6a:20 brd ff:ff:ff:ff:ff:ff
    inet 10.22.89.50/24 brd 10.22.89.255 scope global em1
       valid_lft forever preferred_lft forever
    inet6 fe80::569f:35ff:fe0a:6a20/64 scope link 
       valid_lft forever preferred_lft forever
(...)
6: p1p1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:0f:53:2d:4b:80 brd ff:ff:ff:ff:ff:ff
    inet 10.22.52.199/26 brd 10.22.52.192 scope global p1p1
       valid_lft forever preferred_lft forever
7: p1p2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:0f:53:2d:4b:81 brd ff:ff:ff:ff:ff:ff
    inet 10.22.52.200/26 brd 10.22.52.192 scope global p1p2
       valid_lft forever preferred_lft forever

74.120.50.7すべてのトラフィックを経由してルーティングし、すべてのトラフィックを経由してp1p2ポートのすべてのIPにルーティングしたいと思います。7047p1p1

ベストアンサー1

確認:まず、同じサブネットに連続したIPアドレスを持つ2つのインターフェイスがあります。より高いスループットを得るために2つのインターフェイス間で負荷を分散したい場合(たとえば、2つのギガビットNICを2ギガビットNICに切り替えたい場合)、これを行うより良い方法があります。一般的な用語は「結合」です。 「ネットワークボンディング」または「NICボンディング」を検索して検索します。

これがあなたがやっていることではないと仮定すると、次に注目する必要があるのは、Linuxのデフォルト設定は、IPアドレスをホストにバインドされたものとして扱うことです。いいえインターフェイスに。/procこの設定を変更する項目があります。/proc/sys/net/ipv4/conf/«INTERFACE»/arp_filter; この動作を無効にするには 1 に設定します。これを行う必要があるかもしれません。

最後に、いくつかの連続したプライベートIPアドレスを作成し、それを質問に使用して実際のIPを編集できます。両方のインターフェイスは同じサブネット上にありません。このような場合は、上記の内容を無視して、混乱を避けるために、今後は他のプライベートサブネットを使用してください。

とにかく、あなたの場合、あなたがつながった質問とは異なるいくつかのことが行われています。その答えの残りの部分を適用する必要があります。

  1. 両方のポートが同じイーサネットネットワーク上にある場合(たとえば、同じスイッチに接続されている場合)、実際にスイッチはトラフィックを送信するポートを決定します。高価なスイッチがない場合ただ宛先MACアドレスに基づいています。誰かがTCPポート番号を見ることができるスイッチを作ったと確信していますが、価格は安くはありません。

  2. デフォルトでは、ルータはデータを送信します。到着あなたのサーバーはターゲットIPアドレスにのみ興味があります。 「みんな」を得るために着信10.22.52.199 または 10.22.52.200 へのポート 7047 のトラフィックは 10.22.52.199 に移動します。ルーターがこれを行うように説得する必要があります。これは容易ではないかもしれません。

  3. 74.120.50.7へのトラフィックはかなり簡単にする必要がありますip route add 74.120.50.7/32 via «ROUTER» dev p1p2 src 10.22.52.200。データが送信されるデバイスとソースIPを指定すると、そのインターフェイスからデータが出ると確信しています。 (/ 32は255.255.255.255ネットワークマスクで、アドレスが1つしかないことを意味します。)「ROUTER」のネクストホップルーターを入力する必要があります。 (おそらくどこかで「デフォルトゲートウェイ」と呼ばれます)。

  4. ポート番号と同様に、ルーティングテーブルを追加します(リンクされた質問に対する回答から)dev p1p1 src 10.22.52.199。上記がうまくいけば、これもうまくいきます。

トラフィックが正しいインターフェイスに流れていることを確認できます。たとえば、次のようになります。tcpdump -p -i INTERFACE

おすすめ記事