Linux'ta IP Komutuyla IP'yi Kaldırma


12

Bunun gibi iki IP eklersem:

ip addr add 1.1.1.1/24 dev eth2
ip addr add 1.1.1.2/24 dev eth2

ve sonra böyle birini silmeye çalışıyorum:

ip addr del 1.1.1.2/24 dev eth2

İKİ IP silinecek ve nasıl ele alınacağını bilmiyorum.

Bunu nasıl çözeceğini bilen var mı?


İhtiyacınız belli değil. Burada beklenen çıktının ne olduğunu söyleyebilir misiniz?
Guru

Sadece bir IP değil ikisini de silmek ip söylemek gerekir
Hamid JML

Lütfen ip addr showçıktı ekleyin
Gevial

Yanıtlar:


10

Bir arabirimden birincil IP adresinin silinmesi, varsayılan olarak, aynı alt ağdaki diğer tüm adresleri siler.

Bu, 12-Mar-13 üzerinde bir cevap sağlayan kullanıcı lain tarafından bildirilen bir REHL hata 1136733 bir cevaptır ...

Aynı alt ağa birden çok adres ekliyorsunuz, böylece ikinci ve sonraki adresler ikincil hale geliyor. Bu, "ip adresi göster" çıkışında görülebilir, bu adreslerin yanındaki "ikincil" anahtar kelimesini not edin.

Varsayılan olarak, birincil adresi silerken, çekirdek ilgili tüm ikincil değerleri de siler.

Sekonderlerden birinin birincil silme işleminde yeni bir birincil öğe olmasını istiyorsanız, net.ipv4.conf.eth9.promote_secondaries sysctl öğesini ayarlayın.


sudo systemctl net.ipv4.conf.eth0.promote_secondariesBilinmeyen işlem net.ipv4.conf.eth0.promote_secondaries.
Laryx Decidua

@LaryxDecidua systemctl tamamen farklı komut sysctl
yahol

7

Bunun nedeni, silme işlemi sırasında / 24 ağ maskesi kullanmanızdır. Girdiğiniz adrese uygulanır. Takip etmeyi dene:

ip addr del 1.1.1.2/32 dev eth2

/ 32 maskesi tam olarak bir ana bilgisayar tanımlar.


Sistem / 24 ağ maskesi değil / 32 verdiğim gibi bu çalışmıyor.
Hamed JML

ip addr del 1.1.1.2 dev eth2
Netmask

Yine her iki IP silin!
Hamed JML

Garip. Testimde CentOS kutusunun ağ maskesi olmadan silinmesi başarılı oldu. Rağmen / 24 ile silmek sadece bir adresi etkiledi. Hangi dağıtımı kullanıyorsunuz?
Gevial

1
Ubuntu 12.04 kullanıyorum
Hamed JML

2

Bunu kontrol etmek için bir eth2 yok ama eth0 üzerinde doğru çalışıyor ve eth2'nin büyülü olması için hiçbir neden göremiyorum. Ben kullandığınız tahmin ip addr show dev eth2olarak ifconfig eth2ip tarafından eklenen ek adresler göstermek için görünmüyor.

Fark ettiğim bir şey, adresleri oluşturduğunuz / sildiğiniz sıralamanın önemli olduğudur. Birincil adres silinirse, aynı ağa eklenen ikinci ve sonraki adresler silinir. Düşünmek ...

    inet 1.1.1.1/24 scope global eth0
    inet 1.1.2.3/24 scope global eth0
    inet 1.1.1.2/24 scope global secondary eth0
    inet 1.1.1.3/24 scope global secondary eth0

1.1.1.1'i silerseniz, 1.2 ve 1.3 adresleri de silinecektir. Başka bir adresi silerseniz yalnızca bu adres silinir.


Peki, başkalarını kaldırmadan ilk adresi nasıl silebilirim?
Hamed JML

0

Aşağıdakileri deneyeceğim:

ip addr del 1.1.1.2 geliştirici eth2


0

@Bvs cevabı sorunun tam olarak doğru yöne ve benim için çözüldü. Burada, kesin komutlarla ilgili bazı ayrıntılar verilmiştir. Birçok varsayılan arayüz gelince eth0, ben eth2orijinal soru için yerine aşağıdaki komutlar, alıyorum .

Geçici bir çözüm için (yeniden başlatılıncaya kadar) kullanın

sudo sysctl -w net.ipv4.conf.eth0.promote_secondaries=1

aşağıdaki içeriklerle bir dosya /etc/sysctl.d/ip-promote.conf(veya biten başka bir dosya adı .conf) oluşturduktan sonra devam eden kalıcı bir çözüm için :

# The following makes that a second IP on the eth0 interface
# is promoted as primary IP instead of being removed.
net.ipv4.conf.eth0.promote_secondaries=1
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.