OS X El Capitanでルーティングを有効にする方法


3

192.168.56.0サブネット上のNATアダプタで構成されたLinux VMware仮想マシン(ゲスト)を持っています。そのIPアドレスは192.168.56.128で、私のMac(ホスト)は192.168.56.1です。ゲストのデフォルトゲートウェイは自動的に192.168.56.2に設定され、ゲストからGoogleにpingを送信することができます。ホストのWi-Fi IPは192.168.0.2です。

私のWi-Fiルーターに次のルーティングテーブルを設定して192.168.56.0から192.168.0.2のパケットを転送するようにしました(私のMac)

pi@raspberrypi ~ $ route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.16.4.1      0.0.0.0         UG    0      0        0 eth0
172.16.4.0      *               255.255.252.0   U     0      0        0 eth0
192.168.0.0     *               255.255.255.0   U     0      0        0 wlan0
192.168.56.0    192.168.0.2     255.255.255.255 UGH   0      0        0 wlan0
192.168.57.0    192.168.0.2     255.255.255.255 UGH   0      0        0 wlan0

しかし、Wi-Fiネットワーク(192.168.0.0)上の他のデバイスからゲストにpingを送信することができません。 OS X El Capitanを実行している私のMacがパケットを192.168.0.0から192.168.56.0に転送していないことは明らかです。

回答:


2

あなたのルーターは192.168.0.0から192.168.56.0へパケットをルーティングする責任はありませんが、VMホストはそうです。静的ルート192.168.56.0を維持する必要があります - >しかしルータ上で192.168.0.2。 2番目のルート192.168.57.0 - >の目的はわかりません。 192.168.0.2 - おそらくホスト上の2番目のNATアダプタです。

からVMに到達する その他の 192.168.0.0ネットワーク内のOS Xデバイスでは、各192.168.0.xマシン上でVMホストへのスタティックルートを設定する必要があります。

sudo route add -net 192.168.56.0  192.168.0.2

この経路を永続的にするには、各マシンに起動デーモンを追加します。

sudo nano /Library/LaunchDaemons/local.staticroute.vm.plist

コンテンツと

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>local.staticroute.vm</string>
    <key>ProgramArguments</key>
    <array>
      <string>route</string>
      <string>add</string>
      <string>-net</string>
      <string>192.168.56.0</string>
      <string>192.168.0.2</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

ファイルを保存し(ctrl-O)、nanoを終了します(ctrl-X)。

起動デーモンを次のようにロードします。

sudo launchctl load -w /Library/LaunchDaemons/local.staticroute.vm.plist

192.168.0.0ネットワーク内の他のデバイスがLinux / Windows / Androidホストの場合は、それぞれのコマンドを使用してルートを追加します。

Windows(永続)

route add -p 192.168.56.0 mask 255.255.255.0 192.168.0.2 

Linux:

route add -net 192.168.56.0 netmask 255.255.255.0 gw 192.168.0.2

Linuxで永続的なルートを追加するには、Linuxディストリビューションのドキュメントを確認してください。


1
このXMLは何ですか?これは私が今までに遭遇したXMLの最も速い使用法です!
neckTwi

これは、ネットワーク192.168.0.0上の他のMacから到達することです
neckTwi

ルーターからでも自分のVMに到達できません。
neckTwi

はい私のVMホストはからのパケットのルーティングを担当しています 192.168.0.0192.168.56.0。では、どうやってホスト(Mac)にそれをさせるのでしょうか。
neckTwi

@neckTwi私の解決策を実行してください。それでも問題が解決しない場合は報告してください。私はあなたと同じような環境でそれをテストしました、そしてそれはうまくいきます。 Linux VMのデフォルトゲートウェイを192.168.56.1に変更してください(これがホストの=ゲートウェイ内部アドレスであるため)。
klanomath

0

これは10.11で私のために再起動を生き残った。私はついていきます これらの指示

sudo networksetup -setadditionalroutes Wi-Fi 192.168.56.0 255.255.255.0 192.168.0.2

どこで Wi-Fi を使って見つけます networksetup -listallnetworkservices

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.