2

Если я добавлю два IP-адреса, как это:

  1. ip addr add 1.1.1.1/24 dev eth2
  2. ip addr add 1.1.1.2/24 dev eth2

и затем я пытаюсь удалить один из таких:

  1. ip addr del 1.1.1.2/24 dev eth2

ОБА IPs будут удалены, и я не знаю, как с этим справиться.

Кто-нибудь знает, как это решить?

2 ответа2

1

Что-то еще, вероятно, делает вещи за вашей спиной. NetworkManager является известным преступником.

Запустите ip monitor во время выполнения ваших команд и посмотрите, изменяет ли кто-то конфигурацию.

1

Если вы выполните ip addr list dev eth2 после двух ваших команд add , вы увидите что-то вроде этого (выделено мое):

2: eth2:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
     link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
     inet 192.168.1.1/24 brd 192.168.1.255 scope global eth2
     inet 1.1.1.1/24 scope global eth2
     inet 1.1.1.2/24 scope global secondary eth2

Важно отметить, что Linux рассматривает второй адрес как вторичный по отношению к первому, так как они находятся в одной логической подсети (/24). Удаление вторичного адреса не влияет на первичный, а наоборот.

Если вам нужно добавить / удалить адреса в 1.1.1.0/24, вам, вероятно, следует сначала добавить один адрес, который всегда действителен (например, 1.1.1.99/24), а затем добавить 1.1.1.1 и 1.1.1.2 в качестве вторичных адресов. Затем вы можете добавить / удалить адреса .1 и .2 по своему желанию.

Если это невозможно, вы также можете временно добавить 1.1.1.2 /32 перед удалением 1.1.1.1. Это позволит поддерживать подключение для всех подключений извне вашей сети. В зависимости от настроек вашей сети (то есть, поддерживает ли ваш маршрутизатор прокси-ARP), вы также можете временно использовать 1.1.1.2 /0 .

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