Сетевой интерфейс VirtualBox при загрузке

Настала осень и захотелось чего-то эдакого.
А именно, запустить внутренний интерфейс 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' &gt; /dev/null
su - <em>someuser</em> -c 'VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.32.1' &gt; /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' &gt; /dev/null
su - <em>someuser</em> -c 'VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.32.1' &gt; /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, но тут мысли у меня шли так: если пользователей много и каждый создаст свой интерфейс…

Добавить комментарий