Portál AbcLinuxu, 20. dubna 2024 05:32
IP: 172.16.85.6 maska: 255.255.255.0 brána: 172.16.85.254 dns: 172.16.85.254 195.12.128.1zadám:
route add -net 172.16.85.0 netmask 255.255.255.0 dev eth0Príkaz zapíše v poriadku, ale keď napíšem:
route add default gw 172.16.85.254tak mi vypíše "SIOCADDRT: Network is unreachable" a ja si uz s tým neviem poradiť. Prečítal som posty aj na tomto fóre, aj som čítal manuálové stránky, ale nezdá sa mi, že by som robil niekde chybu. Dúfam, ze niekoho nenaštvem s milióntnou otázkou na túto tému, ale ja si uz neviem rady.
RTNETLINK answers: File exists
', tohle spíš vypadá, jako kdyby buď chyběla položka, podle které by se dalo dostat na tu bránu, nebo bylo příslušné rozhraní down.
ifconfig eth0 [IPadresa] netmask [maska]a potom
route add -net xxx.xxx.xxx.0 netmask [maska] dev eth0 route add default gw xxx.xxx.xxx.254tak to chodilo. Samozrejme treba mať nastavene DNS v /etc/resolv.conf. Ďakujem za radu a prajem príjemný deň.
ifconfig
a spol.). Každý svého štěstí strůjcem… :-)
ip addr add 111.111.111.111/26 brd + dev eth0 ip route add default via 111.111.111.65
Použití ifconfig
je špatné proto, že se jedná o nástroj, který vychází z koncepce síťových rozhraní, která se vyskytovala naposledy v jádrech řady 2.0. Od řady 2.2 je koncepce zcela odlišná a měly by se používat tomu odpovídající nástroje.
Problémy jsou například s tím, že při přiřazování více adres jednomu rozhraní ifconfig
stále pracuje s jakýmisi virtuálními rozhraními (např. eth0:0
), která ve skutečnosti neexistují a jsou emulována přes skutečné rozhraní (např. eth0
). To se projeví např. v okamžiku, kdy zkusíte fiktivnímu rozhraní eth0:0
nastavit nějaký příznak (např. ho shodit) nebo parametr (třeba MTU); ve skutečnosti tuto operaci provedete s eth0
, aniž byste o tom věděl. V kombinaci s další nectností, a to že ifconfig
neumožňuje odebrat IP adresu, aniž by shodil rozhraní, to vede k dosti nepříjemným zážitkům (třeba pokud si hrajete s dalšími adresami na rozhraní, přes které jste na počítač přihlášen). A pak také příkazy jako ifconfig
nebo route
umožňují nastavit jen velmi malou část toho, co Linux umí - v podstatě jen to, co bylo už v jádrech řady 2.0.
To právě vůbec jasné není. Jedna věc je to, jestli je rozhraní "nahozeno" (má příznak UP), druhá věc je, jestli má přiřazeny nějaké adresy. Rozhraní může být UP a nemít přiřazeny žádné IP adresy a zrovna tak může být down a mít přiřazeno několik adres. Příkaz ifconfig
tohle nerozlišuje. Navíc ve skutečnosti existuje jedině interface eth0
, všechny ty eth0:*
jsou jen fikce, kterou vám ifconfig
simuluje.
kdyby to bylo neco stareho jako treba ipchains, tak by ho defaultne nedavali do novych distribuci, ne?
Do distribucí se dávají i daleko starší věci, pro zpětnou kompatibilitu. Například dodnes je v jádrech podpora pro a.out, který už se prakticky nepoužívá někdy od roku 1995. Jenže zatímco vás nikdo nebude učit, že máte kompilovat a linkovat programy ve formátu a.out proti knihovně libc verze 4, spousta tutorialů vám dodnes do hlavy hustí, že se síťová rozhraní konfigurují příkazem ifconfig
- což je tragédie. Mimochodem, ipchains patří do řady 2.2, to už byl ifconfig
obsolete, ten se měl používat naposledy s 2.0.
Ale můžete, je to velmi jednoduché, příkazem 'ip link set eth1 up
rozhraní nahodíte (nastavíte mu příznak UP), ale nebude mít žádnou IP adresu. Pak si na něm můžete spustit třeba tcpdump
nebo ethereal
a sledovat provoz. Můžete chtít třeba komunikovat jen pomocí IPX/SPX nebo jen pomocí IPv6.
Takove rozhrani me vubec nezajima a nikdy jsem nemel nakonfeno rozhrani, ktere mi k nicemu neni (ani alias).
Nemusí jít o permanentní stav, můžete ho chtít deaktivovat dočasně. Výhoda je, že kvůli tomu nemusíte zrušit všechny přiřazené adresy a pak je tam zase vracet.
Kdyz shodim eth0, shodim i vsechny jeho aliasy (eth0:0, eth0:1...)
To je právě ten rozdíl mezi pojetím v jádrech 2.0 a v novějších jádrech. Ve skutečnosti o aliasy nejde, všechny adresy jsou rovnocenné (kromě těch, které mají příznak secondary
). Můžete přidávat, odebírat nebo měnit jednotlivé adresy (IPv4 i IPv6), aniž by se to ostatních jakkoli dotklo.
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.