シンプル

シンプル

私のUbuntu 12.04(正確な)ラップトップには3つのネットワークインターフェイスがあります。

  1. eth0:有線インターフェイスが時々インターネットに接続することがあります。
  2. wlan0:無線インターフェースが時々インターネットに接続される
  3. vboxnet0:他のコンピュータ(実際にはホスト専用モードでネットワーク接続されたVirtualBox仮想マシン)に接続されている有線インターフェイス(実際にはVirtualBox仮想インターフェイス)

iptablesNAT / IPマスカレーディング設定を使用して、アクティブなインターネット接続を他のコンピュータと共有したいと思います(両方が有効な場合は有線接続が優先されます)。

eth0挿入後、次の操作を実行できます。

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward &&
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE &&
sudo iptables -A FORWARD -i eth0 -o vboxnet0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT &&
sudo iptables -A FORWARD -i vboxnet0 -o eth0 -j ACCEPT

有線から無線への切り替えは明らかに動作を停止します。

私は試した:

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward &&
sudo iptables -t nat -A POSTROUTING -o '!vboxnet0' -j MASQUERADE &&
sudo iptables -A FORWARD -i '!vboxnet0' -o vboxnet0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT &&
sudo iptables -A FORWARD -i vboxnet0 -o '!vboxnet0' -j ACCEPT

しかし、うまくいきません。インターフェイスが機能しているか無効になったときにルールを変更するためにいくつかのネットワーク管理者スクリプトを実行することもできますが、iptablesこれらの問題を経験することなく可能であると思います。

どんな提案がありますか?

答え1

シンプル

iptablesすべてを覆う非常に単純なルールセットです。これは多くの簡単な設定に適用されます。完全なルーターとして機能すると、ボックスは機能しません。潜在的に不快なNAT習慣があります。みんなコンピュータから出るトラフィックです。

iptables -A POSTROUTING -o eth+ -t nat -j MASQUERADE
iptables -A POSTROUTING -o wlan+ -t nat -j MASQUERADE

いっぱい

単純なソリューションが機能しない場合、または構成がより複雑な場合は、次のルールセットが役に立ちます。

NATIF='vboxnet+'
MARK=1
iptables -A PREROUTING -t mangle -i $NATIF -j MARK --set-mark $MARK
iptables -A POSTROUTING -o eth+ -t nat -m mark --mark $MARK -j MASQUERADE
iptables -A POSTROUTING -o wlan+ -t nat -m mark --mark $MARK -j MASQUERADE

インターフェイスを介しvboxnet*て着信パケットを表示しeth*wlan*発信パケットまたはタグ付きパケットをスプーフィング(SNAT)します。

返品…

iptablesルールに加えて、パケット転送を有効にしてホストをルーターに切り替える必要があります。置く:

net.ipv4.ip_forward=1

/etc/sysctl.conf、それから言う

sudo sysctl -p /etc/sysctl.conf.

または:

echo 1 | sudo tee /proc/sys/net/ipv4_ip_forward

ゲストには、ホストの外部インターフェイスを介してパケットをゲートウェイへのデフォルトパスも必要です(ホスト専用モードはこれに対して機能しない可能性があります)。ルーティングテーブルを確認してください(ゲストOSによって異なります)。

また、パケットを検査するためにインストールまたはwireshark使用tsharkします。このような一般的なネットワーク問題を解決するためのこれ以上の方法はありません。

個人的にゲストを使用するように変更することをお勧めします。ブリッジモードネットワークそして、ホストの両方のインターフェイスを使用できるようにします。その後、ルータの DHCP サービスを使用して独自に接続して、自分でローカル アドレスを取得できます。 NATは必要ありません。

関連情報