|
|
|
Задаване на име на мрежова карта в Linux използвайки udev Gentoo Linux и udev-103 | Четвъртък, 25 Януари 2007 Програмата udev позволява на Linux потребителите да имат динамична /dev директория и дава възможност за задаване на постоянни имена на хардуерните устройства. Частен случай на описаното по горе е задаването на постоянно име на мрежова карта. Това може да ви се наложи при конфигурирането на Linux Gateway машина, разбира се с повече от един мрежови интерфейс. В този случай реда на мрежовите интерфейси са от съществено значение и всяка една промяна на този ред би довело до значителни проблеми. В тази статия ще дам пример с конфигурирането на три мрежови интерфейса и на проблемите, които се натъкнах по време на тази операция.
Редът на мрежовите интерфейси може разбира се да се промени и с използването на други методи. Тук ще спомена само стандартния начин на задаване на псевдоними (aliases), когато драйверите на мрежовите карти не са компилирани директно в ядрото, а могат да се добавят като модули. В Gentoo този ред се задава в файла /etc/modules.d/aliases по този начин:
Примерен код | alias eth0 3c59x alias eth1 e100 alias eth2 8139too |
Когато драйверите са вградени директно в ядрото или съществуват две мрежови карти, които използуват един и същ драйвер този метод е неприложим.
Затова ако използваме udev може с няколко прости правила да решим проблема. В Gentoo Linux в директория /etc/udev/rules.d се намират всички udev правила. В тази директория трябва да се намират и следните два файла: 1) 70-persistent-net.rules ; 2) 75-persistent-net-generator.rules .
Важният за нас файл е 70-persistent-net.rules, в който udev е генерирал правила задаващи постоянните имена на мрежовите интерфейси. Ако този файл не съществува, вие може ръчно да го създадете или като извикате командата: /lib/udev/write_net_rules all_interfaces Съдържанието на файла 70-persistent-net.rules представлява:
Примерен код | # This file was automatically generated by the /lib/udev/write_net_rules # program, probably run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single line.
# First network card SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="xx:xx:xx:xx:xx:xx", NAME="eth0"
# Second network card SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="yy:yy:yy:yy:yy:yy", NAME="eth1"
# Third network card SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="zz:zz:zz:zz:zz:zz", NAME="eth2" |
За уникален атрибут за идентифицирането на името на картата (eth0, eth1 и eth2) се използва MAC адреса на мрежовата карта. Името на дадена карта може да бъде произволна, като например LAN, DMZ, WAN, но в последствие трябва да се променят всички настройки в /etc където са указани предишните имена.
Бележка: Важно е да се запомни че udev различава малки и големи букви (case sensitive) и MAC адреса трябва да бъде написан само с малки букви.
Повече информация за всяка мрежова карта може да получите като изпълните следната команда за eth0:
Цитат | udevinfo -a -p /sys/class/net/eth0 |
или за да получите само MAC адреса на eth0:
Цитат | udevinfo -a -p /sys/class/net/eth0 | grep address | sed 's/"/ /g' | awk '{print $2}' |
След извършените по горе настройки рестартирайте машината и проверете дали всичко в според указаните правила.
Възможно е при зареждането на системата да видите следния надпис:
Цитат | udevd-event[3110]: rename_netif: error changing net interface name eth0_rename to eth1: No such device. |
Може да намерите информация за справяне с този проблем на http://bugs.gentoo.org/show_bug.cgi?id=158531
Още много полезна и подробна информация, която значително помогна и на мен:
Ако създавате други свои собствени правила е препоръчително записването им в нов файл /etc/udev/rules.d/10-local.rules , който ще се извика значително по-рано от останалите правила.
|
|
|
<< Назад
|
|
|
|