LINUX.ORG.RU

[[:||||:]] [ArchLinux] [руки из...] И опять я, на сей раз с проблемой eth0 <=> eth1

 


0

0

Сетевые интерфейсы меняются местами. В мандриве для этих целей у меня был скриптик для udev:

cat /etc/udev/rules.d/net.rules 
# Drakx-net rule for eth0 (00:23:54:7C:26:12)
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:23:54:7C:26:12", KERNEL=="eth*", NAME="eth0"

# Drakx-net rule for eth1 (00:10:22:FD:C5:0C)
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:10:22:FD:C5:0C", KERNEL=="eth*", NAME="eth1"

Его же запихнул в арч.

Но: если оба сетевых интерфейса активны в момент включения компьютера (на обоих концах что-то работает) - все ОК. Но как только к eth0, смотрящему «внутрь», никто не подключен, интерфейсы меняются местами:

eth0      Link encap:Ethernet  HWaddr 00:10:22:FD:C5:0C 
…
eth1      Link encap:Ethernet  HWaddr 00:23:54:7C:26:12 
…

В чем может быть проблема? Неужели даже такой скриптик к новому udev'у не подходит? (к сожалению, сетевые интерфейсы - не флешки, и я их при рабочем компьютере включать-выключать не могу, чтобы через udevadm проверить, что же там происходит)

☆☆☆☆☆

Да, арчевики читал. Второй вариант там вообще какой-то дурацкий (переименовывать интерфейсы на ходу).

Eddy_Em ☆☆☆☆☆
() автор топика

привязать мак-адреса к именам? Где-то я читал, что такой фокус можно проделать, как бы не в анонсе федоры.

S-Mage ★★
()

Может сделать как в вике. Убрать ACTION==«add» и KERNEL==«eth*»?

gman
()

Попробуй вместо eth0 и eth1 вписать что-нибудь типа lan0 и lan1, мне помогло

SUBSYSTEM==«net», ATTR{address}==«00:23:54:7C:26:12», NAME=«lan0»

SUBSYSTEM==«net», ATTR{address}==«00:10:22:FD:C5:0C», NAME=«lan1»

anonymous
()
Ответ на: комментарий от anonymous

Хм, попробую. Главное - не забыть все eth во всех настройках на lan позаменять.

Eddy_Em ☆☆☆☆☆
() автор топика

В общем, сделал, как анонимус советовал. Погуглил насчет ifrename - она вроде как устарела (хотя /etc/iftab все равно остался, но я и туда на всякий случай lan0 и lan1 по MAC записал).

Посмотрю завтра, что получится (хотя, не факт, что если «косяк» останется, то проявится сразу - у меня интерфейсы «скачут» раз в 2-3 дня).

Eddy_Em ☆☆☆☆☆
() автор топика

Ух и влетело же мне от жены: я на работе, сеть не включилась. ifconfig eth1 up не работает, ifconfig lan1 up не работает... Ну и выхвачу же, когда на обед приду :)

Eddy_Em ☆☆☆☆☆
() автор топика

Итак, в итоге у меня получилось вот что:

SUBSYSTEM=="net", ENV{ID_VENDOR_ID}=="0x10ec", NAME="eth0"
SUBSYSTEM=="net", ENV{ID_VENDOR_ID}=="0x10b7", NAME="eth1"

Пока, вроде, все в порядке. Поживем - увидим.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от x3al
pacman -Qo /sbin/ifconfig
/sbin/ifconfig принадлежит net-tools 1.60-18

Никуда не выкинули. И как без этой утилиты вообще можно жить?

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Ух ты, сделал pacman -Ql net-tools и обнаружил утилитку nameif, которая (по идее) переименовывает интерфейсы по их MAC-адресам.

Если будут косяки - воспользуюсь ею (впихну ее в rc.local).

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от anonymous

Это первое, что я ей сказал сделать. Был получен ответ: «no such device». А его и не могло быть (я потом в /sys/class/net посмотрел: там были только eth0 и eth1).

А не могло быть его из-за того, что параметр ATTR{address} udev не знает.

А узнал я об этом, только когда поэкспериментировал (udev test --action=add /class/net/ethX).

Вот поэтому-то интерфейсы lan0 и lan1 не появлялись.

Если будут «косяки», либо действительно переименую eth -> lan, либо же попробую nameif.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Тут пишут, что mac чувствителен к регистру. У меня mac задан в нижнем регистре и вместо ATTR{address} ATTRS{address}.

gman
()
Ответ на: комментарий от Eddy_Em

>И как без этой утилиты вообще можно жить?

man ip

madgnu ★★★★★
()

У меня тоже рандомно интерфейсы именовались, сделал так:

SUBSYSTEM=="net", ATTR{address}=="00:1d:60:7e:9e:11", NAME="lan0"
SUBSYSTEM=="net", ATTR{address}=="4c:00:10:53:37:a7", NAME="inet0"
Всё работает без сучка, без задоринки.

Axon ★★★★★
()
Ответ на: комментарий от Eddy_Em

Разве что если MAC надо было в нижнем регистре вводить...

// в общем, лишний раз убеждаюсь: некоторые уроды изо всех сил стремятся превратить линукс в говно!

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Как без ifconfig узнать, какие интерфейсы сейчас активны?

ip addr show (ip ad sh)

А утилита ip какая-то вантузячяя, что ли...

Она в разы мощнее, чем ifconfig, да и логичнее, IMHO.

Axon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.