Сетевой eth0 DHCP, статический ip и проблемы автосогласования

Фон

Я использую Ubuntu Server 14.04, который в настоящее время обновлен. У меня есть только одно сетевое устройство, подключенное к нему. Когда я использую шнур Ethernet и подключаю его от стены к ноутбуку (работает под управлением Windows 7), DHCP разрешается без проблем.

проблема

Когда я подключаю свой кабель Ethernet от стены к моему серверу (работает под управлением Ubuntu) и включаю мой сервер, DHCP-сервер не назначает моему серверу IP-адрес. Тем не менее, когда я подключаю шнур от моего сервера к ноутбуку, используя Ethernet ноутбуков, подключенный для подключения через мое соединение Wi-Fi, сервер получит IP-адрес от DHCP через ноутбук. Наконец, после получения IP-адреса от соединения с ноутбуком я использую следующие команды, а затем DHCP работает, когда шнур подключен от стены к серверу:

sudo dhclient -r
sudo dhclient -v eth0

В следующий раз я перезагружаю сервер через sudo shutdown -r now сервер не сможет снова получить IP-адрес от DHCP со шнуром от стены к серверу.

Обратите внимание, что когда я назначаю статический адрес в /etc/network/interfaces Если сеть не назначит ему IP-адрес, интерфейс будет недоступен.

Вопрос

Есть ли способ устранить проблему, с которой моя сеть не может обнаружить DHCP-сервер при включении сервера?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Дополнительная информация

Dhclient перед подключением к ноутбуку

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x********)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x********)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 6 (xid=0x********)
...
No DHCPOFFERS received
No working leases in persistent database - sleeping.

Dhclient с сервером, подключенным к ноутбуку

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x*********)
DHCPREQUEST of 192.168.137.233 on eth0 to 255.255.255.255 port 67 (xid=0x*********)
DHCPOFFER of 192.168.137.233 from 192.168.137.1
DHCPACK of 192.168.137.233 from 192.168.137.1
bound to 192.168.137.233 -- renewal in 275 seconds.

ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:22:64:23:7c:da  
          inet addr:192.168.137.233  Bcast:192.168.137.255  Mask:255.255.255.0
          inet6 addr: fe80::222:64ff:fe23:7cda/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28265 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2781 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4655957 (4.6 MB)  TX bytes:415144 (415.1 KB)

Dhclient после ноутбука DHCP и шнур переподключен от стены к серверу

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x********)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x********)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 15 (xid=0x********)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 11 (xid=0x********)
DHCPREQUEST of 192.168.1.126 on eth0 to 255.255.255.255 port 67 (xid=0x*******)
DHCPOFFER of 192.168.1.126 from 192.168.1.254
DHCPACK of 192.168.1.126 from 192.168.1.154
bound to 192.168.1.126 -- renewal in 41950 second.

ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:22:64:23:7c:da  
          inet addr:192.168.1.126  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::222:64ff:fe23:7cda/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:33438 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3391 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5245215 (5.2 MB)  TX bytes:550462 (550.4 KB)

сетевой интерфейс (lshw)

sudo lshw -class network

  *-network
       description: Ethernet interface
       product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: eth0
       version: 02
       serial: 00:22:64:23:7c:da
       size: 100Mbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full ip=192.168.1.82 latency=0 link=yes multicast=yes port=MII speed=100Mbit/s
       resources: irq:42 ioport:e800(size=256) memory:febff000-febfffff memory:fdff0000-fdffffff memory:febc0000-febdffff

Обновить:

мой /etc/network/interfaces файл как таковой

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Я нашел временное исправление, которое, кажется, работает, но я не хотел бы, чтобы это было моим решением, если мы можем решить эту проблему. Я изменил файл интерфейсов так

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
    pre-up ifconfig $IFACE up
    pre-up mii-tool -R

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

Решение:

С помощью ответа Фаббиса я смог найти более жизнеспособное решение, с которым я мог бы жить.

Откройте /etc/network/interfaces и настройте интерфейс Ethernet одним из следующих способов:

DHCP

auto eth0
iface eth0 inet dhcp
    pre-up ifconfig $IFACE up
    pre-up ethtool -s $IFACE speed 100 duplex full autoneg off

статический

auto eth0
iface eth0 inet static
    post-up ethtool -s $IFACE speed 100 duplex full autoneg off
    address x.x.x.x #Internal IP
    netmask 255.255.255.0
    gateway x.x.x.y #Gateway IP
    dns-nameservers 8.8.8.8 #Google DNS

Я надеюсь, что это поможет кому-то еще в будущем.

2 ответа

Решение

Согласно обсуждению в чате, отключите автосогласование на сервере и установите скорость сети на самом высоком уровне, который может выдержать плата сетевого интерфейса (NIC).

