web-dev-qa-db-ja.com

OSX:ipfwを使用したiptablesを介したUbuntuIPマスカレードの模倣

良い一日、

ルーターとUbuntuPCの間で行っているセットアップを複製しようとしていますが、MacBook(10.6、Snow Leopard)でも同じセットアップが機能しています。

まず、USBポートを備えたルーターがあります。 Ubuntu PCに接続すると、RNDIS接続が作成され、IP接続を介してUSBケーブル経由でルーターに接続できるようになります。 USB経由でコンピューターに接続すると、172.16.84.1のIPアドレスが割り当てられ、ifconfigと入力すると新しいアダプターが表示されます。その後、ssh [email protected]を介してデバイスにSSHで接続できます。

デバイスにログインするときに、ルートをフラッシュしてから、デフォルトルートを作成します。

admin@localhost> route -f
admin@localhost> route add default 172.16.84.2

今、私のUbuntuマシンでは、iptablesを使用してIPマスカレードを有効にしています。

root@Valhalla> Sudo iptables -t nat -A POSTROUTING -s 172.16.84.2 -j MASQUERADE

これがすべて完了すると、ルーターはPCへのUSB接続を介してインターネットにアクセスできるようになります。

MacBook(Snow Leopard)でこの正確な設定を複製しようとしていますが、OSXにはiptablesが存在せず、Macportsバージョンも存在しません。 ipfwコマンドの使用法をカバーするStackOverflowの他の質問を精査しました。これは、iptablesのドロップイン置換として機能するようです。ただし、構文は大幅に異なり、私はほとんど迷っています。

ipfwの経験がある人は、これを達成して、Ubuntu PCの場合と同じようにIPマスカレードを介してNAT接続を作成する方法について提案がありますか?

ご協力いただきありがとうございます。

2
Cloud

oSXを使用してそれを行う最も簡単な方法は、System Preferences-> Sharing-> Internet Sharingを使用することです。 Internet Sharingをチェックし、Share your connection from Ethernet 2(USBネットワークデバイスはとして表示されると思います)、To computers using Ethernet(ローカルネットワークをイーサネット上に置きたいと思うので)と表示されるように構成します。それ以外の場合は、空港または関連するものを選択してください)。

それを行うためのひげを生やした方法は、実際にipfwとrouteを使用することです。簡単なグーグル検索は、次のURLで両方の方法に関する優れたチュートリアルを提供します。

http://www.ibiblio.org/macsupport/ipfw/ (コマンドラインの方法はGUIの方法の後にあります)

HTH

1
zmo

macosxで単純なインターネット共有を使用しないのはなぜですか?システム環境設定>共有>インターネット共有

ipfw natルールの場合(後で、インターネットはen0でローカルインターフェイスはen1であると言われます)

  1. sysctl -w net.inet.ip.fw.one_pass = 1(rootである必要があります)
  2. sysctl -w net.inet.ip.forwarding = 1
  3. / sbin/ipfw add 1040 en1を介してanyからanyへのipを許可します(ローカルインターフェイスを介して通過するすべてのものを許可します)
  4. / sbin/ipfw add divert natd all from any to any via en0
  5. / sbin/ipfw add pass all from any to any natd -interface en0(ここで、en0は発信インターフェイス)
  6. / usr/sbin/natd -interface en0(nat自体)
1
NauT