LinuxForum.Fans
Тема

Присвоение логического имени сетевому интерфейсу по MAC

Автор: Liber 10 сообщений 2896 просмотров
#303924

У меня стоит две катрочки (eth0, eth1), хочу присвоить им логические имена wan, lan через mapping в interfaces. Ибо иногда после перезагрузки или запуска/останова демона networking карточки "скачут", меняются местами, либо eth0 внезапно становится eth2 и т.д. Что доставляет тонны радости. *WALL*
Для проверки начал со внешнего интерфейса:

text
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface auto lo iface lo inet loopback

allow-hotplug eth0 eth1 mapping eth0 script /usr/local/bin/get-mac-address.sh map xx:xx:xx:xx:xx:xx wan1 map yy:yy:yy:yy:yy:yy lan

# The primary network interface (LAN) iface eth1 inet static address zzz.zzz.zzz.1 netmask 255.255.255.0 network zzz.zzz.zzz.0 broadcast zzz.zzz.zzz.255

# The secondary network interface (WAN) #iface eth0 inet dhcp iface wan1 inet dhcp

В итоге - интерфейс лежит и совсем не поднимается :(

text
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:25 Base address:0x4000

eth1 Link encap:Ethernet HWaddr yy:yy:yy:yy:yy:yy inet addr:zzz.zzz.zzz.zzz Bcast:zzz.zzz.zzz.255 Mask:255.255.255.0 inet6 addr: zzz:zzz:zzz:zzz/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:364 errors:0 dropped:0 overruns:0 frame:0 TX packets:303 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:39011 (38.0 KiB) TX bytes:92314 (90.1 KiB) Interrupt:21 Base address:0xec00

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:32 errors:0 dropped:0 overruns:0 frame:0 TX packets:32 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1958 (1.9 KiB) TX bytes:1958 (1.9 KiB)

У моего прова какая-то хитрая привязка к оборудованию юзера. Помимо сверки MAC'а еще проходит керберос аутентификация. Не зная, может ли влиять на привязку логическое имя интерфейса (хотя сомнительно это), на всякий случай решил повторить такой же ход на LAN интерфейсе, чем заработал себе веселенькую чехарду с клавиатурами и монитрами... Короче, когда попытался прописать маппинг для eth1, он лег точно так же.

И вот я в недоумении - что же я не так сделал? Вроде, все по писанному. ОС Debian Squeeze.

Скрипт /usr/local/bin/get-mac-address.sh скопирован из /usr/share/doc/ifupdown/examples.

И где я напортачил? %) Подскажите, пожалуйста!

#303933

А с помощью udev не проще?
Покажите

text

cat /etc/udev/rules.d/*-persistent-net.rules
#303937

Ох... да я и сам сегодня не раз подумал, что наверное проще. В деталях не разбирался, как это делается, просто знаю, что можно - попадалась как-то статья на глаза. Собственно, изначально так и собирался сделать, но сегодня возился с интерфейсами как раз, нашел про маппинг в мануалах и решил сделать это с его помощью, раз предусмотрена такая возможность.

"Lupo Alberto" написал:
Покажите
Вот:
text
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10ec:0x8168 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x13f0:0x0200 (sundance) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="yy:yy:yy:yy:yy:yy", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

#303938

Попробуйте поменять значение NAME= на нужное.

#303944

Ура! Взлетел! Интерфесы - с ходу.

Правда, без косячков не обошлось, забыл сразу поправить /etc/default/isc-dhcp-server, что очень огорчило DHCP-сервер... Но это мелочи!

Большое спасибо!

P.S. Кстати, меня смущает и настораживает вот эта надпись:

"Liber" написал:
# This file was automatically generated by the /lib/udev/write_net_rules program, run by the persistent-net-generator.rules rules file.
в /etc/udev/rules.d/70-persistent-net.rules. Этот файлик не может "совершено случайно" внезапно перегенерироваться при каких-то условиях? С затиранием всех правок. Например, при рестарте нетворкинга?
#303945

Ой, да! И попутно: какие символы допустимы в имени интерфейса? '_', '-' можно использовать?

#303957
"Liber" написал:
Этот файлик не может "совершено случайно" внезапно перегенерироваться при каких-то условиях?
"Liber" написал:
# This file was automatically generated by the /lib/udev/write_net_rules program, run by the persistent-net-generator.rules rules file.

Файл /etc/udev/rules.d/70-persistent-net.rules создаётся автоматически командой /lib/udev/write_net_rules, если он отсутствует, но допускает правки. Ничто не мешает вам создать свой подобный файл, чуть изменив имя (поменяйте число, к примеру на >70), тогда он будет обрабатываться позже и не будет переписываться (хотя и так не должен).

"Liber" написал:
И попутно: какие символы допустимы в имени интерфейса? '_', '-' можно использовать?

Попробуйте, вроде бы эти символы допустимы. Пробелов в именах, главное, избегайте ;)

#303976

Да уж огород, нет чтобы снести файло /etc/udev/rules.d/70-persistent-net.rules перезагрузиться и получить порядок интерфейсов в соответствии их физическому порядку.

#303978

Да, только одно но, видимо при параллельной загрузке косяки все же могут быть, если обычный init то путаницы не будет, ссыль в тему

#304001

"Lupo Alberto" написал:
Попробуйте, вроде бы эти символы допустимы
Да, с символом подчеркивания проблем не возникло. Благодарю за ответы!

"zenon" написал:
Да, только одно но, видимо при параллельной загрузке косяки все же могут быть
В тонкости не вдавался, но сталкивался с тем, что изредка после перезагрузки сервера/перезапуска networking порядок именования интерфейсов менялся. Ссыль гляну, спасибо.
Войдите или зарегистрируйтесь, чтобы ответить.