среда, 3 сентября 2008 г.

Как отключить автоопределение типа сетевого подключения в Ubuntu

Например из-за плохого сетевого кабеля, который весьма затруднительно быстро поменять, после автоопределения типа подключения не удается добиться стабильной работы с сетью. В таких случаях обычно помогает принудительное указание типа.

  1. Узнаем подробности про сетевой интерфейс etho
    $ sudo ethtool eth0
    Settings for eth0:
    Supported ports: [ TP MII ]
    Supported link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    Supports auto-negotiation: Yes
    Advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    Advertised auto-negotiation: Yes
    Speed: 100Mb/s
    Duplex: Half
    Port: MII
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: on
    Supports Wake-on: pumbg
    Wake-on: d
    Current message level: 0x00000001 (1)
    Link detected: yes
  2. Теперь меняем скорость, дуплекс и автоопределение
    $ sudo ethtool -s eth0 speed 10 duplex full autoneg off
  3. Смотрим еще раз состояние eth0
    $ sudo ethtool eth0
    Settings for eth0:
    Supported ports: [ TP MII ]
    Supported link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    Supports auto-negotiation: Yes
    Advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    Advertised auto-negotiation: Yes
    Speed: 10Mb/s
    Duplex: Full
    Port: MII
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: off
    Supports Wake-on: pumbg
    Wake-on: d
    Current message level: 0x00000001 (1)
    Link detected: yes
  4. Если все устраивает редактируем файл конфигурации «/etc/network/interfaces»
    auto eth0
    iface eth0 inet static
    address 192.168.0.7
    netmask 255.255.255.0
    gateway 192.168.0.1
    up /usr/sbin/ethtool -s $IFACE speed 10 duplex full autoneg off
    В случае, если адрес берется по dhcp
    auto eth0
    iface eth0 inet dhcp
    up /usr/sbin/ethtool -s $IFACE speed 10 duplex full autoneg off
  5. Когда на машине используется Xen, сетевые интерфейсы «ethX» становятся виртуальными. Сами физические интерфейсы обозначаются как «pethX».
    Действия, описанные в пунктах 1-3, выполняем с интерфейсом peth0.

    В «/etc/network/interfaces» добавляем
    auto peth0
    iface peth0 inet manual
    up ifconfig $IFACE up
    up /usr/sbin/ethtool -s $IFACE speed 10 duplex full autoneg off

6 комментариев:

Fd комментирует...

mii-tool

мне кажется несколько проще :)

Князь комментирует...

Не вижу разницы

f_andrey комментирует...

Чего это на бубунту подсел что ли?

Князь комментирует...

Был очень нужен xen :)

f_andrey комментирует...

Так на NetBSD же есть, правда пробовал поднимать только Dom0 но работало :)

Князь комментирует...

Мне очень не нравится MAKEDEV :)