Я пытаюсь настроить 2 IP-адреса на интерфейсе enp0s25. Я использую 3 прямо сейчас для устранения неполадок.

Вот мои настройки это содержимое /etc/network/interfaces.d/enp0s25

auto enp0s25
auto enp0s25:0
auto enp0s25:1

iface enp0s25 inet static
      address 192.168.1.95
      netmask 255.255.255.0
      gateway 192.168.1.1
      dns-nameservers 8.8.8.8 8.8.4.4

iface enp0s25:0 inet static
      address 192.168.1.96
      netmask 255.255.255.0
      gateway 192.168.1.1
      dns-nameservers 8.8.8.8 8.8.4.4

# This is the actual second ipaddress that I want
iface enp0s25:1 inet static
      address 172.16.28.250
      netmask 255.255.255.0
      gateway 172.16.28.1
      dns-nameservers 8.8.8.8 8.8.4.4

Это содержимое /etc /interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s25
# iface enp0s25 inet dhcp

Когда я делаю sudo service network restart сбой, поэтому я делаю sudo service network status и получаю

● networking.service - Raise network interfaces
   Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2019-02-25 15:15:37 EST; 3min 8s ago
     Docs: man:interfaces(5)
  Process: 481 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
  Process: 477 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --lis
 Main PID: 481 (code=exited, status=1/FAILURE)

Feb 25 15:15:37 trmi-ral-server systemd[1]: Starting Raise network interfaces...
Feb 25 15:15:37 trmi-ral-server ifup[481]: RTNETLINK answers: File exists
Feb 25 15:15:37 trmi-ral-server ifup[481]: ifup: failed to bring up enp0s25:0
Feb 25 15:15:37 trmi-ral-server ifup[481]: RTNETLINK answers: File exists
Feb 25 15:15:37 trmi-ral-server ifup[481]: ifup: failed to bring up enp0s25:1
Feb 25 15:15:37 trmi-ral-server systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Feb 25 15:15:37 trmi-ral-server systemd[1]: Failed to start Raise network interfaces.
Feb 25 15:15:37 trmi-ral-server systemd[1]: networking.service: Unit entered failed state.
Feb 25 15:15:37 trmi-ral-server systemd[1]: networking.service: Failed with result 'exit-code'.

но если я перезапущу, то они работают.

ip address показывает им все назначенные.

Я могу пропинговать их с другого компьютера в обеих сетях (поменяв местами кабель Ethernet)

Но service networking status прежнему показывает, что это не удалось.

Как я могу иметь networking не работает, но на самом деле иметь сетевое подключение?

1 ответ1

1

состояние службы сети по-прежнему показывает, что это не удалось.

Программа не сообщает вам, но сообщение об ошибке не имеет ничего общего с вашими адресами ; на самом деле это происходит сбой, потому что вы сказали ему настроить один и тот же маршрут дважды.

Да, вы можете иметь два маршрута для одной и той же сети, если они проходят через разные интерфейсы. Но у вас на самом деле нет разных интерфейсов; все, что у вас есть, это 3 записи для одного и того же интерфейса "enp0s25". Нет такой вещи как "псевдоним интерфейсы".

Таким образом, ваш файл конфигурации преобразуется в следующие команды:

ip addr add 192.168.1.95/24 dev enp0s25
ip route add 0.0.0.0/0 via 192.168.1.1 dev enp0s25

ip addr add 192.168.1.96/24 dev enp0s25
ip route add 0.0.0.0/0 via 192.168.1.1 dev enp0s25

ip addr add 172.16.28.250/24 dev enp0s25
ip route add 0.0.0.0/0 via 172.16.28.1 dev enp0s25

Обратите внимание, что в конфигурации запрашивается маршрут для 0.0.0.0/0 ... dev enp0s25 дважды. Первая попытка завершается успешно и дает вам возможность подключения, вторая попытка дает сбой и приводит к сбою, если upupdown (network.service), третья попытка сделает то же самое.

Чтобы избежать этого, удалите все gateway... линии, кроме одной.

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

Файл, обновленный для синтаксиса Debian 9, будет выглядеть так:

auto enp0s25

iface enp0s25 inet static
      address 192.168.1.95/24
      gateway 192.168.1.1
      dns-nameservers 8.8.8.8 8.8.4.4

iface enp0s25 inet static
      address 192.168.1.96/24

iface enp0s25 inet static
      address 172.16.28.250/24

Как я могу иметь сеть не работает, но на самом деле иметь сетевое подключение?

Это никогда не "работает" в первую очередь. Это просто скрипт, который настраивает IP-адреса и выходы, и это все, что он делает. Сеть полностью обрабатывается самим ядром Linux.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .