Změna primární IP adresy

M

Změna primární IP adresy
« kdy: 30. 08. 2015, 16:12:44 »
Zdravim.
Potreboval by som vediet ako sa da zmenit sekundarna IP adresa na primarna. Taktiez by som rad vedel ako sa odoberie sekundarna adresa. Vsetko by som to chcel s novym prikazom "ip" a nie s "ifconfig".

Mal som server s IP 10.222.10.9. Pridal som dve sekundarne IP v ronakom rozsahu a ked som chcel odobrat primarnu IP adresu (ocakaval som ze niektora zo skundarnych sa stane primarnou), tak z interface sa odobrali vsetky IP adresy. Toto su prikazy co som zadaval:
Kód: [Vybrat]
sudo ip addr add 10.222.10.19/24 dev eth0
sudo ip addr add 10.222.10.39/24 dev eth0
sudo ip addr del 10.222.10.9/24 dev eth0

Toto je co som ziskal ked som sa s tym hral:
Kód: [Vybrat]
miro@OwnCloud:~$ ip addr                                                                                                                                                                                             
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:bc:5d:af brd ff:ff:ff:ff:ff:ff
    inet 10.222.10.9/24 brd 10.222.10.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:febc:5daf/64 scope link
       valid_lft forever preferred_lft forever
miro@OwnCloud:~$ sudo ip addr add 10.222.10.19/24 dev eth0
miro@OwnCloud:~$ sudo ip addr add 10.222.10.39/24 dev eth0
miro@OwnCloud:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:bc:5d:af brd ff:ff:ff:ff:ff:ff
    inet 10.222.10.9/24 brd 10.222.10.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.222.10.19/24 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet 10.222.10.39/24 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:febc:5daf/64 scope link
       valid_lft forever preferred_lft forever
miro@OwnCloud:~$ sudo ip addr del 10.222.10.9/32 dev eth0
RTNETLINK answers: Cannot assign requested address
miro@OwnCloud:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:bc:5d:af brd ff:ff:ff:ff:ff:ff                                                                                                                                                               
    inet 10.222.10.9/24 brd 10.222.10.255 scope global eth0                                                                                                                                                         
       valid_lft forever preferred_lft forever                                                                                                                                                                       
    inet 10.222.10.19/24 scope global secondary eth0                                                                                                                                                                 
       valid_lft forever preferred_lft forever                                                                                                                                                                       
    inet 10.222.10.39/24 scope global secondary eth0                                                                                                                                                                 
       valid_lft forever preferred_lft forever                                                                                                                                                                       
    inet6 fe80::250:56ff:febc:5daf/64 scope link                                                                                                                                                                     
       valid_lft forever preferred_lft forever                                                                                                                                                                       
miro@OwnCloud:~$ sudo ip addr del 10.222.10.9 dev eth0     
Warning: Executing wildcard deletion to stay compatible with old scripts.
miro@OwnCloud:~$ ip addr                                                                                                                                                                                             
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:bc:5d:af brd ff:ff:ff:ff:ff:ff
    inet6 fe80::250:56ff:febc:5daf/64 scope link
       valid_lft forever preferred_lft forever

Cize ked som chcel odobrat povodnu IP s maskou 32, tak to nezbehlo. Ked som zadal prikaz s makou 24, tak mi odobralo vsetky IP adresy.
Malo by to ist riesit s aliasmi (eth0:1, eth0:2), ale je toto mozne riesit aj priamo na eth0, tak ako som to testoval?
Dakujem za odpoved
« Poslední změna: 31. 08. 2015, 11:11:27 od Petr Krčmář »


Filip Jirsák nepřihlášený

Re:Zmena primarnej IP adresy
« Odpověď #1 kdy: 31. 08. 2015, 09:41:47 »
V Linuxu neexistuje žádná primární IP adresa zařízení. Všechny přiřazené IP adresy jsou na stejné úrovni.

Citace
Toto su prikazy co som zadaval:
Kód: [Vybrat]
ip addr add 10.222.10.19/24 dev eth0
ip addr add 10.222.10.39/24 dev eth0
ip addr del 10.222.10.9/24 dev eth0

Pokud byste tohle skutečně zadal, a rozhraní mělo původně přiřazenu IP adresu 10.222.10.9/24, skončil byste s tím, že by zařízení mělo přiřazené IP adresy 10.222.10.19/24 a 10.222.10.39/24.

V kódu níž jste pak ale uvedl jiné příkazy, a dostal jste od jádra příslušné odpovědi.

