以下のGuestOS1〜5はVMwareの複数のCustomネット上に存在し、それぞれ勝手なアドレス(例えばプライベートアドレス)が振られているとする。
このアドレス体系のままで、GuestOS5を介して、インターネット等といった外部の実ネットワークとやりとりしたいとする。仕事上よくある。以下にその手順を示す。
■1.GuestOS5に、Vmwareのbridgeインターフェース(eth1)を追加する。
この設定だけではGuestOS5発のパケットのinternetへのやり取りは可能となるが、GuestOS1〜4発のパケットはinternetに出ていかない。仮に出て行っても戻りのパケットが届かない。発信元のアドレスがプライベートアドレスなどといった勝手なアドレスであるためである。
このことから、上のGuestOS5のeth1をVmwareのbridgeインターフェースとするのでなく、Vmwareのnatインターフェースとすれば解決しそうな気もするが、それでも解決しない。VmwareはGuestOS5のeth1に割り当てられたアドレスのみをNAT変換し、GuestOS1〜4のアドレスはNAT変換しないためである。
■2.GuestOS5に、eth0->eth1へのNAT(IPマスカレード)を設定する。
結局は、上の通りにeth1をVmwareのbridgeインターフェース(もしくはnatインターフェースでもよいと思われる)にしつつ、さらに、GuestOS5そのものをNAT化すればよい。GuestOS5そのもののNAT化はVMwareの設定でなくOSサイドの設定となる。
例:GuestOS5(Linuxの場合)にて以下を実行する。
$iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
$service iptables save
$chkconfig --add iptables
■3.デフォルトゲートウェイをGuestOS5のeth0のアドレスにする。
例:GuestOS3(Redhat系Linuxの場合)にて以下を実行する。
$vi /etc/sysconfig/network
GATEWAY=GuestOS5のeth0のアドレス
$service network restart
尚、GuestOS1,2,4のデフォルトゲートウェイは、GuestOS3のそれぞれのIFのアドレスとなる。これにて、GuestOS1〜4が自身のアドレス設定を変えずにそのまま外部通信(インターネット通信)が可能となる。もちろん、外部に出たパケットはNAT変換されている。
以上
GuestOS2
|
|VMnet3
VMnet2 | VMnet5
GuestOS1--------GuestOS3-------------GuestOS5
|
|VMnet4
|
GuestOS4
このアドレス体系のままで、GuestOS5を介して、インターネット等といった外部の実ネットワークとやりとりしたいとする。仕事上よくある。以下にその手順を示す。
■1.GuestOS5に、Vmwareのbridgeインターフェース(eth1)を追加する。
GuestOS2
|
|VMnet3
VMnet2 | VMnet5 bridge
GuestOS1--------GuestOS3-------------GuestOS5----------HostOS
| (eth0) (eth1) |
|VMnet4 |社内or
| :自宅LAN
GuestOS4 |
internet
この設定だけではGuestOS5発のパケットのinternetへのやり取りは可能となるが、GuestOS1〜4発のパケットはinternetに出ていかない。仮に出て行っても戻りのパケットが届かない。発信元のアドレスがプライベートアドレスなどといった勝手なアドレスであるためである。
このことから、上のGuestOS5のeth1をVmwareのbridgeインターフェースとするのでなく、Vmwareのnatインターフェースとすれば解決しそうな気もするが、それでも解決しない。VmwareはGuestOS5のeth1に割り当てられたアドレスのみをNAT変換し、GuestOS1〜4のアドレスはNAT変換しないためである。
■2.GuestOS5に、eth0->eth1へのNAT(IPマスカレード)を設定する。
結局は、上の通りにeth1をVmwareのbridgeインターフェース(もしくはnatインターフェースでもよいと思われる)にしつつ、さらに、GuestOS5そのものをNAT化すればよい。GuestOS5そのもののNAT化はVMwareの設定でなくOSサイドの設定となる。
例:GuestOS5(Linuxの場合)にて以下を実行する。
$iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
$service iptables save
$chkconfig --add iptables
■3.デフォルトゲートウェイをGuestOS5のeth0のアドレスにする。
例:GuestOS3(Redhat系Linuxの場合)にて以下を実行する。
$vi /etc/sysconfig/network
GATEWAY=GuestOS5のeth0のアドレス
$service network restart
尚、GuestOS1,2,4のデフォルトゲートウェイは、GuestOS3のそれぞれのIFのアドレスとなる。これにて、GuestOS1〜4が自身のアドレス設定を変えずにそのまま外部通信(インターネット通信)が可能となる。もちろん、外部に出たパケットはNAT変換されている。
以上
コメント