24 августа 2011 г.

WEB-сервер на Linux. Часть 1 - Настройка сетевой карты

Установив Ubuntu Server 11.04 на виртуальную машину под Hyper-V. Утыкаюсь в первую проблему - система не видит Hyper-V'шный синтетический сетевой интерфейс.

Решение находится быстро - надо включить поддержку Hyper-V в убунте.

1. Подключаем модули поддержки Hyper-V. Для этого в /etc/initramfs-tools/modules добавляем строчки:
  hv_vmbus 
  hv_storvsc  
  hv_blkvsc 
  hv_netvsc
  hv_utils

Для чего нужны эти модули?
hv_vmbus - шина Hyper-V, основной модуль
hv_storvsc - поддержка виртуального хранилища (виртуальный жесткий диск)
hv_blkvsc - поддержка блочных устройств, требуется для хранилища.
hv_netvsc - поддержка синтетической сетевой карты
hv_utils - поддержка расширенных возможностей Hyper-V, таких как управление питанием гостевой системы и т.п. 
 
2. Обновляем initramfs 
  sudo update-initramfs -u 

3. В /etc/network/interfaces добавляем интерфейс eth0 (в руководствах из инета говорят про seth0, но у меня синтетический адаптер hyper-v получил имя eth0, по неизвестным мне причинам)
  Auto eth0
  iface eth0 inet static
  address x.x.x.x
  netmask x.x.x.x
  Gateway x.x.x.x

Не забываем указать DNS-серверы в /etc/resolv.conf
Описанный  вариант используется для статического назначения ip-адреса. Вариант для динамического назначения приведен ниже:
   Auto eth0
  iface eth0 inet dhcp


Если изначально при установке был добавлен legacy адаптер - отключаем его, т.к. дефолтный маршрут идёт через него (а он, как известно интернетам, не работает).
Перезагружаем сервер.

И тут же нарываюсь на грабли - сети нету. После экспериментов и копания в логах выяснилось, что udev переименовал мой сетевой интерфейс с eth0 в eth2. При этом нет ни слова про seth0, о котором пишут в руководствах. Как выяснилось, переименование произошло из-за того, что во время настройки сети, я пару раз удалял из hyper-v сетевой интерфейс и добавлял другой, а Udev записывал MAC-адреса этих интерфейсов. Поскольку MAC текущей сетевухи отличается от MAC'а первой в жизни udev'a сетевухи, он и переименовал ее. Проблема решается удалением кэша udev для сетевух:
$ sudo rm –f /etc/udev/rules.d/70-persistent-net.rules 

Комментариев нет:

Отправить комментарий