Использование ip addr вместо отчетов ifconfig «ответы RTNETLINK: файл существует» в Debian

53

У меня есть система Debian, работающая как беспроводной маршрутизатор с eth0и wlan0. Теперь я добавил дополнительную сеть вручную eth1с помощью ifconfig:

alix: ~ # ifconfig eth1 192.168.0.2 маска сети 255.255.255.0
alix: ~ # netstat -rn
Таблица маршрутизации IP ядра
Шлюз назначения Genmask Flags Окно MSS irtt Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
alix: ~ # ping 192.168.0.254
PING 192.168.0.254 (192.168.0.254) 56 (84) байт данных.
64 байта из 192.168.0.254: icmp_req = 1 ttl = 64 времени = 0,537 мс
64 байта из 192.168.0.254: icmp_req = 2 ttl = 64 времени = 0,199 мс
64 байта из 192.168.0.254: icmp_req = 3 ttl = 64 времени = 0,188 мс
^ C
--- 192.168.0.254 пинг статистика ---
3 переданных пакета, 3 полученных, потеря пакета 0%, время 2005 мс
rtt мин / ср / макс / мдев = 0,188 / 0,308 / 0,537 / 0,161 мс

Все работает отлично, как вы можете видеть.

Теперь я хотел бы сделать настройку постоянной. Для этого я добавил следующий раздел /etc/network/interfaces:

alix: ~ # sed -n '/ iface eth1 /, / ^ $ / p' / etc / network / interfaces
iface eth1 inet static
  адрес 192.168.0.2
  маска сети 255.255.255.0

Но когда я пытаюсь запустить сеть, я получаю следующую ошибку:

alix: ~ # ifconfig eth1 down
alix: ~ # ifup -v eth1
Настройка интерфейса eth1 = eth1 (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts: выполнение /etc/network/if-pre-up.d/hostapd
ip addr add 192.168.0.2/255.255.255.0 широковещательный 192.168.0.255 dev eth1 метка eth1
RTNETLINK отвечает: файл существует
Не удалось вызвать eth1.

Когда я запускаю ipкоманду вручную, я получаю ту же ошибку:

alix: ~ # ip addr add 192.168.0.2/255.255.255.0 широковещательный 192.168.0.255 dev eth1 метка eth1
RTNETLINK отвечает: файл существует

Что не так с командой? И как я могу сказать, что Debian поступает правильно?

ceving
источник

Ответы:

83

Извините, но я получил это сам. Мне пришлось промыть устройство, прежде чем поднять его:

alix: ~ # ip addr flush dev eth1

Очистка вручную настроенной информации о конфигурации интерфейса, подобной этой, упоминается в Руководстве по Ubuntu Server .

ceving
источник
Я все еще получаю (немного отличную) ошибку, RTNETLINK answers: No such process Failed to bring up eth1НО мой Eth1 теперь правильно назначен И является UP / UP.
Harperville
да, та же проблема здесь: RTNETLINK answers: No such process Failed to bring up eth1
Дрю
7
Даже если ваши ответы решают проблему. Было бы здорово, если бы вы могли сказать, что он на самом деле делает. Что это за файл RTNETLINK, который существует?
человечествоANDpeace
@ceving: пожалуйста, вы можете объяснить, что это такое RTNETLINK answers file? Кроме того, после очистки моя сетевая карта не принимает новый ip автоматически, как спросить dhcp новый ip?
Realtebo
@realtebo @humanityANDpeace Просмотрите руководство по ядру о netlink и rtnetlink . Но я сомневаюсь, что вы действительно хотите знать. Это сообщение об ошибке, которое ipинструмент получает из ядра. И вместо того, чтобы перевести сообщение во что-то полезное для конечных пользователей, ipоно просто проходит. Но если вы действительно хотите знать внутренности, используйте Ask Questionвместо Add Commentкнопки.
выступление
-1

У меня была похожая проблема, что к тому времени, когда я сыграл сцену с 10 000 монетами, именно это и было, и я пытался добавить недостающий материал в / e / n / id / etho

Но, изучая справочную страницу по интерфейсам, я заметил, что ВСЕ из набора примеров содержали только 2 строки реальных данных, адрес ipv4 / 24 и строку шлюза, указывающую адрес моего маршрутизатора. Таким образом, я сократил свой файл eth0 до этого, перезагрузил и работал отлично.

Ген
источник