LinuxForum.Fans
Тема

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

Автор: XliN 26 сообщений 15918 просмотров
#61626
xlin написал:

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

Модулями.

xlin написал:

В /lib/udev/write_net_rules вот такая строчка
text
RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules'

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

Ага. Скопируй мой и подставь свои значения.

#61634

Отказался я от DHCP и прописал все руками. Так все работает, но опять же имя сетевухи постоянно меняется.... права не знаю что и делать... Есть мысли?

Мне нужно что бы
eth0 - 192.168.1.1 - локалка цеплялась по MAC 00:30:05:42:C:F2
eth1 - 10.28.135.128 - инет цеплялся по MAC 00:05:5D:34:1D:78

Локалка мне нужна для раздачи инета остальным членам семьи. Не хочется даже пока переходить к настройке IPTABLES.

Покажите пару строчек после переменной RULES_FILE

У меня есть кучу файлов 10-20-30 и т.д. в самой /lib/udev/rules.d/ Но они все с пометкой, типо не меняйте он все равно с генерируется заново

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

#62063

Вроде работает. Определяется правильно, но я пока не буду радоваться... проведу тест.

text
[xlin@saikov ~]$ dmesg | grep eth
8139too 0000:02:07.0: eth0: RealTek RTL8139 at 0xf0a72000, 00:05:5d:34:1d:78, IRQ 18
e100: eth1: e100_probe: addr 0xc2000000, irq 20, MAC addr 00:30:05:42:ac:f2

Я создал файл /etc/udev/rules.d/70-persistent-net.rules, который прописан в /lib/udev/write_net_rules в переменной

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

Вот с таким содержанием

text
SUBSYSTEM=="net", ATTR{address}=="00:05:5d:34:1d:78", NAME="eth0"
SUBSYSTEM=="net", ATTR{address}=="00:30:05:42:ac:f2", NAME="eth1"

А назначение статического IP и шлюза для двух сетевых карт, взял на себя файл /etc/rc.conf, а именно network демон.

text
[xlin@saikov ~]$ cat /etc/rc.conf
eth0="eth0 10.28.135.127 netmask 255.255.255.0 broadcast 10.28.135.255"
eth1="eth1 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255"
INTERFACES=(eth0 eth1)
gateway="default gw 10.28.135.254"
ROUTES=(gateway)
text
[xlin@saikov ~]$ ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:05:5D:34:1D:78  
          inet addr:10.28.135.127  Bcast:10.28.135.255  Mask:255.255.255.0
          inet6 addr: fe80::205:5dff:fe34:1d78/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1044 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1070 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:413070 (403.3 Kb)  TX bytes:247737 (241.9 Kb)
          Interrupt:18 Base address:0x2000 

eth1 Link encap:Ethernet HWaddr 00:30:05:42:AC:F2 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::230:5ff:fe42:acf2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:7 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:578 (578.0 b)

#62822

Самое главное... МАК адреса в конфигах пишите в нижнем регистре, а то не будет работать. Для Udev это критично.

#77620
text
cat /etc/udev/rules.d/50-network.rules 
KERNEL=="eth*", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"
KERNEL=="eth*", ATTR{address}=="cc:cc:cc:cc:cc:cc", NAME="eth1"

У меня безотказно работает при таком содержимом

#77880

можно подойти с другой стороны: сразу после поднятия интерфейса и ДО старта dhcpcd нужно пройтись sed'ом ifconfig, и вычислить интерфейс. Затем его подставить в вызов dhcpcd.
[console]
$ /sbin/ifconfig|sed -rn '/HWaddr 00:80:zz:zz:zz:zz/s/^(eth[0-9]).*$/\1/p'
eth1
[/console]

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