Open vSwitchスイッチを実際のネットワークに接続します:iptables masquerade


9

OpenBoxSwitchを使用してvirtualBoxゲストマシン間のスイッチドネットワークを作成しています。ホストOS(Ubuntu 12.04)をこのネットワークに参加させ、この仮想ネットワークのゲートウェイとして構成します。

最初に、vswitchを作成し、デバイスをタップするためにポートを追加しました(その仮想マシンはそれらをブリッジインターフェイスとして使用します)。

ovs-vsctl add-br sw0
ovs-vsctl add-port sw0 tap0

その後、私はLubuntu 12.04仮想マシンのIPを静的に設定しました:

ifconfig eth0 192.168.1.3/24 up
route add -net 0.0.0.0/0 gw 192.168.1.1

ホストOS側では、IPアドレスも設定します。

ifconfig sw0 192.168.1.1/24 up

現在、LubunutからUbunutuにpingを送信できます。ここで、ホストマシンでIPマスカレードを使用して、ネットワーク192.168.1.0/24から物理的なインターフェイス(インターネットに接続されている)にトラフィックを転送します。

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE

したがって、Lubuntu(仮想マシン)から、Ubuntu eth1インターフェイスにpingを実行できますが、実際のネットワーク(例:実際のLAN上のゲートウェイ)に到達できません。

nslookup google.com
dig @8.8.8.8 yahoo.com
dig @192.168.30.1 google.com

ネットワークトポロジー

   Internet (real gw) ------ Host OS -------- vswitch -------- VBox Guest 1
           192.168.30.1   ip masquerade    192.168.1.0/24
                                                |
                                                 ------------ VBox Guest 2

進捗状況があれば追加してください。私は同じ問題を抱えています。
Masood_mj 14年

回答:


1

答えは本当に私のものではありませんが... VirtualBoxでOpen vSwitchをフォローしてみてください

Fedoraの一部の人々からの同様のテーマに関する簡単なテキストファイルもありました:libvirtとOpenVSwitchがテキストファイルの形式で...それを見つけることができませんでした。

コメントに従って、ここに短い要約があります:

(1)vnet0インターフェイスとbr0ブリッジを作成します。

ovs-vsctl add-br br0
ip tuntap add mode tap vnet0
ip link set vnet0 up
ovs-vsctl add-port br0 vnet0
ip link # (View the created interface)

(2)vnet0インターフェイスを使用するVMをスピンアップ(ブリッジアダプターとして)

(3)ブリッジbr0を実際のネットワークに接続します。

ovs-vsctl add-br br0 
ovs-vsctl add-port br0 eth0 
ovs-vsctl add-port br0 vnet0 
ifconfig eth0  0 && ifconfig br0 192.168.1.(X) netmask 255.255.255.0
route add default gw 192.168.1.1 br0
route del default gw 192.168.1.1 eth0

変更される可能性のある外部の記事にリンクしているので、回答に解決策を要約し、代わりに記事を参照することをお勧めします。
Esa Jokinen、2015

0

/etc/sysctl.confでこれらの行のコメントを外して、再起動時に転送を有効にします

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