Zmień adres IP zdalnego hosta bez utraty kontroli (Linux)

10

Jak mogę zmienić główny adres IP zdalnego hosta, nie odłączając się wcale (nie będąc w stanie „bez adresu IP”).

Sprawa jest słabo dyskutowana w Internecie (według moich badań). Najlepsze zasoby , które znalazłem, są trochę trudne.

PRZYKŁAD: zmień 10.0.0.11/24 na 10.0.0.15/24

1. ssh [email protected]
2. ip addr add 10.0.0.15/24 dev eth0 
3. logout

4. ssh [email protected]
5. ip addr del 10.0.0.11/24 dev eth0 

Problem: Ostatnie polecenie usuwa oba adresy IP, a połączenie zostaje utracone, ponieważ 10.0.0.11 jest podstawowe, i usuwa adresy pomocnicze (do których należy 10.0.0.15) po usunięciu.

Wiem, że mogę „oszukać” poprzez dodanie 10.0.0.11/ 25 (zamiast 24 ). Myślę jednak, że teoretycznie jest to możliwe do prawidłowego wykonania.

Co myślisz?

Totor
źródło
to nie jest oszustwo, jeśli używasz / 32 mask ...
zb '
ale to nie zadziałałoby, ponieważ a / 32 nie może komunikować się z niczym innym jak z samym sobą ...
Totor 13.03.13
ok, ale / 25 również nie będzie działać niż.
zb

Odpowiedzi:

11

Musisz ustawić promote_secondariesopcję w interfejsie lub we wszystkich interfejsach:

echo 1 > /proc/sys/net/ipv4/conf/eth0/promote_secondaries

lub

sysctl net.ipv4.conf.eth0.promote_secondaries=1

Zmień, eth0aby alldziałał na wszystkich interfejsach.

Ta opcja jest dostępna od 2.6.12 .

Przetestowałem to z atrapą interfejsu i działało tam.

camh
źródło
Dokładnie to, czego potrzebowałem, dzięki! Zobacz oryginalne zatwierdzenie .
Totor
1
Należy pamiętać, że ta opcja jest dostępna od wersji 2.6.12 , a więc przed wersją 2.6.16.
Totor