Portál AbcLinuxu, 10. května 2024 19:22


Dotaz: ip addr a sekundární adresa

Zdeněk Zámečník avatar 4.3.2009 00:35 Zdeněk Zámečník | skóre: 26
ip addr a sekundární adresa
Přečteno: 585×
Odpovědět | Admin

Snažím se dát dohromady jeden skript změnu ip adres síťovky. Věc se má tak, že síťovku mám nakonfigurovanou v souboru /etc/network/interfaces (Debian) - tuto ip beru jako pevnou, kterou měnit nechci. Jakmile ji přiřadím další třeba dvě ip adresy takto:

ip addr add 192.168.1.2/24 dev bond0
ip addr add 192.168.1.3/24 dev bond0

Tak mi příkaz ip addr show bond0 vypíše ve zkratce toto:

inet 81.0.x.x/28 brd 81.0.x.x scope global bond0   // adresa nastavená v interfaces
inet 192.168.1.2/24 scope global bond0   // adresa nastavená příkazem ip addr
inet 192.168.1.3/24 scope global secondary bond0   // adresa nastavená příkazem ip addr

Proč mi to už tu první přidanou ip nehodí jako secondary? Dělá mi to celkem problémy, protože když se pokusím pomocí ip addr del odstranit adresu 192.168.1.2, tak mi to odstraní i 192.168.1.3.

1) Příkazu ifconfig bych se celkem rád vyhnul.
2) Dělat opičárny jako odstranit první adresu a pak znovu přidat druhou se mi taky nechce už jen z toho důvodu, že těch adres tam mám požehnaně.
3) Konfigurovat "pevnou" ip adresu ručně pomocí ip addr a ne v interfaces, ano to by asi fungovalo, ale...

Má někdo nějaký nápad, kudy ven, kromě těchto tří výše zmíněných?


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.3.2009 06:52 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: ip addr a sekundární adresa
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžete zkusit ručně přidat flag secondary.
In Ada the typical infinite loop would normally be terminated by detonation.
Zdeněk Zámečník avatar 4.3.2009 10:21 Zdeněk Zámečník | skóre: 26
Rozbalit Rozbalit vše Re: ip addr a sekundární adresa

To bohužel nejde...

4.3.2009 09:23 nerada
Rozbalit Rozbalit vše Re: ip addr a sekundární adresa
Odpovědět | | Sbalit | Link | Blokovat | Admin

To secondary znamena, ze je to druha adresa ze stejneho rozsahu

 

 

4.3.2009 10:12 Mortal | skóre: 26 | blog: mortals_log
Rozbalit Rozbalit vše Re: ip addr a sekundární adresa
Odpovědět | | Sbalit | Link | Blokovat | Admin
A workaround is to set the netmask on the second address added to the interface to /32
http://linux-ip.net/html/tools-ip-address.html#tools-ip-address-del
V pekle jsou samé diskety a ďábel je velká disketová mechanika
Zdeněk Zámečník avatar 4.3.2009 10:33 Zdeněk Zámečník | skóre: 26
Rozbalit Rozbalit vše Re: ip addr a sekundární adresa

Zajímavý nápad. Na první pohled funguje správně, ale bojím se že narazím na problémy, protože "Unfortunately, this subterfuge will prevent the kernel from entering the correct corresponding network and broadcast routes."

4.3.2009 10:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: ip addr a sekundární adresa
Odpovědět | | Sbalit | Link | Blokovat | Admin

Příznak secondary se nastavuje, pokud jde o druhou (nebo další) adresu se stejným rozsahem, jako má některá už existující. To rozlišení je hlavně kvůli algoritmu určení preferované zdrojové adresy - je-li více adres se stejným rozsahem, přednost má "primární", tj. ta bez příznaku secondary.

Tradiční chování bylo takové, že při odebrání "primární" adresy se odebraly automaticky i všechny secondary se stejným rozsahem. Takže přidání dalších adres bez udání rozsahu (s délkou prefixu 32) by sice zajistilo, že se neodeberou, ale nejspíš by výsledkem bylo něco jiného než chcete. Máte-li ale systém s dostatečně novým jádrem, můžete zapsáním jedničky do

  /proc/sys/net/ipv4/conf/*/promote_secondaries

přepnout rozhraní do režimu, kdy se po odebrání "primární" adresy stane "primární" některá ze současných secondary, tj. je jí odebrán příznak secondary a je na ni přepsán parametr src u příslušné automaticky generované položky směrovací tabulky main:

lion:~ # ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:16:17:9b:24:fb brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
    inet 192.168.2.1/24 brd 192.168.2.255 scope global eth0
    inet6 fe80::216:17ff:fe9b:24fb/64 scope link
       valid_lft forever preferred_lft forever
lion:~ # ip addr add 10.11.12.13/24 dev eth0
lion:~ # ip addr add 10.11.12.14/24 dev eth0
lion:~ # ip addr add 10.11.12.15/24 dev eth0
lion:~ # ip addr add 10.11.12.16/24 dev eth0
lion:~ # ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:16:17:9b:24:fb brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
    inet 192.168.2.1/24 brd 192.168.2.255 scope global eth0
    inet 10.11.12.13/24 scope global eth0
    inet 10.11.12.14/24 scope global secondary eth0
    inet 10.11.12.15/24 scope global secondary eth0
    inet 10.11.12.16/24 scope global secondary eth0
    inet6 fe80::216:17ff:fe9b:24fb/64 scope link
       valid_lft forever preferred_lft forever
lion:~ # ip route show | grep 10.11.12
10.11.12.0/24 dev eth0  proto kernel  scope link  src 10.11.12.13
lion:~ # ip addr del 10.11.12.13/24 dev eth0
lion:~ # ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:16:17:9b:24:fb brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
    inet 192.168.2.1/24 brd 192.168.2.255 scope global eth0
    inet 10.11.12.14/24 scope global eth0
    inet 10.11.12.15/24 scope global secondary eth0
    inet 10.11.12.16/24 scope global secondary eth0
    inet6 fe80::216:17ff:fe9b:24fb/64 scope link
       valid_lft forever preferred_lft forever
lion:~ # ip route show | grep 10.11.12
10.11.12.0/24 dev eth0  proto kernel  scope link  src 10.11.12.14
Zdeněk Zámečník avatar 4.3.2009 11:06 Zdeněk Zámečník | skóre: 26
Rozbalit Rozbalit vše Re: ip addr a sekundární adresa

Výborně, děkuju za vysvětlení

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.