[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Сетевуха работает только в promisc режиме



21.05.2012 17:07, Ilya Yanok пишет:
> On 21.05.2012 15:08, "Артём Н." wrote:
>>>  Кстати, мы всё рассуждаем про eth1, а что с eth0? Существует ли он,
>>>  подключен ли к сети, если да, то не к той же случайно?
>> Кстати, хотел вас об этом спросить. :-)
>> Ядро самосборное (изначально с oldconfig). Всё, что не нужно выкинуто. Всё, в
>> чём сомневался, - оставил модулем.
>> Как я понял, есть PHY и M-II подсистемы.
> 
> Нет.
> Подсистема PHY одна. Почти все (а может и вообще все) современные
> Эзернеты состоят из двух чипов: MAC и PHY, связанных между собой шиной
> MDIO (конфигурация и служебная информация) и (каким-нибудь вариантов)
> MII (данные). При этом чипы вовсе не должны быть одного производителя.

>> Изначально (при установке на дистр. ядре) был eth0.
>> После какого-то из изменений стал eth1.
> 
> Это, скорее всего, значит, что у карточки поменялся MAC. Повод задуматься.
Задуматься о чём? Вероятно проблемы с EEPROM? Или ещё есть причины?
Почему он мог поменяться?
У меня были следующие "события":
1. Я неудачно перепрошил BIOS, используя flashrom (не почитал ман и вывод
flashrom -l). Микросхему пришлось нести на программатор.
2. Был dist-upgrade на testing (обновлённый в stable драйвер для видюхи у меня
не компилился на обновлённом ведре).

>> Я вкомпилил два драйвера (на всякий случай):
>> 1. "Drivers for Realtek PHYs". (Supports the Realtek 821x PHY.)
> 
> PHY у Вас может быть совершенно другого производителя.
> 
>> 2. "Realtek 8169 gigabit ethernet support" (CONFIG_R8169) (Realtek 8169 PCI
>> Gigabit Ethernet adapter).
>>
>> Очевидно, что PHY не работает. И я его сейчас убрал вообще.
> 
> Очевидно как раз обратное. При неработающем PHY у Вас не прошла бы
> негоциация, да и вообще карта не смогла бы ничего не отправить, не
> получить. Другое дело, что, возможно, работает оно вовсе не
> реалтековским драйвером, а с generic.
Хм... Т.е. драйвер для адаптера "разделяется" на два: для PHY (в моём случае -
это generic, поскольку "PHY Device support and infrastructure" выключен в ядре)
и драйвер для шины M-II (это драйвер r8169, он у меня вкомпилирован в ядро)?

>> Но вопрос: почему две подсистемы и в чём отличия (я мало знаю по адаптерам)?
>> И почему остался eth1?
> 
> Как я уже написал: это уж точно не из-за драйвера PHY. Драйвер PHY -- не
> есть драйвер сетевой карты, он не может появиться, как интерфейс. Скорее
> всего, интерфейс Вам переименовывает udev. Насколько мне известно, это
> может быть только при смене MAC адреса. Это факт No1.
> Факт No2: где-то в Ваших логах был кусок вида
> DHCPREQUEST
> DHCPNACK
> то есть
>  а. Обмен пакетами прошёл успешно.
>  б. Сервер отказался выдать адрес, который хост запомнил с прошлого
> раза, т.е. скорее всего, сервер считает, что этот адрес отдан другому MAC'у.
> Факт No3: Promisc помогает.
> Факт No4: Как Вы сами пишете, точно так же может не работать и ifupdown,
> а после перезагрузки снова работать.
> 
> Всё это заставляет меня думать, что неправильно идентифицировали
> источник проблемы, как nm
Это действительно не nm (я выключил nm и networking и попробовал запустить
networking на загруженной системе):
"root@dana:~# ping 192.168.1.1
connect: Network is unreachable
root@dana:~# chmod +x /etc/init.d/networking
root@dana:~# service networking start
[....] Configuring network interfaces...Internet Systems Consortium DHCP Client
4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/aa:00:04:00:0a:04
Sending on   LPF/eth0/aa:00:04:00:0a:04
Sending on   Socket/fallback
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
^C
^CDHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 10
^CDHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
Terminated
Failed to bring up eth0.

root@dana:~# ifconfig -a
eth0      Link encap:Ethernet  HWaddr aa:00:04:00:0a:04
          inet6 addr: fe80::a800:4ff:fe00:a04/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:88 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5280 (5.1 KiB)  TX bytes:3170 (3.0 KiB)
          Interrupt:45 Base address:0x8000

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:46 errors:0 dropped:0 overruns:0 frame:0
          TX packets:46 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2699 (2.6 KiB)  TX bytes:2699 (2.6 KiB)

vmnet0    Link encap:Ethernet  HWaddr 00:50:56:c0:00:00
          inet addr:192.168.62.1  Bcast:192.168.62.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fec0:0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@dana:~# ping 192.168.1.1
connect: Network is unreachable
root@dana:~# ifconfig eth0 promisc
root@dana:~# service networking start
[....] Configuring network interfaces...Internet Systems Consortium DHCP Client
4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/aa:00:04:00:0a:04
Sending on   LPF/eth0/aa:00:04:00:0a:04
Sending on   Socket/fallback
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
Reloading /etc/samba/smb.conf: smbd only.
bound to 192.168.1.3 -- renewal in 39277 seconds.
Starting Samba daemons: nmbd smbd.
ifup: interface eth0 already configured
done.
root@dana:~# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_req=1 ttl=64 time=1.01 ms
64 bytes from 192.168.1.1: icmp_req=2 ttl=64 time=0.956 ms
^C
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.956/0.987/1.019/0.044 ms
root@dana:~# ifconfig eth0 -promisc
root@dana:~# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
^C
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2007ms

root@dana:~# ifconfig eth0 promisc
root@dana:~# ll /etc/init.d/network-manager
-rw-r--r-- 1 root root 1,8K Мар 11  2011 /etc/init.d/network-manager
root@dana:~# chmod +x /etc/init.d/network-manager
root@dana:~# service network-manager start
[ ok ] Starting network connection manager: NetworkManager."

> а реально у вас глючит карточка (возможно,
> "плавает" MAC адрес в EEPROM'е). Попробуйте задавать MAC руками.
Но MAC не меняется... И ARP таблице модема такой же MAC, как показывает ifconfig.
К тому же, ifup при загрузке поднимает интерфейс, а nm - нет. Почему?

В чём разница между запуском networking во время загрузки и после?
Могут ли "фенечки" (типа snort и подобного) менять MAC? o.O


Reply to: