как привязать сетевушку к нужному eth?
kiev1 21 июня, 2006 - 10:43
подскажите пожалуйста если в системе несколько сетевушек одинаковых - то как их жестко привязать к нужному номеру eth?
спасибо
»
- Для комментирования войдите или зарегистрируйтесь
По почему бы
По почему бы скрипты не привязать к нужным номерам eth?
Одинаковых
Одинаковых сетевушек не бывает. Все сетевушки различаются по мак адресу.
в /etc/conf.d/net.example написано как использовать мак
#mac_config_001122334455=( "dhcp" )
#mac_dhcpcd_001122334455="-t 10"
#mac_dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )
ЗЫ
1) Файлы инициализации сильно зависят от версии баслэйаут.У меня
baselayout-1.12.0
Полагаю надо
Полагаю надо копать в сторону передачи параметров ядру в загрузчике - по крайней мере с ISA так делал. Хотя может быть действительно проще переткнуть кабели или поменять названия интерфейсов в конфигах
Как вариант,
Как вариант, если сетевухи стоят разные и соответственно юзают разные модули, можно играться порядком загрузки этих модулей в /etc/modules.autoload.d/kernel-2.6.
# INTERFACE RENAMING # There
# INTERFACE RENAMING
# There is no consistent device renaming scheme for Linux.
# The preferred way of naming devices is via the kernel module directly or
# by using udev (http://www.reactivated.net/udevrules.php)
# If you are unable to write udev rules, then we do provide a way of renaming
# the interface based on it's MAC address, but it is not optimal.
# Here is how to rename an interface whose MAC address is 00:11:22:33:44:55
# to foo1
#rename_001122334455="foo1"
# You can also do this based on current device name - although this is not
# recommended. Here we rename eth1 to foo2.
#rename_eth1="foo2"
baselayout 1.12.0-r1
Трудно в net.example заглянуть?
Не умничай,
Не умничай, такой финт доступен начиная только с baselayout-1.12.x.
Раньше подобное нужно было делать через udev, но ведь теперь "there's more than one way to do it"
_________________
Прежде чем задать вопрос, подумай, а не додумались до него раньше?
From Siberia with Love!
Ребята
Ребята проблема не решена драйвера в монолитном ядре подскажите как поменять названия сетевух
с дровми в качестве модулей через удев все прекрасно а как быть с монолитным ядром
Вопервых ядро
Вопервых ядро линукса всегда монолитно. Ненадо путать модульность и микроядра.
Во вторых смотри выше, написан же вариант как основываясь на mac адресе переименовать.
PS: знаки препинания нужно использовать!
Может я чего и
Может я чего и не понимаю. Вы уж тогда объясните что к чему чтобы уже понял раз и навсегда. Я собираю ядро без поддержки модулей. В связи с этим способ через udev не работает. или в последних ядрах и удев есть такая возможность. хотя
# INTERFACE RENAMING
# There is no consistent device renaming scheme for Linux.
# The preferred way of naming devices is via the kernel module directly or
# by using udev (http://www.reactivated.net/udevrules.php)
тут четко написано что через udev для модулей.
и если честно достают отмазки типа смотри ртфм мануал и так далее не хочешь отвечать не отвечай вообще. а если взялса за дело ответь до конца. может я и просматривал эти документы а что то упустил или с первого раза в голове не осело.
чесно говоря
чесно говоря даже промт эту фразу почти нормально перевёл
Какие отмазки?
Какие отмазки? Все уже было написано. Про udev тебе уже ответили, нехочешь udev, можно было парой строчек ниже почитать:
# If you are unable to write udev rules, then we do provide a way of renaming
# the interface based on it's MAC address, but it is not optimal.
# Here is how to rename an interface whose MAC address is 00:11:22:33:44:55
# to foo1
#rename_001122334455="foo1"
При
При использовании udev создать фалй /etc/usdev/10-udev.rules с, примерно, таким содержанием
KERNEL=="eth*", SYSFS{address}=="00:60:98:ef:f0:bd", NAME="stream0" ACTION=="add", SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
KERNEL=="eth*", SYSFS{address}=="00:14:2a:6b:d1:87", NAME="starlink0", ACTION=="add", SUBSYSTEM=="net", WAIT_FOR_SYSFS="address"
где SYSFS{address}= - MAC-адрес сетевой карты, NAME= произвольное имя сетевого интерфейса.
Такой вариант работает у меня при Gentoo 2006.1, baselayout-1.12.9, udev-104-r1
Достаточно
Достаточно лишь
KERNEL=="eth*", SYSFS{address}=="00:60:98:ef:f0:bd", NAME="stream0"
я вообще хотел
я вообще хотел через прерывания привязать, на другой машине ядро модульное там все ништяк а вот попробовал на этой машине сразу не завелось
сработало только после такой строчки и разместил я ее в стандартном правиле 50 и т.д.
KERNEL=="eth2", SYSFS{irq}=="12", NAME="eth0"
gentoo 2005.1 правда незнаю версию пакетов но думаю надо будет сейчас обновится и попробовать еще раз
вернее вот
вернее вот такая строчка почему заработало сам не пойму
KERNEL=="eth0", SYSFS{irq}=="12", NAME="eth0"
Велосипедисты
Велосипедисты блин... Есть утилита для этого nameif, подробнее читайте тут:
http://www.opennet.ru/tips/info/1335.shtml
у меня так:
у меня так:
cat /etc/udev/rules.d/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.
# PCI device 0x10b7:0x9200 (3c59x)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:04:75:e2:e8:64", NAME="eth0"
# PCI device 0x10b7:0x9050 (3c59x)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:10:4b:ac:ce:42", NAME="eth1"
# PCI device 0x1106:0x3065 (via-rhine)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:04:61:50:74:73", NAME="eth3"