2つのイーサネットカードを介してトラフィックを転送する方法は?

2つのイーサネットカードを介してトラフィックを転送する方法は?

正しく設定する方法を見つけるのに苦労しています。私はそれを説明するためにGoogleのクエリをほとんど定式化することができないので、最善を尽くします。

2つのネットワークカードを持つUbuntu PCがあります。

eth0(192.168.1.0)はデフォルトのデフォルトゲートウェイに接続されてインターネットに接続され、
eth1(192.168.176.0)は複数のIPカメラが接続されているネットワークスイッチに接続されます。

ルータPCでIP転送、iptablesルール、およびホストを有効にしました。 eth1ネットワーク上のホストは、インターネットとeth0ネットワーク上の他のホストにアクセスできます。だから良いです。

今やりたいことは、eth0ネットワーク上のホストがeth1ネットワーク上のホストにアクセスできるようにすることです。

コンピュータはeth0ネットワークにありますが、ウェブカメラはeth1ネットワークにあります。 2 つの NIC カードを搭載したコンピュータはブリッジとして機能します。最終的に私はeth0のコンピュータがeth1のIPカメラを見ることができるようにしたいと思います。

マッピング試行中:192.168.1.1のホストは192.168.176.1のホストを表示できるはずですが、表示できません。

192.168.176.1のホストは192.168.1.1のホストを見ることができます(これらのホストはインターネットにもアクセスできます)。だからここではすべてが大丈夫です。

これまで、私はこれらのIPルールを持っており、eth1ネットワークが出ることを許可しています。

iptables --table nat --append POSTROUTING --out-interface enp1s0 -j MASQUERADE
iptables --append FORWARD --in-interface enp3s0 -j ACCEPT

私の質問は:eth0ネットワークがeth1ネットワークのホストにどのように到達するのですか?

eth1ネットワークにアクセスしたい各コンピュータにパスを追加する必要がありますか?

ルータPCでeth0とeth1インターフェイス間の転送を設定する必要がありますか?

現在、追加のルーティングコマンド、/etc/network/interfaces、およびiptablesルールは次のとおりです。

(Macでは:)
sudo パス -n 追加 -net 192.168.176.0/24 192.168.1.1

(NICが2台のパソコンの場合) /etc/ネットワーク/インターフェース #メインインターフェース enp3s0 自動enp1s0 iface enp1s0 inet 静的 住所 192.168.1.12 ネットマスク 255.255.255.0 ネットワーク 192.168.1.0 ゲートウェイ 192.168.1.1 DNSネームサーバー8.8.4.4 8.8.8.8

#セカンダリインターフェイスenp3s0 自動enp3s0 iface enp3s0 inet 静的 住所 192.168.176.1 ネットマスク 255.255.255.0 放送 192.168.176.255 ネットワーク 192.168.176.0

(NICが2台のパソコンの場合) iptables -t フィルタ-A 転送-i enp1s0 -o enp3s0 -j 受け入れ iptables -t フィルタ-A 転送-i enp3s0 -o enp1s0 -j 受け入れ iptables -t nat -A POSTROUTING -j MASQUERADE

ベストアンサー1

問題は主にホストのルーティング構成です。現在の設定は次のとおりです。

  • enp1s0 インターフェイスの IP アドレスは 192.168.1.1/24 です。
  • enp3s0 インターフェイスの IP アドレスは 192.168.176.1/24 です。

2 つの IP ネットワーク間のホストが通信するには、ルーティングテーブルに専用エントリが必要です。

  1. ネットワークカメラに接続する必要がある192.168.1.0/24のホストは、192.168.1.1が192.168.176.0/24のルーターであることに注意してください。
  2. 192.168.176.0/24 のホストには 192.168.1.0/24 へのパスが必要です。

これで、IPカメラの静的/ DHCP設定がデフォルトトラフィックを192.168.176.1経由でルーティングして、パケットをPCに送信する場所を知ることができると仮定します。ただし、192.168.1.0/24のPCには、インターネットルーターと呼ばれる基本項目が1つしかありません。したがって、192.168.176.0/24に送信されたすべてのパケットはそこに送信され失われます。

あなたはできます

  • 「クラスレス固定パス」オプションを使用して、192.168.1.1を介して192.168.176.0/24まで固定パスを通知するように192.168.1.0/24でDHCPルーターを構成します。
  • 192.168.1.1をPCの192.168.176.0/24のゲートウェイとして手動で追加

また、iptablesルールを更新する必要があります。 POSTROUTINGルールはルーティングを混乱させ、FORWARDルールは役に立ちません(DROPポリシーがない限り)。

iptables -t nat -F POSTROUTING
iptables -F FORWARD

カメラはデフォルトゲートウェイ 192.168.176.1 と nat POSTROUTING 項目で構成されているため、PC を表示できます。たとえば、IPカメラ192.168.176.10がPC 192.168.1.20にパケットを送信すると、そのパケットは最初にデフォルトゲートウェイ192.168.176.1(enp3s0)に送信されます。 Ubuntu PCはパケットをenp1s0に転送し、送信者のアドレスを独自のアドレス192.168.1.1に書き換えます。 192.168.1.20がパケットで応答すると、代替アドレス192.168.1.1に戻ります。 Ubuntu PCはこれを受信すると、IPカメラ192.168.176.10への応答であることを知ります。したがって、宛先アドレスを192.168.176.10に書き換え、enp3s0を介して転送します。

これで、NATを使用してパケットを混乱させたくないので、IPルーティングだけが必要です。前の例では、カメラのIPアドレスがUbuntu PCに置き換えられているため、PCはカメラのIPアドレスを192.168.1.1として認識しています。正しいパスを設定した後、

  • PCとカメラによって開始された接続では、PCはカメラのIPアドレスが192.168.176.10であることを知ります。
  • カメラからPCへの接続が開始された場合、PCにはまだカメラのIPアドレスが192.168.1.1(NATアドレス)として表示されます。

単純なIPデバイスの場合、2番目のものはそれほど重要ではありません。ただし、これは誤動作を引き起こす可能性があります。たとえば、管理対象スイッチがあり、SNMPトラップを使用したい場合です。このルールを削除する必要がありますiptables -t nat -A POSTROUTING -j MASQUERADE

発生する可能性のある1つの質問は次のとおりです。 IPカメラがインターネットにアクセスできるようにしますか?そうでない場合は、iptables FORWARD パスを含む 192.168.176.0/24 から 192.168.1.0/24 を除く他の場所へのパケットを拒否します。アクセスを許可するには、192.168.176.0/24 への静的ルートを持つルーターを構成する必要があります。

おすすめ記事