web-dev-qa-db-ja.com

Linuxゲートウェイ:1つのネットワークカードで、あるサブネットから別のサブネットになりすます方法

おはようございます。私たちのネットワークには、エイリアスIPアドレスを持つ単一のLinuxマシンがあります。これらの各IPアドレスは、ISPへのリモートルーターによって制御されるネットワーク上にあります。

Linuxボックスを内部ネットワーク(10.0.0.x)のゲートウェイとして使用し、Linuxボックスを使用して発信トラフィックを別のネットワーク上のルーターの1つに転送します。

私が読んだことはすべて、2枚の物理インターフェイスカード間のマスカレードに関するものです。ただし、ネットワークカードは1つしかなく、複数のIPアドレスをリッスンしています。

Linuxボックス自体。ルーターの1つをアップストリームゲートウェイとして使用して、インターネットに正常にpingおよびアクセスできます。

したがって、構成は次のとおりです。

: Linux Box 
  eth0:0 = 10.0.0.5
  eth0:1 = 192.168.137.5
  GW: 192.168.137.1


: Router#1
  IP: 192.168.137.1
  Connection to internet via ISP


: Network Machines
  IP: 10.0.0.x
  GW: 10.0.0.5

質問は、Linuxボックスでのiptables/natの設定で、10.0.0.xサブネット上のパケットを受け入れ、ゲートウェイ用に構成された特定のIPアドレスにルーティングできるようにするためのものです。 -dとしてeth0:1を使用しようとすると、iptablesは無効な文字について不平を言い、インターネットで読んだものから、これはiptablesで無効にされました( http://lkml.indiana.edu/hypermail/linux /net/9705.1/0016.html )。

誰か助けてもらえますか?私はここで本当に明白な何かを見逃していると確信しています。私の歴史的な知識はすべて、2つの別々のethXネットワークインターフェイスでした。

ありがとうございました


更新;これが「ハックティ」iptablesスクリプトです

WIFIBACKUP=192.168.137.1

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F -t nat

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A PREROUTING -s 10.0.0.0/32 -j REDIRECT --to $WIFIBACKUP

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
5
Alan Williamson

-dは--destination用で、アドレス(またはネット)が必要です。宛先が「任意」の場合、指定しないでください。

リダイレクトはNATを行いません。
エイリアスを使用しているため、-iと-oを使用しても機能しません。回避策は、-dと-sを使用することです。 「!」で否定できます。したがって、宛先が10.0.0.0/24ではない10.0.0.0/24からのすべてのトラフィックについて、マスカレードを実行します。

iptables -t nat -A POSTROUTING -s 10.0.0.0/24!-d 10.0.0.0/24 -j MASQUERADE

7
3molo