Portál AbcLinuxu, 30. dubna 2025 16:48
ip
je celkem zbytecne
vetsina lidi se s nim naucila
A to je právě ta chyba. Já se třeba především snažím, aby noví uživatelé od samého začátku věděli, že mají používat ip
a ne ifconfig
, route
, arp
apod. Protože jinak to oni za pár let coby zkušení budou učit další nováčky. Pokud se někomu zažral do hlavy ifconfig
a přes názorné argumenty tvrdošíjně odmítá vzít na vědomí změny v jádře, ke kterým došlo před více než devíti (9) lety, pak s tím těžko něco dělat.
jak je videt ze zapisku nehodlal na jedno zarizeni nastavovat vice adres ani provadet nejake silene routovani, tedy ip je celkem zbytecne
Vycházíte z mylné představy, že ifconfig
je základní nástroj a ip
něco pro pokročilé. Skutečnost je úplně jiná: ip
je (už více než devět let) standardním nástrojem pro konfiguraci (nejen) síťových rozhraní. Oproti tomu ifconfig
je nástroj pro totéž v systémech s jádrem řady 2.0 a starším (používáte snad takový?), který v současných systémech do určité míry funguje, ale nikdy si (a to ani u naprosto základních úkonů) nemůžete být jistý, jestli vám něco nezamlčí, něco jiného si nevymyslý a co hůř, jestli občas neudělá něco úplně jiného, než by měl a než od něj očekáváte.
ip
bude dělat to, co očekáváte, zcela jistě. A to nejen v tomto případě, ale i v drtivé většině ostatních případů použití ip
. Docela by mne zajímalo, co jiného než nepřekonatelný konzervatizmus vede k upřednostňování ifconfigu/route
proti iproute2
…
Fajn, tak nám předveďte, jak (bez aliasu) zvládnete třeba ekvivalent 'ip a
' na méně než čtyři znaky, když samotný příkaz má sedm. A to jsem na vás docela hodný, protože podle toho, co tvrdíte, byste měl vystačit s jedním…
Pro pořádek: osobně si nemyslím, že tohle je ten podstatný argument. Ale začal jste s tím vy, tak se ukažte.
ifconfig eth0 192.168.1.1 ip l set eth0 up; ip a a dev eth0 192.168.1.1/24Zmena IP adresy na jinou:
ifconfig eth0 192.168.1.2 ip a f dev eth0; ip a a dev eth0 192.168.1.2/24(Ano, uz v pripade, ze bych potreboval pouzit jinou masku nez implicitni podle class, tak bych asi zvolil ip.)
Prvotni nahozeni rozhrani a nastaveni IP adresy:
To je tak trochu podvod, nemyslíte? Příkaz ifconfig
v tomto případě provede dvě různé operace najednou. Kdybyste chtěl pouze přidat adresu, budete to muset provést nadvakrát (pokud tedy budete mít novější verzi ifconfig
, kde to vůbec jde).
Zmena IP adresy na jinou:
Jenže taková operace neexistuje. Nevědomky jste se dotkl podstaty problému: příkaz ifconfig
stále vychází z koncepce, kdy má rozhraní přiřazenu jednu adresu, kterou lze nastavit nebo změnit (přičemž nastavení adresy navíc automaticky slučuje s nahozením rozhraní). Ale tak tomu už přes devět let není. Počínaje jádrem 2.2 má rozhraní přiřazen seznam adres, do kterého můžete přidávat jednotlivé adresy nebo je z něj odebírat. Proto u toho vašeho druhého příkazu není úplně jasné, co vlastně přesně udělá.
Navíc se mi moc nelíbí ani to, jak si ifconfig
domýšlí síťovou masku a broadcast adresu, když je neuvedete. Dá se vlastně pomocí ifconfig
broadcast rozhraní nepřiřadit broadcast adresa?
Domysli si je plne v souladu s tradicnimi tridami IP adres, neni na tom nic magickeho.Volně přeloženo, na adresu 10.x.y.z mi automaticky dá masku /8, i když chci použít /24
prida se mu jedna IP adresa a prida se 'lokalni routa' do routovaci tabulky. Muzeme byt radi, ze v ramci atomizace neni treba pomoci prikazu 'ip' nastavovat druhou a treti operaci samostatne.
To, co popisujete, by odpovídalo
ip link set eth0 up ip addr add 1.2.3.4 dev eth0 ip route add 1.2.3.0/24 dev eth0
Ale to není totéž jako
ip link set eth0 up ip addr add 1.2.3.4/24 dev eth0
protože ve druhém případě se nejen automaticky přidá příslušná položka do směrovací tabulky main
, ale také se bude automaticky odebírat a přidávat podle toho, jak shazujete a nahazujete rozhraní eth0
.
Takova operace existuje v konceptualnim prostoru uzivatele. A je na uzivateli, jak danou operaci implementuje pomoci operaci, ktere mu nabizi system.
Ne. Taková operace u jader řady 2.2 a vyšších neexistuje a z principu existovat nemůže. Můžete ji do určité míry simulovat, ale způsob, jakým to ifconfig
dělá, není ani zdokumentovaný, ani deterministický.
Domysli si je plne v souladu s tradicnimi tridami IP adres, neni na tom nic magickeho.
Tedy podle standardu, který je obsolentní ještě o pěkných pár let déle než ifconfig
sám? To hovoří za vše...
Pokud bych mel takto specialni pozadavky, pak to rozhrani budu nastavovat pomoci ip.
Stále se snažím dopídit toho, proč chce někdo na něco používat obsolentní ifconfig
a něco dělat pomocí správného nástroje ip
. Zatím mi nikdo nebyl schopen odpovědět - tedy nepočítám-li to tvrzení, že stačí méně psaní, které se ukázalo nepravdivým.
To, co popisujete, by odpovídalo ... Ale to není totéž jako ...To vim, proto jsem take napsal "Pri pouziti toho prikazu dojde k alespon trem ..." a ne "prikaz ifconfig udelal tri ...".
Taková operace u jader řady 2.2 a vyšších neexistuje a z principu existovat nemůže.Take nepisi, ze jde o operaci jadra, ale ze jde o operaci uzivatele. Proste mam jako priklad dve cinnosti - "prevest sitovou kartu z puvodniho stavu do stavu, kdy funguje s jednou konkretni IP adresou" a "prevest sitovou kartu ze stavu, kdy funguje s nejakou jednou IP adresou, do stavu, kdy funguje s jednou konkretni IP adresou". Tyto dve 'uzivatelske operace' pokryvaji prevaznou vetsinu pripadu, kdy bezny clovek konfiguruje rozhrani (spolu s nastavenim default gateway). Pro tyto pripady si pri vyuziti ifconfigu vystacim s polovicni delkou prikazu. Je pravda, ze pokud by me priklady mely pokryt obecne nejcastejsi pripady nastavovani site (a ne me nejcastejsi pripady), tak bych mel do prikladu pocitat nastavovani vcetne konkretni masky, coz by ifconfig znacne znevyhodnilo, na druhou stranu pokud uzivatel dostane (treba od ISP) masku, tak vetsinou bude v 'expandovanem' tvaru a pri pouziti prikazu ip by ji clovek musel prepocitavat.
Take nepisi, ze jde o operaci jadra, ale ze jde o operaci uzivatele.
Problém je, že nejde-li něco v jádře, nemůže to udělat ani uživatel (nebo přesněji správce). A můj názor je, že je lepší nepředstírat, že je tomu jinak, to vede jen k nedorozuměním a problémům. Rozlišil bych dva případy: 1. nepříliš poučený uživatel (v rámci oné nešťastné akce každý sobě systémákem); ten by měl používat výhradně distribuční nástroje, případně konfigurační soubory, a tam je na distribuci, jak od něj problematiku odstíní. 2. poučený uživatel; ten by měl znát pravdu nebo aspoň její část; tady považuji jakékoli předstírání, že má rozhraní jednu adresu a ta se mu nastavuje nebo nahrazuje, za jednoznačnou chybu. Je-li uživatel schopen nastavovat síťová rozhraní ručně z příkazové řádky, je IMHO schopen strávit skutečnost, že rozhraní nemá přiřazenu jednu adresu ale seznam. Ostatně v dohledné době (doufejme, že už brzy) se s tím bude muset vyrovnat tak jako tak.
ifconfig
? Stejně musíte nejdřív použít ip
, abyste se přesvědčil, že můžete používat ifconfig
/route
. To mi jako efektivní zrovna nepřipadá…
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
ifconfig
, nevíte, zda vám zobrazil všechny IP adresy, nebo jenom některé. Musíte nejdřív použít ip
, tím se přesvědčíte, že vám ifconfig
zobrazí všechny ip adresy, a teprve pak jej můžete začít používat. To samé s route
. Nebo vy používáte rovnou ifconfig
a spoléháte na to, že se jedná náhodou o ten případ, kdy bude fungovat „správně“?
ifconfig
u si to však nějak neuvědomují, že nejdříve si musí pomocí ip
ověřit počáteční podmínky...
ifconfig
a jeste jsem nenarazil na zadnou anomalii. Takze bud nepotrebuji zadne extra features, ktere ip
ma a ifconfig
ne, nebo proste ifconfig
just works.
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
root
a, používám standardní distribuční inicializační skripty – a přesto mi ifconfig
ukazuje jednu přidělenou ip adresu, přestože rozhraní má ve skutečnosti přidělené ip adresy 3. Takže nestačí mít roota, ještě je potřeba přesně vědět, jak fungují distribuční mechanizmy pro nastavení sítě, nebo si je předělat po svém.
Vzhledem k tomu, na co všechno by si měl člověk při používání ifconfig
u dávat pozor a co všechno by si měl pamatovat, nebude používání ifconfig
u dáno vrozenou leností, ale přesně naopak, vrozeným workoholismem…
ifconfig
.
ip link set eth0 down
'?
main
, vícenásobné IP adresy dávat zásadně bez labelů atd. Až by se pak někteří spálili, třeba by jim konečně došlo, že není pravda, že „si vystačí s ifconfig
em“.
Moje distribuce (Slackware 10.0) používá ifconfig
ve startovacích skriptech.
Já Patrikovi věřím!
ip
miesto ifconfig
, ale rád by som počul odpoveď na 2 otázky:
1. čo používajú boot-skripty tvojej distribúcie, ip
alebo ifconfig
?
2. ktoré "veľké" distribúcie používajú ip
a ktoré ifconfig
?
ip budu milerad pouzivat, az bude vracet citelne vysledky.
841: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast qlen 3 link/ppp inet xxx.xxx.xxx.xxx peer xx.xx.xx.xx/xx scope global ppp0
ppp0 Link encap:Point-to-Point Protocol inet addr:xx.xxx.xxx.xxx P-t-P:xxx.xxx.xxx.xxx Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:2347188 errors:0 dropped:0 overruns:0 frame:0 TX packets:2368029 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:1276710414 (1217.5 Mb) TX bytes:1779857343 (1697.4 Mb)
ifconfig
v češtině, tak to třeba taky trošku pomůže.
Hlavně se snažím lidem říkat, že ifconfig je nefunkční.a můžeš nám laskavě vysvětlit, proč se tak urputně snažíš lidem lhát?
Ne to ty tvrdis ze ifconfig je nefunkcni coz neni uplna pravda, ifconfig je nefunkcni ve specifickych pripadech.Já bych spíše řekl, že vlivem emulační vrstvy je
ifconfig
funkční jen ve specifických případech ip
.
A jste si tím stoprocentně jistý?Jsem si tim dostatecne jist na to abych to v klidu pouzival, kdyz se to hodi. Az uvidim protipriklad, tak ho zapracuji do modelu.
ifconfig
u, kdy ji můžete použít, kdy ne, co musíte jak přiohnout, abyste s ifconfig
em dosáhl požadovaného výsledku? Nebo používáte takový ten windowsácký přístup – něco jsem napsal, ono to něco udělalo, nevím co a nevím proč, ale vypadá to, že to funguje, tak to možná bylo správně, a kdyby ne, tak vezmu větší kladivo…
Nebo používáte takový ten windowsácký přístup – něco jsem napsal, ono to něco udělalo, nevím co a nevím proč, ale vypadá to, že to funguje, tak to možná bylo správně, a kdyby ne, tak vezmu větší kladivo…z tvého tónu soudím, že ty tento "windowsácký přístup" nepoužíváš, a že poctivě čteš zdrojáky každého kusu software, který používáš (včetně specifikací hardware, s nímž komunikuje), abys přesně věděl, co a proč to, co jsi napsal, udělalo - jsem rád, že to někdo v komunitě dělá, ale jaksi nechápu, kde při tom bereš čas, abys ještě stíhal flejmovat na ábíčku ... např. čtení zdrojáků aktuálního jádra by trvalo kolem 70 dní nonstop při slušném tempu 50 znaků za sekundu, a to určitě není největší kus kódu, co máš nainstalovaný nebo je to spíš tak, že tak jako my, staromilní superlíní idioti, důvěřujeme dokumentaci ifconfigu (a tomu, že nám do systému opravdu nikdo jiný pokoutně nehrabe za pomoci jiných nástrojů, a že pro domácí připojení fakt nepotřebujeme nastavit více než jednu adresu na rozhraní a default gateway), tak stejně tak i ty důvěřuješ ip?
ifconfig
, stačí, že někdo na počítači spustí ip
. Aby přestalo fungovat jádro, musí do něj někdo zavléci nějaký škodlivý kód. Myslíte, že obojí má stejnou pravděpodobnost?
Pokud chcete spoléhat na to, že vám ifconfig
zase bude fungovat, klidně na to spoléhejte. Ale není zrovna moc zodpovědné přesvědčovat ostatní, aby používali ke konfiguraci sítě v aktuálních jádrech nástroj, který je určen k něčemu jinému. Ono totiž kdyby zastánci ifconfig
u každou obhajobu ifconfig
u začali rovnou popsáním celé pravdy o ifconfig
u (tj. vyjmenovali by všechny podmínky, které je nutné dodržet, aby fungoval), na jeho obhajobu by se dávno vykašlali – protože by si museli připadat blbě, kdyby měli napsat „buď můžete použít příkaz ip
, nebo za podmínek A a B a C a D můžete použít i příkaz ifconfig
, ale pokud kterákoli z těch podmínek splněna není, musíte stejně použít ip
“.
Ja treba jsem prepsal startovaci skripty svych systemu (Debian a OpenWrt) tak, aby pouzivali ip misto ifconfig.Je šance, že se ty "přepsané skripty" (předpokládám ifupdown) dostanou do upstreamu? PS: značka blockquote a "tlačítko" BQ mají něco do sebe.
nebo nutnost trefovat se presne mezi dva tagy pri pastovani textu mysi
Praktičtější je označit příslušný text a pak kliknout na tlačítko.
Jo, bud pouziti 23 znaku namisto dvou, nebo nutnost trefovat se presne mezi dva tagy pri pastovani textu mysi. I kdyz pri citovani vetsich textu je taky pouzivam.Tak to používejte opačně – nejdříve vložte text, označte jej a pak použijte
BQ
. Ono se to pak lépe čte…
ipfwadm
, nebo pro nahrávání modulů do 2.6 používal modutils
, a někdo jej upozornil, že by bylo lepší používat iptables
resp. module-init-tools
– kolik by se asi našlo těch, kteří by napsali, že to je zbytečné, a že ipfwadm
nebo modutils
na základní věci stačí? A pak by z nich teprve dál v diskuzi postupně začali lézt podmínky, za kterých to vlastně platí…
Tam je napsáno, že pro konfiguraci síťování v jádře je zbytečné používat příkaz, který je k tomu určen,Coz je neco uplne jineho nez presvedcovani ostatnich. Ten prispevek bych chapal tak, ze v tomto konkretnim pripade pouziti ip nic noveho neprinese, a tak je zbytecne ho pouzit, pokud by to bylo slozitejsi (treba kvuli nutnosti nastudovat novy prikaz), nez pouziti ifconfigu. Ten prispevek zrejme nevyzyva ostatni, aby pouzivali ifconfig namisto ip, spis jen odmita presvedcovani k pouzivani ip v kazde situaci.
nebo pro nahrávání modulů do 2.6 používal modutilsMyslim, ze modutils vubec nejde pouzit k zavadeni modulu pro jadro 2.6.
Myslim, ze modutils vubec nejde pouzit k zavadeni modulu pro jadro 2.6.
Ve světle diskusí ohledně obsolentních síťových utilit bych to cynicky označil za velice moudré rozhodnutí.
Ten prispevek zrejme nevyzyva ostatni, aby pouzivali ifconfig namisto ip, spis jen odmita presvedcovani k pouzivani ip v kazde situaci.A k čemu je takový příspěvek dobrý? Že si autor příspěvku používá program k něčemu jinému, než k čemu je určen, to je jeho problém. Ale proč vyzývá ostatní, že v některých případech mohou dělat stejnou hloupost, jako on?
Ten prispevek bych chapal tak, ze v tomto konkretnim pripade pouziti ip nic noveho neprinese, a tak je zbytecne ho pouzit, pokud by to bylo slozitejsi (treba kvuli nutnosti nastudovat novy prikaz), nez pouziti ifconfigu.To ale pořád chápete špatně. K nastavování IP síťování v aktuálním jádře Linuxu slouží příkaz
ip
. To je základ, ne nic „nového“ nebo „navíc“. Učit se něco navíc znamená naučit se ifconfig
, ne opačně.
Proč to nenapíšete stejně, jako píšete onebo pro nahrávání modulů do 2.6 používal modutilsMyslim, ze modutils vubec nejde pouzit k zavadeni modulu pro jadro 2.6.
ip
a ifconfig
? Třeba „v případě jádra 2.6 doporučuji použít raději module-init-tools
– sice je nutné nastudovat nový příkaz, ale není to zbytečné, získáte s tím novou vlastnost – bude to fungovat“.
Asi si patchnu modutils
aby s nimy šlo v úterý nahrávat nějaký konkrétní modul, a pak s tím začnu otravovat v každé diskuzi o module-init-tools
, že je to zbytečně složitý příkaz, a že místo toho můžou použít jednodušší modutils
.
Třeba hned na začátku tohoto vlákna.prosím, zdrž se diskuse, dokud neuděláš něco se svým zrakem, zjevně tě šálí ... začátek tohoto vlákna je totiž tady, což jaksi dává celé diskusi úplně jiný kontext, ve kterém pak některé tvoje příspěvky vypadají vyloženě hloupě, viz co jsem říkal výše na téma vkládání lidem do úst toho, co neřekli
Aby přestal fungovatmůžeš prosím uvést konkrétní postup, jak si toto zneprovoznění ifconfigu představuješ?ifconfig
, stačí, že někdo na počítači spustíip
.
Ale není zrovna moc zodpovědné přesvědčovat ostatní, aby používali ke konfiguraci sítě v aktuálních jádrech nástroj, který je určen k něčemu jinému.no a podle mě zase není příliš morální vkládat jiným do úst to, co neřekli ...
Vám tohle vážně připadá vpořádku?Aby přestal fungovatmůžeš prosím uvést konkrétní postup, jak si toto zneprovoznění ifconfigu představuješ?ifconfig
, stačí, že někdo na počítači spustíip
.
Takže všichni, kdo tady vyjmenovávají, za jakých podmínek jeAle není zrovna moc zodpovědné přesvědčovat ostatní, aby používali ke konfiguraci sítě v aktuálních jádrech nástroj, který je určen k něčemu jinému.no a podle mě zase není příliš morální vkládat jiným do úst to, co neřekli ...
ifconfig
funkční, a že zrovna jim pro jejich použití funguje (aspoň si to myslí), to dělají proto, aby upozornili, že ifconfig
je zastaralý a pokud někdo nemá nějaký dobrý důvod, proč ho používat, měl by se mu vyhnout?
sorry, ale končím diskusi, dokud se nenaučíš číst - ptal jsem se na postup, dávat odkaz na nějaký výsledek je vážně úplně mimoVám tohle vážně připadá vpořádku?Aby přestal fungovatmůžeš prosím uvést konkrétní postup, jak si toto zneprovoznění ifconfigu představuješ?ifconfig
, stačí, že někdo na počítači spustíip
.
Aby přestal fungovat ifconfig, stačí, že někdo na počítači spustí ip....
Postup je jednoduchý – zadat více ip adres pro jedno rozhraní.aha, takže nestačí pouze spustit
ip
, je potřeba ještě něco zadávat ... čímž jaksi ale popíráš co jsi řekl předtím, ne?
a btw, těch více adres pro jedno rozhraní jde zadat, i když ten "někdo" není root?
ip
.
Celou dobu se bavíme o tom, že uživatel je efektivně root
, bez toho nemůže s konfigurací sítě v jádru manipulovat.
Pokud to chcete úplně přesně – pokud root
nebo někdo/něco s jeho pověřením použije ip
jinak, než jistým přesně definovaným způsobem, nemůže si následně být nikdo při použití ifconfig
jist, zda dostává správné výsledky.
Přičemž ano, root
si může kontrolovat a pamatovat, že se na jím spravovaném počítači ip
vůbec nepoužívá, nebo se používá jen přesně definovaným způsobem, ovšem to, že si root
musí kontrolovat a pamatovat něco navíc, to rozhodně nepovažuju za výhodu a usnadnění. Nehledě na to, že drtivá většina lidí používajících na linuxu ifconfig
neví, které to jsou vlastně ty podmínky, za kterých je možné ifconfig
použí, a spoléhají na to, že „tohle ještě projde“.
aha, takže nestačí pouze spustit ip, je potřeba ještě něco zadávat ... čímž jaksi ale popíráš co jsi řekl předtím, ne?Většina uživatelů nějaký příkaz spouští proto, aby tím něco udělali, takže když začínáš mluvit o nutnosti něco zadávat (která je téměř automatická), pravděpodobně ti dochází rozumné argumenty.
Většina uživatelů nějaký příkaz spouští proto, aby tím něco udělali,ano, až potud dobrý ... můžu si například spustit
ip
, abych tím udělal to, že si budu moct přečíst (že mi vypíše) "usage"
takže když začínáš mluvit o nutnosti něco zadávat (která je téměř automatická),jde o to "téměř" - Filip to "spuštění" uvedl jako podmínku postačující, což je sice z tvého hlediska možná nepodstatný detail, ale v kontextu diskuse je to sakra důležité ... on tu totiž argumentuje ve smyslu, že ifconfig se vlastně zneprovozní "sám od sebe", ale tenhle detail je právě podstatný v tom, že "spustit" ip může každý, ale "zadat další adresu pomocí" ip může jenom root, a pokud není náměsíčnej, tak o tom ví, a tedy chování ifconfigu, který adresu zadanu způsobem pro něj nekompatibilním nevypíše, bude pro toho roota opět deterministické, a nikoli že "sám od sebe" přestal fungovat a root se o tom ani nedozví navíc to přidání adresy je operace, kterou troufnu si odhadnout že více než tři čtvrtiny uživatelů nikdy nepoužijí, stejně jako další vifikundace, takže pro většinu uživatelů bude ifconfig fungovat, lze pouze říci, že v (nepočetných) speciálních případech fungovat nebude, nikoli že nebude fungovat obecně - zajisté by se dal najít příklad, kdy ani příkaz ip nebude pracovat tak, jak od něj někteří očekávají, přesto nikdo, ani příznivci ifconfigu, netvrdí, že ip obecně nefunguje
pravděpodobně ti dochází rozumné argumenty.nu nevím, mě nepřijde pravděpodobné, že poukazuje-li někdo na chybu v argumentaci druhého, činí tak pouze z nedostatku vlastních argumentů ... ale zkušenosti, i ty o chování v diskusi, jsou od toho, aby se lišily, že :)
jde o to "téměř" - Filip to "spuštění" uvedl jako podmínku postačující, což je sice z tvého hlediska možná nepodstatný detail, ale v kontextu diskuse je to sakra důležité ... on tu totiž argumentuje ve smyslu, že ifconfig se vlastně zneprovozní "sám od sebe", ale tenhle detail je právě podstatný v tom, že "spustit" ip může každý, ale "zadat další adresu pomocí" ip může jenom root, a pokud není náměsíčnej, tak o tom ví, a tedy chování ifconfigu, který adresu zadanu způsobem pro něj nekompatibilním nevypíše, bude pro toho roota opět deterministické, a nikoli že "sám od sebe" přestal fungovat a root se o tom ani nedozvíPíšete sice o kontextu diskuze, ale sám jste zcela mimo kontext. Kontextem této diskuze je to, že další ip adresu rozhraní nemusí nastavit
root
jenom osobně zadáním příkazu ip
v příkazovém řádku, ale to samé může v jeho režii udělat třeba distribuční inicializační skript. Takže pokud si chce být root
jist, že může používat ifconfig/route
, neměl by spoléhat jen na to, že si pamatuje, co se systémem dělal sám, ale musí znát i aktuální implementaci inicializačních skriptů pro síť. Třeba v Gentoo ty skripty fungují tak, že pokud je k dispozici balík iproute2
, použije se ten – a skripty nenastavují dalším ip adresám žádný label. Takže pokud má nějaké rozhraní nastavené více ip adres, a následně si nainstalujete iproute2
, po restartu síťování vám z ifconfig
u najednou ip adresy zmizí. Přičemž než vás napadne argumentovat tím, že se ty skripty chovají špatně – ne, nechovají, chyba je na straně ifconfig
u.
navíc to přidání adresy je operace, kterou troufnu si odhadnout že více než tři čtvrtiny uživatelů nikdy nepoužijí, stejně jako další vifikundace, takže pro většinu uživatelů bude ifconfig fungovat, lze pouze říci, že v (nepočetných) speciálních případech fungovat nebude, nikoli že nebude fungovat obecně - zajisté by se dal najít příklad, kdy ani příkaz ip nebude pracovat tak, jak od něj někteří očekávají, přesto nikdo, ani příznivci ifconfigu, netvrdí, že ip obecně nefungujeAž budete schopen sestavit úplný výčet těch „nepočetných speciálních případů“, kdy
ip
narozdíl od ifconfig
funguje, a až najdete nějaký příklad, kdy ip
nefunguje v souladu s dokumentací (jako je tomu u ifconfig
), můžeme v debatě pokračovat. Do té doby mám za to, že ip
funguje v souladu s dokumentací vždy (až na programátorské chyby), zatímco ifconfig/route
nefunguje na moderních linuxových jádrech v souladu s dokumentací téměř nikdy (protože operace popisované v dokumentaci jádro vůbec neumí), přičemž občas některé operace s ifconfig
em udělají to, co by od nich člověk očekával, ale nikdo vlastně pořádně neví, které operace a za jakých podmínek to jsou. Což mne obojí vede k tomu, že by na moderním linuxovém jádru měl ke konfiguraci síťování každý používat iproute2
, a ifconfig
tam používat pouze ve výjimečných případech, pokud k tomu má dobrý důvod – a rozhodně by se tím neměl chlubit, ale měl by se někde v koutě tiše stydět.
Protože je to zhruba stejné, jako chlubit se tím, že jsem nějaký problém vyřešil restartem počítače. Ano, zmáčknot reset je rychlejší než psát nějaké příkazy nebo editovat konfiguráky, někdy to dokonce i pomůže, ale rozhodně to není doporučeníhodné ani věc, kterou by se někdo měl chlubit.
nebo je to spíš tak, že tak jako my, staromilní superlíní idioti, důvěřujeme dokumentaci ifconfigu
Problém je, že dokumentace příkazu ifconfig
byla z větší části psána v době, kdy ještě fungoval tak, jak měl. Od té doby se situace změnila, ale dokumentace to v dostatečné míře neodráží. Proto ji rozhodně nelze považovat za dostatečně důvěryhodný zdroj.
a tomu, že nám do systému opravdu nikdo jiný pokoutně nehrabe za pomoci jiných nástrojů, a že pro domácí připojení fakt nepotřebujeme nastavit více než jednu adresu na rozhraní a default gateway
Trochu moc předpokladů na můj vkus. A to jste ještě zapomněl, že problémy vám může způsobit nejen někdo, kdo by se vám "pokoutně hrabal do systému", ale třeba inicializační skripty, které jsou jeho součástí. Nebylo by nakonec jednodušší používat příkaz, který tak silné předpoklady nevyžaduje, dělá co má a navíc má ještě konzistentní syntaxi?
Tento windowsacky pristup se spis ukazuje v prispevcich, ktere predpokladaji, ze konfiguracni skripty delaji za zady administratora neco, o cem administrator nema potuchy (napriklad konfiguruji rozhrani tak, aby na nem nefungoval korektne ifconfig).Chybí vám tam „…za zády administrátora používajícího
ifconfig
…“. Za zády administrátora, který používá ip
, nemohou konfigurační skripty se sítí udělat nic, protože s ip
administrátor vidí celé nastavení Máš snad nějaké protipříklady k těm mým? Nebo tady jen hloupě mlžíš?ehm, hloupě mlžíš akorá ty - napsal jsi v reakci na blog, že ifconfig je nefunkční, ovšem autorovi blogu zjevně fungoval takže je na tobě, abys dokázal, že mu nefungoval - příklady na stránce, kam jsi odkázal, nic takového nedokazují (nepotřeboval pracovat s virtuálím rozhraním ani mít více adres na jednom rozhraní), takže nevím, proč bych k nim měl dávat "protipříklady" ... nikdo zde snad netvrdí, že ifconfig se chová jinak než v tebou uvedených příkladech, ale to, že něco neumí nebo dělá jinak než by sis přál, není ekvivalentní s tvrzením, že nefunguje
napsal jsi v reakci na blog, že ifconfig je nefunkční, ovšem autorovi blogu zjevně fungoval
To, že příkaz při v jednom konkrétním případě udělá, co se od něj očekává, ještě neznamená, že je funkční.
ifconfig
_vždycky_ to, co jsem po něm požadoval. Tudíž, obecné tvrzení o tom, že je ifconfig
nefunkční, nejenom odmítám, ale také jej považuji za lež. To, že v jeho linuxové implementaci jsou chyby, které _v určitých situacích_ působí problémy, nemám problém uznat.
ifconfig
. Můžete mi říct, k čemu je dobrý požadavek „ukaž mi některé ip adresy, které má přiřazeno toto zařízení“, nebo „zobraz mi jedinou z mnoha platných routovacích tabulek“?
ifconfig
nějaké specifické požadavky, domníváte se, že ifconfig
je plní (domníváte proto, že bez ip
to nejste schopen ověřit), a na základě toho považujete tvrzení, že ifconfig
obecně nefunguje, za lež?
s výjimkou některých situacíPročtěte si tuhle diskuzi, abyste získal aspoň trochu přehled, které všechny podmínky musí být splněny, aby
ifconfig
fungoval.
Chybná analogie.ó ne, mýlíš se, analogie je to dobrá - Newtonovy zákony za určitých podmínek fungují, stejně jako funguje ifconfig, ale teorie relativity toho zná víc, stejně jako ip problém je ovšem v logice, jaá je na ní aplikována - zjednodušeně, ty tvrdíš: Subjekt A mi vždy fungoval, tudíž nelze říci, že subjekt A je obecně nefunkční. zatímco Filip si z toho udělal: Subjekt X mi vždy fungoval, tudíž lze říci, že subjekt Y je lež. - je zjevné, že Filip v rozporu se svým tvrzením nepostupuje podle tvojí logiky, neboť ty z vlastnosti jednoho subjektu vyvozuješ tvrzení o něm, zatímco Filip z vlastností jednoho subjektu vyvozuje tvrzení o subjektu jiném
problém je ovšem v logice, jaá je na ní aplikována - zjednodušeně, ty tvrdíš: Subjekt A mi vždy fungoval, tudíž nelze říci, že subjekt A je obecně nefunkční. zatímco Filip si z toho udělal: Subjekt X mi vždy fungoval, tudíž lze říci, že subjekt Y je lež. - je zjevné, že Filip v rozporu se svým tvrzením nepostupuje podle tvojí logiky, neboť ty z vlastnosti jednoho subjektu vyvozuješ tvrzení o něm, zatímco Filip z vlastností jednoho subjektu vyvozuje tvrzení o subjektu jinémTo jste musel hodně dlouho vymýšlet, že? Já tvrdím, že pokud
ifconfig
funguje pouze za určitých podmínek (které nejsou nikde uvedeny), a v ostatních případech dělá něco, co by dělat neměl (aniž by se o tom zmínil), nelze o něm obecně tvrdit, že je funkční. To že někomu ifconfig
za specifických podmínek funguje, nevypovídá vůbec nic o tom, zda funguje za jakýchkoli (obecných) podmínek.
To jste musel hodně dlouho vymýšlet, že?ne, to jsem vzal tady, pouze jsem
ifconfig
označil za subjekt A, a tady, kde jsem "Newtonovy gravitační zákony" označil za subjekt X a "teorii relativity" za subjekt Y ... no a pak jsem - beze změny smyslu! - sladil formulace, aby to vedle sebe lépe vyniklo; nicméně i bez jakékoliv reformulace je naprosto zjevné, že v prvním příspěvku se mluví pouze o jedné věci, zatímco ve druhém o dvou různých, takže nelze říci, že druhý je modelován podle logiky prvního
ifconfig
funguje v některých případech, nelze usuzovat, že bude fungovat ve všech případech, tj. že funguje obecně). Naopak pokud vím, že podmnožina má nějakou vlastnost, můžu na základě toho usoudit, že některé podmnožiny její nadmnožiny takovou vlastnost mají – takže pokud vím, že existuje alespoň jeden případ, kdy ifconfig
nefunguje, musím o ifconfig
u obecně předpokládat, že nefunguje. Teprve pokud vymezím nějaké případy použití a ověřím, že za těchto podmínek ifconfig
funguje, můžu prohlásit – o fungování či nefungování ifconfig
za obecných podmínek nelze rozhodnout (tudíž musím předpokládat, že nefunguje, nebo to musím pokaždé ověřit), za určitých specifických podmínek lze ifconfig
prohlásit za funkční.
To, že v jednom konkrétním případě neudělá, co se od něj očekává, ještě neznamená, že je nefunkční.ehm, tos ale poněkud nepochopil, o čem tady pánové hovoří ... tady nejde o to, zda dělá nebo nedělá, co se od něj očekává, nýbrž o to, že neumí udělat toasty, ehm, tedy že nedělá to, co by někteří diskutující chtěli aby dělal
hm, jenže on to potvora, ke vší smůle, udělá nejen v jednom konkrétním případě, ale za stejných okolností pokaždé :-pnapsal jsi v reakci na blog, že ifconfig je nefunkční, ovšem autorovi blogu zjevně fungovalTo, že příkaz při v jednom konkrétním případě udělá, co se od něj očekává, ještě neznamená, že je funkční.
ifconfig
u očekáváte, že vypíše některé IP adresy, které má rozhraní přiřazeno?
root@rybicka:~# ip route 192.168.4.0/24 dev wlan0 proto kernel scope link src 192.168.4.85 default via 192.168.4.81 dev wlan0 root@rybicka:~# route Směrovací tabulka v jádru pro IP Adresát Brána Maska Přízn Metrik Odkaz Užt Rozhraní 192.168.4.0 * 255.255.255.0 U 0 0 0 wlan0 default akvarko.blabla. 0.0.0.0 UG 0 0 0 wlan0
-s
Proč nefunkční ifconfig?hm, tady někdo neumí číst, neb ifconfig kolegovi zjevně fungoval, anebo se pokouší o FUD
Proč nefunkční ifconfig?Hele, pridej na tu stranku vic duvodu a pak muzes zacit presvedcovat ostatni. Ten tvuj jedinej priklad s vice IP adresama na to nestaci, zvlast kdyz muze kazdej pouzivat ip-aliasy pomoci ifconfigu. Ty ostatni duvody od Michala Kubecka neberu jako duvody, ale jsou to plky. Napsal jsem to do diskuze - jsou to jenom kecy "nefunguje", "je spatne ho pouzivat", "ifconfig funguje spatne, ip funguje dobre" - zadne skutecne priklady, zadne kunkretni duvody. Pokud si udelam BASH nastav-ip.sh a bude brat jenom dva argumenty zarizeni a IP-adresu, tak taky nebude fungovat jako "ip", ale bude delat to, co potrebuju a proto ho budu pouzivat na to, na co mi bude stacit. Kdyz budu potrebovat neco vic, pouziju ifconfig nebo i pripadne ip.
$ ifconfig eth0 Zapouzdření:Ethernet HWadr 00:0A:E4:5E:F6:0E inet adr:192.168.118.130 Všesměr:192.168.118.255 Maska:255.255.255.0 AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ BĚŽÍ MULTICAST MTU:1500 Metrika:1 RX packets:296507 errors:0 dropped:0 overruns:0 frame:0 TX packets:187188 errors:0 dropped:0 overruns:0 carrier:0 kolizí:0 délka odchozí fronty:1000 RX bytes:381107596 (363.4 Mb) TX bytes:18348809 (17.4 Mb) Přerušení:18 Vstupně/Výstupní port:0x800 lo Zapouzdření:Místní smyčka inet adr:127.0.0.1 Maska:255.0.0.0 AKTIVOVÁNO SMYČKA BĚŽÍ MTU:16436 Metrika:1 RX packets:445 errors:0 dropped:0 overruns:0 frame:0 TX packets:445 errors:0 dropped:0 overruns:0 carrier:0 kolizí:0 délka odchozí fronty:0 RX bytes:297690 (290.7 Kb) TX bytes:297690 (290.7 Kb) $ ping -nc1 -I eth0 10.93.51.1 PING 10.93.51.1 (10.93.51.1) from 10.93.51.196 eth0: 56(84) bytes of data. 64 bytes from 10.93.51.1: icmp_seq=1 ttl=64 time=0.464 ms --- 10.93.51.1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.464/0.464/0.464/0.000 msMně tedy připadá, že je něco rozbité, když
ping
může odesílat pakety se zdrojovou ip adresou, kterou nemá podle ifconfig
počítač vůbec přidělen, a navíc na ně dostane i odpověď.
ifconfig
vysvětlí, že tento příkaz se (ve svých současných verzích) na jednu stranu i nadále tváří, jako by se IPv4 adresy rozhraní nastavovaly (jedno rozhraní - jedna adresa), ale na druhé straně se IPv6 adresy přidávají a odebírají. Podotýkám, že ve skutečnosti funguje oboje stejně - adresy se přidávají a odebírají, u IPv4 stejně jako u IPv6.
ifconfig
se přece používá jenom na základní věci, a IPv6 je rozhodně pokročilé síťování
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.