Назад | Перейти на главную страницу

Поднимите виртуальный интерфейс, не проверяя, есть ли он где-то еще

Есть ли способ вызвать виртуальный интерфейс без предварительной отправки arping, чтобы проверить, используется ли этот IP-адрес где-то еще?

Я работаю с проприетарным продуктом, который рекомендует скопировать сценарий ifup и прокомментировать раздел проверки arping. Но тогда эту настраиваемую версию сценария ifup нужно где-то хранить, и это не самая лучшая вещь в обслуживании.

Есть ли лучший способ вызвать интерфейс без проверки arping?

Я знаю, что это старое, но я искал это сегодня

Можете добавить ARPCHECK=no в любой файл определения интерфейса, чтобы пропустить проверку.

Проверено только в CentOS 6.7

Вы должен уметь делать это в рамках сетевых скриптов Red Hat. Однако вы не можете этого сделать из-за ошибки в этих скриптах.


Я бы поступил так:

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

Чтобы подавить ARP во время инициализации интерфейса, добавьте в /etc/sysconfig/network-scripts/ifcfg-eth0. Это на самом деле отключает ARP на уровне ядра, который должен делать любые попытки использовать arping потерпеть поражение.

ARP=no

Чтобы снова включить ARP после запуска интерфейса, создайте файл /sbin/ifup-local с необходимыми командами:

#!/bin/bash
ip link set dev $1 arp on

Однако это не удается именно потому, что вызывает arping потерпеть неудачу. Поскольку /etc/sysconfig/network-scripts/ifup-eth сценарий фактически не проверяет код возврата из arping достаточно осторожно, если вы действительно установите ARP=no тогда инициализация завершается ошибкой с неверным сообщением об ошибке, в котором утверждается, что IP-адрес уже используется.


Это оставляет вам исходный вариант, рекомендованный поставщиком: взломать сценарий и (необязательно) сообщить об ошибке в Red Hat.

Вам вообще не нужно использовать скрипты ifup. Вы могли бы просто использовать ifconfig?

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

В настоящее время я не работаю с системами RedHat, поэтому у меня нет возможности копаться в скриптах, о которых вы говорите. Я бы подумал, что было бы неплохо поддерживать некоторые вариации в сценариях ifup, и это подходящее место для описания того, какое поведение вы хотите. Для среды, о которой вы говорите, вы все равно должны запускать программное обеспечение для управления конфигурацией. (марионетка, повар или подобное). Так что следить за тем, чтобы ваши изменения не терялись при обновлениях, не должно быть слишком сложно.

Правило брандмауэра для блокировки ARP?

А если серьезно, почему бы вам не захотеть, чтобы ARP работал нормально?

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