Настала осень и захотелось чего-то эдакого.
А именно, запустить внутренний интерфейс VirtualBox (конкретно версии 4.1) для всех виртуалок. Настройка его достаточно проста. Адреса по DHCP он раздаёт, но как-то ерундово, и под эту тему я решил использовать dnsmasq, все равно установлен был. Настройка dnsmasq — тоже простая до жути и описывать ее скучно. Как и настройку NAT.
Но вот проблема с которой я столкнулся в SL6 и в Fedora 15, при загрузке не появляется сетевой интерфейс и, соответственно, настроенный на него dnsmasq тоже не стартует.
Как запустить vboxnet0 — гугл молчит, точнее ничего путёвого не пишет. Порылся и вот такой «костыль» родил:
Прописываем в /etc/rc.local след. строки:
1 2 3 4 | su - <em>someuser</em> -c 'VBoxManage list hostonlyifs' > /dev/null su - <em>someuser</em> -c 'VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.32.1' > /dev/null ifconfig vboxnet0 up systemctl start dnsmasq.service |
[UPD] для Fedora 16
1 2 3 4 5 6 7 8 | su - <em>someuser</em> -c 'VBoxManage list hostonlyifs' > /dev/null su - <em>someuser</em> -c 'VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.32.1' > /dev/null /sbin/ifconfig vboxnet0 up IPV6_ON_VBOXNET=`ifconfig vboxnet0 | grep inet6` if [ "$IPV6_ON_VBOXNET" != "" ]; then ip addr del fe80::800:27ff:fe00:0/64 dev vboxnet0 fi /bin/systemctl start dnsmasq.service |
Рассказываю:
someuser — имя пользователя, под которым запускается VirtualBox.
Первая строка — вроде пинка VBox’у, чтобы он активировал сетевой интерфейс, без нее он этого делать не будет.
Вторая строка — это придание интерфейсу гламурности, т.е. IP я так ему выставляю, без этой строки dnsmasq будет работать кривовато.
Ну дальше и так ясно, поднимаем интерфейс и запускаем dnsmasq.
Для Fedora 16, добавлены строки «узнавания» и удаления ipv6 на интерфейсе, иначе dnsmasq не стартует, это баг в F16 и он уже на контроле.
Согласен, очень костыльно, совсем не Fedora-way, но работает 🙂
Не уверен, что надо стартовать интерфейс через su, но тут мысли у меня шли так: если пользователей много и каждый создаст свой интерфейс…