Citace
Kód: [Vybrat]
ip addr del 10.222.10.9/32 dev eth0
RTNETLINK answers: Cannot assign requested address
Tady jste chtěl mazat adresu, kterou zařízení nemá přiřazenu (máte tam špatně masku). Jádro vám to také napsal (i když slovo –„assign“ je v tomto kontextu trochu matoucí).


Citace
Kód: [Vybrat]
ip addr del 10.222.10.9 dev eth0Warning: Executing wildcard deletion to stay compatible with old scripts.
Tady jste opět zadal jiný příkaz, než ten nahoře uvedený (nezadal jste masku). A jádro vám píše, že je příkaz zadaný špatně, ale kvůli kompatibilitě se starými skripty jej provede jako žolíkové/hvězdičkové mazání – smaže tedy víc záznamů odpovídajících zadaným parametrům. Smazalo tedy všechny IP adresy přiřazené danému rozhraní.

M

Re:Zmena primarnej IP adresy
« Odpověď #2 kdy: 31. 08. 2015, 10:51:09 »
O primarnej som vravel preto, lebo na vypisoch z ip addr maju ostatne IP priznak secondary. Taktiez preto, ze ak sa server niekde pripaja, pouziva len prvu adresu. Ja som potreboval aby pouzival jednu z novo pridanych IP, pretoze len ta mala povoleny pristup na vzdialeny server.
Preto som sa pytal ci je mozne zmenit ktoru IP adresu bude pouzivat linux pri pripajani na iny server, ak ma viacero IP adries tak ako som uviedol.
Sice Filip Jirsák napisal preco sa pri maske /32 neodobrala ziadna IP a pri /24 odobrali vsetky, ale chcel by som vediet ci v takomto pripade je mozne odobrat len jednu IP adresu.

Filip Jirsák nepřihlášený

Re:Zmena primarnej IP adresy
« Odpověď #3 kdy: 31. 08. 2015, 12:31:13 »
O primarnej som vravel preto, lebo na vypisoch z ip addr maju ostatne IP priznak secondary.
To se týká výběru zdrojové IP adresy při routování. Máte na jednom zařízení přidělených několik IP adres ze stejného rozsahu, tj. když bude jádro odesílat paket na nějakou IP adresu z tohoto rozsahu, a nedostane určenou zdrojovou IP adresu, musí ji nějak vybrat – IP adresy označené jako secondary v takovém případě nebere v úvahu.

Taktiez preto, ze ak sa server niekde pripaja, pouziva len prvu adresu.
To je ale záležitost rozhodnutí klienta, vy to na serveru nijak neovlivníte. Pokud to není blokované nějakým firewallem, připojí se přes libovolnou z IP adres serveru. A ani nemá jak zjistit (kromě nějakých heuristik), že to zařízení má přiděleno více IP adres.

Ja som potreboval aby pouzival jednu z novo pridanych IP
Pokud potřebujete, aby ty IP adresy používal klient, na serveru to nijak neovlivníte. Ale klient se tu IP adresu musí nějak dozvědět, tak mu řekněte tu správnou. A nejspíš se jí dozvídá z DNS, tak použijte tu správnou IP adresu v DNS.

pretoze len ta mala povoleny pristup na vzdialeny server.
To ale nijak nesouvisí s tím, jak se připojuje klient k serveru, ale je to případ, kdy ten váš počítač je v roli klienta.

Preto som sa pytal ci je mozne zmenit ktoru IP adresu bude pouzivat linux pri pripajani na iny server, ak ma viacero IP adries tak ako som uviedol.
Nejbezpečnější je, pokud to daný klientský program umožňuje nastavit v konfiguraci. Pokud to neumí a nechává výběr na jádru, můžete ovlivnit, jak jádro výběr provádí. Pro obecné nastavení se používají pravidla (konfigurují se přes příkaz ip rule). Pokud chcete jen při routování do stejné sítě upřednostnit jednu IP adresu, zadejte ji jako první, tím se stane primary. Všechny další IP adresy ze stejné sítě, které pak přidáte, se stanou secondary.

Sice Filip Jirsák napisal preco sa pri maske /32 neodobrala ziadna IP a pri /24 odobrali vsetky, ale chcel by som vediet ci v takomto pripade je mozne odobrat len jednu IP adresu.
Ano, je to možné, v předchozím komentáři jsem to psal. Musíte zadat správnou masku:

