Задача: прозрачный сетевой доступ к Интернету из гостевых ОС а также сетевой доступ к гостевым ОС из хостовой ОС (доступ по ssh, ftp, mysql, etc).
В VmWare это легко решается путем установки bridged network для виртуальной машины, однако в VirtualBox возникают проблемы со второй частью. В документации предлагается использовать mode NAT для виртуальных машин с пробрасыванием входных портов что мне категорически не нравится. Bridged networking в VirtualBox "садится" на реальный сетевой адаптер и перехватывает пакеты, в этом случае ip адрес на гостевой ОС должен быть из подсети локальной сети (насколько я понимаю), что в моем случае проблематично, ибо делалось на рабочем компьютере.
После нескольких экспериментов сделал так:
Хостовая ОС - Win XP, гостевые - Win Xp и Ubuntu Server.
1. В хостовой ОС установил дополнительный сетевой адаптер "Microsoft Loopback adapter".
2. Выставил ему IP типа 192.168.1.1 с маской 255.255.255.0
3. Добавил в route table запись такого вида: "route -p add 192.168.1.0 mask 255.255.255.0 192.168.1.1"
4. Для гостевых ОС выставил 2 сетевых адаптера - первый использует mode NAT и дает прозрачный доступ к инету, второй использует bridged networking через "Microsoft Loopback adapter".
5. В гостевой Win XP просто выставил получение адреса по DHCP для первого адаптера, а для второго - адрес 192.168.1.101 и gateway 192.168.1.1. После этого все заработало (для входных соединений в гостевой Win XP еще нужно настроить firewall)
6. В гостевой Убунте аналогично настроил два адаптера (второй с ip 192.168.1.102), но дополнительно в Убунте пришлось удалить из route table запись: "route del default gw 192.168.1.1" - после этого заработал инет.
Возможно такое решение не самое оптимальное, однако оно работает
Upd Запись "default" из route table в п.6 после перезапуска восстанавливатся, поэтому нужно в /etc/network/interfaces прописать "up route del default gw 192.168.1.1"
четверг, 1 октября 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)

7 comments: