Почему я могу подключиться к IP-интерфейсу сетевого интерфейса (на сервере с несколькими сетевыми интерфейсами) при удалении сетевого кабеля?

У меня есть сервер с несколькими (четырьмя) сетевыми интерфейсами, работающими с Arch Linux, когда я столкнулся с чем-то странным, что я не могу объяснить.

У меня два интерфейса, настроенные на IP-адреса 192.168.100.11/24 и 192.168.100.12/24 (с использованием двух профилей netctl).

Оба интерфейса подключены к коммутатору, который также подключается к моему компьютеру.

Когда я включаю профили, интерфейс выглядит нормально.

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

Вывод ip addr показывает, что интерфейс не имеет несущей и не работает, но все еще имеет свой IP-адрес:

 2: enp7s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether 00:1e:67:a3:7f:b6 brd ff:ff:ff:ff:ff:ff inet 192.168.100.11/24 brd 192.168.100.255 scope global enp7s0f0 valid_lft forever preferred_lft forever inet6 fd00::21e:67ff:fea3:7fb6/64 scope global mngtmpaddr dynamic valid_lft 6836sec preferred_lft 3236sec inet6 fe80::21e:67ff:fea3:7fb6/64 scope link valid_lft forever preferred_lft forever 3: enp7s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:1e:67:a3:7f:b7 brd ff:ff:ff:ff:ff:ff inet 192.168.100.12/24 brd 192.168.100.255 scope global enp7s0f1 valid_lft forever preferred_lft forever inet6 fd00::21e:67ff:fea3:7fb7/64 scope global mngtmpaddr dynamic valid_lft 6836sec preferred_lft 3236sec inet6 fe80::21e:67ff:fea3:7fb7/64 scope link valid_lft forever preferred_lft forever 

Когда я делаю netctl status main чтобы проверить статус, профиль все еще активен:

 # netctl status main ● netctl@main.service - Main interface Loaded: loaded (/etc/systemd/system/netctl@main.service; enabled; vendor preset: disabled) Active: active (exited) since Thu 2015-01-08 11:29:07 UTC; 25min ago Docs: man:netctl.profile(5) Main PID: 55293 (code=exited, status=0/SUCCESS) Jan 08 11:29:03 timingserver1 network[55293]: Starting network profile 'main'... Jan 08 11:29:07 timingserver1 network[55293]: Started network profile 'main' 

Как это вообще возможно?

Мне важно понять механику, стоящую за этим. План состоит в том, что у меня есть два избыточных сервера, предлагающих услугу на ip 192.168.100.11 . Один из серверов будет иметь основной интерфейс, и оба подключены к одному коммутатору. Второй интерфейс на обоих серверах используется для обеспечения работоспособности, когда сервер находится в режиме ожидания или ухудшен (конечно, у них не будет одинакового IP-адреса).

Поэтому в случае перехода на другой ресурс я отключу интерфейс основного сервера (или отсоедините кабель) и активирую его на резервном сервере. Конечно, если главный сервер по-прежнему отвечает на 192.168.100.11 даже если он не работает, это было бы плохо …: – /

Мои файлы профиля netctl:

  • основной интерфейс

     Description='Main interface' Interface=enp7s0f0 Connection=ethernet IP=static Address=('192.168.100.11/24') Gateway='192.168.100.1' DNS=('192.168.100.1' '8.8.8.8') 
  • вторичный интерфейс

     Description='Secondary interface' Interface=enp7s0f1 Connection=ethernet IP=static Address=('192.168.100.12/24') DNS=('192.168.100.2' '8.8.8.8') 

Я был бы очень признателен, если бы кто-нибудь мог направить меня как заархивировать мое желаемое решение. Может быть, это просто что-то глупое, о котором я забыл или не знаю, но на данный момент меня это немного беспокоит …: – /

One Solution collect form web for “Почему я могу подключиться к IP-интерфейсу сетевого интерфейса (на сервере с несколькими сетевыми интерфейсами) при удалении сетевого кабеля?”

Хорошо, поэтому проблема заключается в том, что любой интерфейс отвечает на ARP-запросы, потому что все они находятся в одной подсети, и поэтому, даже если сетевые интерфейсы имеют разные IP-адреса, записи ARP указывают на один и тот же интерфейс. Таким образом, все пакеты для разных IP-адресов отправляются на один и тот же MAC-адрес (поскольку все IP-адреса имеют одинаковый MAC-адрес в записи ARP)

Мой кеш arp выглядит так:

 $ ip neigh 192.168.100.11 dev enp2s0 lladdr 00:1e:67:a3:7f:b7 STALE 192.168.100.12 dev enp2s0 lladdr 00:1e:67:a3:7f:b7 STALE 

Спасибо @ КристоферНейлан за то, что дал мне понять, что посмотреть на ARP.

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

Проблема в том, что linux использует слабую модель хоста, но здесь нужна сильная модель хоста. Я нашел вопрос о serverfault, который решает эту проблему, если кто-либо еще будет опрошен: несколько физических интерфейсов с IP-адресами в одной подсети

  • netctl не автоматически соединяется
  • Что делает systemctl enable netctl.service
  • netctl: несколько точек доступа Wi-Fi с одинаковым SSID
  • Как определить параметры для сети предприятия WPA2?
  • Не удалось выполнить попытку аренды IP-адреса DHCP через Ethernet и dhcp с netctl
  • Netctl заставляет getty очищать экран и повторно отображать сообщение об ошибке
  • как указать редактор для `sudo netctl edit`?
  • Не удается запустить Wi-Fi с помощью systemd
  • Что именно происходит, когда я запускаю `netctl-auto enable-all`?
  • Wi-Fi перестает работать после приостановки или при повторном подключении (не происходит каждый раз, исправления перезагрузки)
  • Нет Интернета после сна; «Нет доступных маршрутизаторов ipv6»
  • Interesting Posts

    Как я могу подсчитать количество пробельных символов в файле?

    Разрешение отклонено при попытке доступа к установленным окнам NFS

    Возможно ли выполнить двоичный файл без указания полного пути или предыдущего «./»?

    Замена команд с помощью pkg-config в Fish

    Не удается обработать запрос подкачки ядра?

    Получить имя хоста для отображения fqdn без –fqdn

    Почему не взаимодействует bash login shell игнорировать / etc / profile при вызове su -?

    Двойной экран: рабочие столы «движутся» с помощью мыши

    Генерирование оповещения по электронной почте для событий в системном журнале

    Разветвление безопасности использования этой строки в visudo: yourUSERname ALL = (otherUSERaccount) NOPASSWD: ALL

    Дисковое пространство ext4 не восстанавливается после удаления файлов

    Как запустить Java-программу в скрипте Bash и дать ей один аргумент?

    Sed Замените числовое содержимое

    Как обновить TCL на FreeBSD?

    Постоянное добавление приоритета к задаче на машине Linux

    Linux и Unix - лучшая ОС в мире.