Kód: [Vybrat]
ip addr del 10.222.10.9/24 dev eth0
Tím odeberete zařízení z dané sítě (protože jde o primary adresu), tj. všechny IP adresy z uvedeného rozsahu 10.222.10.9/24 (tj. včetně těch, které jsou označeny jako secondary). Ve vašem případě tedy musíte nejprve odebrat tu původní IP adresu, pak přidat tu primární z daného rozsahu a pak ostatní. Pokud tedy má být primírná P adresou 10.222.10.19, zadejte

Kód: [Vybrat]
ip addr del 10.222.10.9/24 dev eth0
ip addr add 10.222.10.19/24 dev eth0
ip addr add 10.222.10.39/24 dev eth0

P

Re:Změna primární IP adresy
« Odpověď #4 kdy: 31. 08. 2015, 12:37:08 »
Zrušení sekundárních adres při odebrání primární se dá zabránit nastavením sysctl

net.ipv4.conf.all.promote_secondaries=1


samalama

Re:Zmena primarnej IP adresy
« Odpověď #5 kdy: 31. 08. 2015, 14:04:12 »
Taktiez preto, ze ak sa server niekde pripaja, pouziva len prvu adresu.
To je ale záležitost rozhodnutí klienta, vy to na serveru nijak neovlivníte. Pokud to není blokované nějakým firewallem, připojí se přes libovolnou z IP adres serveru. A ani nemá jak zjistit (kromě nějakých heuristik), že to zařízení má přiděleno více IP adres.

Ja som potreboval aby pouzival jednu z novo pridanych IP
Pokud potřebujete, aby ty IP adresy používal klient, na serveru to nijak neovlivníte. Ale klient se tu IP adresu musí nějak dozvědět, tak mu řekněte tu správnou. A nejspíš se jí dozvídá z DNS, tak použijte tu správnou IP adresu v DNS.

pretoze len ta mala povoleny pristup na vzdialeny server.
To ale nijak nesouvisí s tím, jak se připojuje klient k serveru, ale je to případ, kdy ten váš počítač je v roli klienta.

Preto som sa pytal ci je mozne zmenit ktoru IP adresu bude pouzivat linux pri pripajani na iny server, ak ma viacero IP adries tak ako som uviedol.
Nejbezpečnější je, pokud to daný klientský program umožňuje nastavit v konfiguraci. Pokud to neumí a nechává výběr na jádru, můžete ovlivnit, jak jádro výběr provádí. Pro obecné nastavení se používají pravidla (konfigurují se přes příkaz ip rule). Pokud chcete jen při routování do stejné sítě upřednostnit jednu IP adresu, zadejte ji jako první, tím se stane primary. Všechny další IP adresy ze stejné sítě, které pak přidáte, se stanou secondary.

myslim, ze to myslel inak.
ma server1, kde ma pridelenych viac ip adries, a ma server2, na ktory sa chce pripojit zo server1. ale na server2 je povoleny pristup zo server1 z druhej ip (nie primarnej). a on sa pyta, ako donutit server1 aby pri pripajani sa na server2 pouzil inu ip adresu (cize nie primarnu). nieco ako parameter -b pre ssh...

Filip Jirsák nepřihlášený

Re:Zmena primarnej IP adresy
« Odpověď #6 kdy: 31. 08. 2015, 14:46:34 »
myslim, ze to myslel inak.
ma server1, kde ma pridelenych viac ip adries, a ma server2, na ktory sa chce pripojit zo server1. ale na server2 je povoleny pristup zo server1 z druhej ip (nie primarnej). a on sa pyta, ako donutit server1 aby pri pripajani sa na server2 pouzil inu ip adresu (cize nie primarnu). nieco ako parameter -b pre ssh...
Na to je odpověď v mém komentáři. Začíná v posledním vámi citovaném odstavci a pokračuje až do konce komentáře.

M

Re:Změna primární IP adresy
« Odpověď #7 kdy: 31. 08. 2015, 21:39:30 »
Dakujem za odpovede.
Myslel som to presne tak, ako pisal samalama.

Cize zmenit adresu ktoru pouziva pre pripojenie na iny server sa da bud nastevenim
Kód: [Vybrat]
sysctl net.ipv4.conf.all.promote_secondaries=1 a postupnym odoberanim/pridavanim,
alebo odobratim vsetkych IP a nastavenim v spravnom poradi.

Cakal som vsak defaultne spravanie "net.ipv4.conf.all.promote_secondaries=1" a trochu som si odpalil server ked som mu na dialku zrusil vsetky IP :)

samalama

Re:Změna primární IP adresy
« Odpověď #8 kdy: 31. 08. 2015, 23:11:09 »
mozno sa na spravnu ip vie bindnut priamo sama aplikacia, pokial to teda podporuje...