Начните с 10 Мбит / с, полудуплексного режима и работайте со скоростью до 10 Мбит / с FD, 100 Мбит / с HD, ... до тех пор, пока проблема не начнется. Затем спуститесь на одну ступеньку и оставьте ее на такой скорости.

Сначала установите ethtool (если он уже установлен, вы просто получите предупреждение о том, что последняя версия уже установлена)

sudo apt-get install ethtool

Сейчас:

  1. Введите следующую команду (и протестируйте их одну за другой)

    sudo ethtool --change eth0 speed xxx duplex yyy autoneg off
    

    где ххх = 10, 100 или же 1000 и гггг = half или же full,

    Итак, начнем с 10 half, 10 full, 100 half...

  2. Сделать ifconfig проверить, есть ли у вас IP-адрес.

  3. Вернитесь к 1, пока он не перестанет работать, и используйте предыдущие значения, которые все еще работали для:

  4. Чтобы сделать изменение постоянным, выполните следующую команду:

    sudo nano /etc/network/interfaces
    

    и введите на pre-up раздел:

    pre-up /usr/sbin/ethtool --change eth0 speed xxx duplex yyy autoneg off 
    

О, ЧЕЛОВЕК, ЛИЦО (лицо мне, как я изначально думал об этой секунде, а не о том, что мне нужно, это почти всегда самые простые вещи, которые могут заставить вас идти в кругу с технологиями, а?)

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

Если вы используете тот же провод для подключения вашего сервера к ноутбуку, как вы используете сервер к стене, это, вероятно, проблема!! (опять же, это больше для меня, потому что я пропустил это первое и только подумал об этом вторым. Я не хотел встречать резкое, если это так звучит)

Здесь вы используете 2 разных типа проводов...

Ссылка: https://www.computercablestore.com/straight-through-crossover-and-rollover-wiring

Первый - это прямой Ethernet-кабель, используемый для коммутаторов и маршрутизаторов на клиентских компьютерах.

Во-вторых, это перекрестный кабель: они используются для межмашинных подключений и имеют физическую разводку!

Таким образом, если эти кабели работают между вашим сервером и ноутбуком без коммутатора или маршрутизатора между 2 (соединение Wi-Fi здесь вообще не учитывается), этот кабель должен быть перекрестным.

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

По моему опыту, проблемы с компьютером сводятся к самым простым из перегруженных задач. Некоторые маршрутизаторы и коммутаторы являются "умными" и могут попытаться выполнить внутренние настройки, когда вы используете неправильный кабель (кроссовер), чтобы вы все равно могли использовать его для подключения к машине, но на это никогда нельзя положиться, и, скорее всего, это будет вопрос.

На самом деле это звучит как проблема с роутером. У меня, например, есть FiOS, и в роутере я могу пойти и посмотреть настройки сети и посмотреть, где он соединяет сегменты WiFi и Wired отдельно с DHCP-сервером, поэтому, если что-то случится с этим параметром, я могу получить то, что у вас есть. здесь вы больше не можете получить IP через провод, потому что он не подключен к "домашней" сети, на которой запущен DHCP-сервер, но вы можете через WiFi, так как он все еще подключен к "домашней" сети в маршрутизаторе. Вы можете либо попытаться просмотреть расширенные настройки своего маршрутизатора, либо чаще, если у вас есть скрепка и есть кнопка с контактом сброса, вы можете посмотреть, как восстановить заводские настройки (обычно удерживайте скрепку в кнопке сброса около 30 секунд.).

Кроме того, ваш ноутбук получает IP-адрес только через WiFi. Если у вас есть машина, и у нее есть и проводной и Wi-Fi адаптер, и у вас есть Wi-Fi, подключенный и подключите провод, даже если это не сработает, ваша машина все еще будет работать в Интернете нормально, и что не является причиной, она направляет все запросы через WiFi и игнорирует проводной порт в целом.

Ваше "исправление" работает, потому что вы запрашиваете IP через адаптер ноутбука Wi-Fi в конце.

Из прочтения здесь я также заметил, что это может быть функция безопасности MAC, которую вы включили на маршрутизаторе... Это означает, что, если MAC-адрес вашей сетевой карты не входит в список разрешенных клиентов, ваш маршрутизатор откажется дать ему адрес. Вы можете "исправить это, сначала пройдя по ноутбуку, который находится в списке, и когда вы получите адрес таким образом, когда вы подключаетесь обратно к стене и бросаете другой запрос, он может пропустить проверку MAC, так как видит, что он уже дал вам адрес и, по крайней мере, временно думает, что ваш сервер является доверенным клиентом. Я также проверил бы любую безопасность MAC, которую вы включили в маршрутизаторе.

Я не говорю, что у DHCP-сервера вашего маршрутизатора не может быть какой-то странной проблемы, но это будет SOO SUPER RARE. Я не могу сказать вам, как редко.

Другие вопросы по тегам