Сетевой 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
Сейчас:
Введите следующую команду (и протестируйте их одну за другой)
sudo ethtool --change eth0 speed xxx duplex yyy autoneg off
где ххх =
10
,100
или же1000
и гггг =half
или жеfull
,Итак, начнем с
10 half
,10 full
,100 half
...Сделать
ifconfig
проверить, есть ли у вас IP-адрес.Вернитесь к 1, пока он не перестанет работать, и используйте предыдущие значения, которые все еще работали для:
Чтобы сделать изменение постоянным, выполните следующую команду:
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. Я не могу сказать вам, как редко.