LinuxForum.Fans
Тема

Как привязать eth0 к конкретной сетевой?

Автор: XliN 26 сообщений 15919 просмотров
#60354

Прив. Инет у меня подрубается с помощью wpa_supplicant+dchpcd. Пользуюсь вот этой инструкцией http://chehov.multinex.ru/uslugi/linux Все как бы работает, но если комп перезапустить, то dhcp не срабатывает. Приходиться открывать консоль и самому писать dhcpcd -d eth1. Это ни есть гуд (( Как решить это?

У меня две сетевых карты, на одной статика, а на инете dhcp

#60368
"PoZiTPoH" написал:
Вы сами ответили на свой вопрос.
HINT: /etc/rc.local

Это не помогает.... Я сразу туда записал строчку с wpa-supplicant

#60939

Проблема решилась. Весь касяк был в том, что для нужной сетевухи выдавалось имя по разному. Могло быть eth0 а после перезапуска eth1. Пришлось силами udev привязать название интерфейса жестко.

Создать файл /etc/udev/10-udev.rules и добавить две строчки (т.к. у меня 2 сетевухи)

text
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:04:75:e2:e8:64", NAME="eth0"
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:03:ad:45:26:78", NAME="eth1"

Потом отрубил в /etc/rc.conf карточку eth1 (эта та которая должна получить IP по DHCP)

В /etc/rc.local добавил

text
wpa_supplicant -Dwired -c /etc/wpa_supplicant.conf -i eth1 -B
sleep 3
dhcpcd -d eth1
exit 0 

Ну и все прописал в файле /etc/wpa_supplicant.conf

text
ap_scan=0 
network={ 
key_mgmt=IEEE8021X 
eap=MD5 
identity="ЛОГИН" 
password="ПАРОЛЬ" 
}

В итоге имею поднятое инетовское соединение.

#61147

ААААА!!! Не работает это все!! Просто совпало а я губу развесил.. Вопрос остается открытым. Как привязать сетевой определенный номер?

#61151

Как привязать сетевой определенный номер? У меня две сетевухи, так вот надо что бы первая всегда получала eth0, а вторая eth1. Нужно это для поднятия wpa_supplicant + dhcpcd. Скрипт в /etc/rc.local привязан к сетевой с номером eth1. После перезапуска имя может смениться и скрипт не срабатывает.

В /etc/rc.local

text
wpa_supplicant -Dwired -c /etc/wpa_supplicant.conf -i eth1 -B
sleep 3
dhcpcd -d eth1
exit 0

У меня archlinux. В /etc/rc.conf прописано что eth0 статика, а eth1 получает по dhcp, но при запуске демон network выдает FAIL.

Пробовал средствами udev путем добавления двух строк в файл (ничего не правил, тупо вставил где понравилось) и ноль эффекта.

text
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:04:75:e2:e8:64", NAME="eth0"
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:03:ad:45:26:78", NAME="eth1"
#61175
xlin написал:
После перезапуска имя может смениться и скрипт не срабатывает.

Уверен, что проблема именно в этом?

#61186
mycetophylax написал:
Уверен, что проблема именно в этом?

Да... ifconfig это показывает. eth0 может быть и первая и вторая карточка, это видно по MAC.

Как это лучше сделать, может я велосипед изобретаю?

#61188

xlin, даблпостинг запрещен, темы объедены.

#61217
Shlomo написал:
xlin, даблпостинг запрещен, темы объедены.

Сорри. Просто меня задолбала эта канитель ((

#61251

А драйвера на сетевые карты у тебя в ядре или модулями?
Интерфейсы назначаются ядром. И если у тебя на самом деле разные интерфейсы назначаются разным устройствам, то получается, что после каждой перезагрузки порядок определения сетевых карт ядром произвольный (один раз сетевуху1 нашла первой, в другой раз почему-то сначала обнаружилась сетевуха2). А это вообще возможно?

#61257
mycetophylax написал:
один раз сетевуху1 нашла первой, в другой раз почему-то сначала обнаружилась сетевуха2). А это вообще возможно?

Если действие грибов еще не кончилось то возможно. Сначала не понял в чем касяк, но проанализировал и понял что сетевухи могут определяться по разному. Их как то надо привязать. Каждую к конкретному интерфейсу.

Как проверить в ядре или модулем? Я дрова не ставил, тогда скорее всего все в ядре.

#61274
xlin написал:
Приходится открывать консоль и самому писать dhcpcd -d eth1...

Но ведь если после этого все работает, то нифига интерфейсы не меняются местами, иначе пришлось бы писать dhcpcd -d eth0. Или я чего-то не понимаю? wink .

#61280
xlin написал:

Как проверить в ядре или модулем? Я дрова не ставил, тогда скорее всего все в ядре.

Покажи вывод lspci -k.

#61286

Мой /etc/udev/rules.d/70-persistent-net.rules

text

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1f:d0:8e:7b:af", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10ec:0x8139 (8139too) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:e0:4c:d0:25:fb", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

#61297
mycetophylax написал:
Покажи вывод lspci -k.

Сейчас не могу показать вывод, комп занят. Чуть позже.

mycetophylax написал:
Но ведь если после этого все работает,  то нифига интерфейсы не меняются местами, иначе пришлось бы писать dhcpcd -d eth0. Или я чего-то не понимаю?

Совершенно верно.... приходиться писать вместо eth1 - eth0

А в твоем etc/udev/rules.d/70-persistent-net.rules, больше ничего нет? Кроме этих двух строчек? В моем, если не изменяет память кучу всего написано.

#61306
xlin написал:

А в твоем etc/udev/rules.d/70-persistent-net.rules, больше ничего нет? Кроме этих двух строчек? В моем, если не изменяет память кучу всего написано.

Все. Остальное - только комментарии.

#61310

mycetophylax, А какой дистр? Не генту случаем?Просто именно такого файла у меня нет... Пробовал создавать свой, но толку ноль. Позже попробую сделать по твоему подобию.

#61315
xlin написал:
mycetophylax, А какой дистр? Не генту случаем?

Gentoo wink

xlin написал:

Просто именно такого файла у меня нет... Пробовал создавать свой, но толку ноль. Позже попробую сделать по твоему подобию.

Смотри значение RULES_FILE в файле /lib/udev/write_net_rules.

#61605
text
02:07.0 Ethernet controller: D-Link System Inc RTL8139 Ethernet (rev 10)
    Subsystem: D-Link System Inc DFE-538TX 10/100 Ethernet Adapter
    Kernel driver in use: 8139too
    Kernel modules: 8139too
02:08.0 Ethernet controller: Intel Corporation 82801DB PRO/100 VE (LOM) Ethernet Controller (rev 82)
    Subsystem: Fujitsu Technology Solutions Device 1001
    Kernel driver in use: e100
    Kernel modules: e100

Вот такое у меня выдает? Это значит в ядре?

В /lib/udev/write_net_rules вот такая строчка

text
RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules'

Такого файла нет в системе, попробую его создать и протестить.

Войдите или зарегистрируйтесь, чтобы ответить.