abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:00 | IT novinky

    Programovací jazyk JavaScript (Wikipedie) dnes slaví 30 let od svého oficiálního představení 4. prosince 1995.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Bezpečnostní upozornění

    Byly zveřejněny informace o kritické zranitelnosti CVE-2025-55182 s CVSS 10.0 v React Server Components. Zranitelnost je opravena v Reactu 19.0.1, 19.1.2 a 19.2.1.

    Ladislav Hagara | Komentářů: 2
    dnes 02:44 | Komunita

    Bylo rozhodnuto, že nejnovější Linux 6.18 je jádrem s prodlouženou upstream podporou (LTS). Ta je aktuálně plánována do prosince 2027. LTS jader je aktuálně šest: 5.10, 5.15, 6.1, 6.6, 6.12 a 6.18.

    Ladislav Hagara | Komentářů: 0
    dnes 02:22 | Nová verze

    Byla vydána nová stabilní verze 3.23.0, tj. první z nové řady 3.23, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 3
    včera 18:11 | Nová verze

    Byla vydána verze 6.0 webového aplikačního frameworku napsaného v Pythonu Django (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 05:55 | Nová verze

    Po více než 7 měsících vývoje od vydání verze 6.8 byla vydána nová verze 6.9 svobodného open source redakčního systému WordPress. Kódové jméno Gene bylo vybráno na počest amerického jazzového klavíristy Gene Harrise (Ray Brown Trio - Summertime).

    Ladislav Hagara | Komentářů: 14
    včera 05:11 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za listopad (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 01:55 | Nová verze

    Google Chrome 143 byl prohlášen za stabilní. Nejnovější stabilní verze 143.0.7499.40 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 13 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    2.12. 19:33 | Nová verze

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,2 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,42 %. Procesor AMD používá 66,72 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 0
    2.12. 15:22 | IT novinky

    Canonical oznámil (YouTube), že nově nabízí svou podporu Ubuntu Pro také pro instance Ubuntu na WSL (Windows Subsystem for Linux).

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (47%)
     (19%)
     (18%)
     (23%)
     (15%)
     (25%)
     (16%)
     (18%)
    Celkem 426 hlasů
     Komentářů: 18, poslední 2.12. 18:34
    Rozcestník

    Dotaz: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?

    28.9.2011 13:56 Franta Hanzlík
    rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    Přečteno: 961×
    Vždycky jsem si myslel (a podle man stránek se zdá), že by příkazy:
    ping -I eth1 CÍLOVÁIP
    a
    ping -I ipaddr(eth1) CÍLOVÁIP
    
    měly být ekvivalentní. Ale zdá se nejsou, na Fedora 14 i686 boxu se to chová takto:
    # ping -I 10.128.254.2 -c 3 -nn 90.183.38.60; echo -e '\n'; ping -I eth1 -c 3 -nn 90.183.38.60
    PING 90.183.38.60 (90.183.38.60) from 10.128.254.2 : 56(84) bytes of data.
    64 bytes from 90.183.38.60: icmp_req=1 ttl=56 time=4.66 ms
    64 bytes from 90.183.38.60: icmp_req=2 ttl=56 time=12.7 ms
    64 bytes from 90.183.38.60: icmp_req=3 ttl=56 time=4.50 ms
    --- 90.183.38.60 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 4.502/7.310/12.769/3.861 ms
    
    
    PING 90.183.38.60 (90.183.38.60) from 10.128.254.2 eth1: 56(84) bytes of data.
    From 10.128.254.2 icmp_seq=1 Destination Host Unreachable
    From 10.128.254.2 icmp_seq=2 Destination Host Unreachable
    From 10.128.254.2 icmp_seq=3 Destination Host Unreachable
    --- 90.183.38.60 ping statistics ---
    3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 1999ms
    pipe 3
    
    Interface eth1 má IP adresu 10.128.254.2 (ta je u ISP NATována 1:1 na veřejnou), na žádném interface nejsou použity IPv6 ani IP aliasy:
    # ip addr show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
    2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
        link/ether 00:30:4f:39:4b:49 brd ff:ff:ff:ff:ff:ff
        inet 10.128.254.2/29 brd 10.128.254.7 scope global eth1
    3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:08:c7:25:c7:53 brd ff:ff:ff:ff:ff:ff
        inet 10.3.60.10/24 brd 10.3.60.255 scope global eth2
    4: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:08:c7:19:3b:94 brd ff:ff:ff:ff:ff:ff
        inet 10.0.1.254/24 brd 10.0.1.255 scope global eth3
    5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:1e:8c:94:05:cd brd ff:ff:ff:ff:ff:ff
        inet 192.168.0.254/24 brd 192.168.0.255 scope global eth0
    6: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3
        link/ppp
        inet 90.187.57.21 peer 78.103.210.66/32 scope global ppp0
    
    Setkal se s tím někdo, resp. je pro to nějaké vysvětlení?

    Odpovědi

    pepe_ avatar 28.9.2011 15:16 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    Ubuntu 10.04 Jde oboje

    Nainstalovano : iputils-ping 3:20071127-2ubuntu1
    
    pepe@PC-Pepe:~$ uname -r
    2.6.38-10-generic
    pepe@PC-Pepe:~$ 
    
    
    pepe@PC-Pepe:~$ ping -I 10.10.10.1 -c 3 -nn 90.183.38.60; echo -e '\n'; ping -I eth0 -c 3 -nn 90.183.38.60
    PING 90.183.38.60 (90.183.38.60) from 10.10.10.1 : 56(84) bytes of data.
    64 bytes from 90.183.38.60: icmp_seq=1 ttl=52 time=20.3 ms
    64 bytes from 90.183.38.60: icmp_seq=2 ttl=52 time=22.0 ms
    64 bytes from 90.183.38.60: icmp_seq=3 ttl=52 time=23.3 ms
    
    --- 90.183.38.60 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2002ms
    rtt min/avg/max/mdev = 20.337/21.917/23.355/1.248 ms
    
    
    PING 90.183.38.60 (90.183.38.60) from 10.10.10.1 eth0: 56(84) bytes of data.
    64 bytes from 90.183.38.60: icmp_seq=1 ttl=52 time=23.8 ms
    64 bytes from 90.183.38.60: icmp_seq=2 ttl=52 time=29.3 ms
    64 bytes from 90.183.38.60: icmp_seq=3 ttl=52 time=23.2 ms
    
    --- 90.183.38.60 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 23.237/25.468/29.362/2.768 ms
    pepe@PC-Pepe:~$ 
    
    
    28.9.2011 16:05 Franta Hanzlík
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    U mne je to kernel 2.6.35.14-96.fc14.i686.PAE a ping je z iputils-20100418. A z ppp0 mi to pingá také oběma způsoby. A z interface eth2 (jeho privátní IP je u dalšího ISP také NATovaná 1:1 na veřejnou) také - když je nastaven jako default GW. A pokud nastavím jako default GW eth1, tak se situace obrátí - z eth1 chodí jak "ping -I eth1", tak "ping -I 10.3.60.10", a "ping -I eth2 ..." nechodí.

    Pro úplnost ještě uvedu ip tables a rules (toto chování bude nejspíš způsobeno nějakou kombinací těchto pravidel spolu s různým chováním ping při specifikaci jména interface nebo IP adresy):
    # ip route list table wifismrk
    90.187.57.21 dev ppp0  scope link 
    10.128.254.0/29 dev eth1  scope link  src 10.128.254.2 
    10.3.60.0/24 dev eth2  scope link 
    192.168.0.0/24 dev eth0  scope link 
    127.0.0.0/8 dev lo  scope link 
    default via 10.128.254.1 dev eth1 
    
    # ip route list table wifibudka
    90.187.57.21 dev ppp0  scope link 
    10.128.254.0/29 dev eth1  scope link 
    10.3.60.0/24 dev eth2  scope link  src 10.3.60.10 
    192.168.0.0/24 dev eth0  scope link 
    127.0.0.0/8 dev lo  scope link 
    default via 10.3.60.1 dev eth2 
    
    # ip route list table adsl
    90.187.57.21 dev ppp0  scope link  src 90.187.57.21 
    10.128.254.0/29 dev eth1  scope link 
    10.3.60.0/24 dev eth2  scope link 
    192.168.0.0/24 dev eth0  scope link 
    127.0.0.0/8 dev lo  scope link 
    default dev ppp0  scope link 
    
    # ip rule show
    0:	from all lookup local 
    32763:	from 90.187.57.21 lookup adsl 
    32764:	from 10.3.60.10 lookup wifibudka 
    32765:	from 10.128.254.2 lookup wifismrk 
    32766:	from all lookup main 
    32767:	from all lookup default 
    
    28.9.2011 15:23 Franta Hanzlík
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    Teď jsem ještě zkusil:
    ]# ping -R -I 10.128.254.2 -c 3 -nn 90.183.38.60
    PING 90.183.38.60 (90.183.38.60) from 10.128.254.2 : 56(124) bytes of data.
    
    --- 90.183.38.60 ping statistics ---
    3 packets transmitted, 0 received, 100% packet loss, time 1999ms
    
    (tj. oproti verzi která "chodí" je tam navíc přepínač "-R" /Record route/ - a s ním to také přestane ping-at). Pro upřesnění - zvenku z internetu lze na příslušnou IP adresu pingnout i navázat TCP spojení se službami na Linux boxu.
    28.9.2011 15:37 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    Tak tohle je pochopitelné. Record Route je nastavení volby Option IP hlavičky na hodnotu 7. Smysl mělo v počátcích internetu, kdy routovacích prvků bylo málo a také v internetu nebyli vnitřní nepřátelé. V současnosti mnoho routerů pakety s nastaveným RR zahazuje, protože tuto techniku je použít pro zkoumání struktury sítě a následně k útoku.
    28.9.2011 17:31 Franta Hanzlík
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    jj, máte pravdu. "-R" jsem asi nikdy dříve nezkoušel. Teď koukám, že takové pakety zřejmě zahodí Linux (ve výchozím nastavení) i několik RouterOSů které jsem teď zkusil - a jeden z nich je i 10.128.254.1 gateway na eth1 interface toho mého keplu.
    28.9.2011 16:14 Franta Hanzlík
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    Eh, omlouvám se, zapomněl jsem main route table, vypadá viz níže. A ještě:
    /proc/sys/net/ipv4/conf/*/rp_filter            = 0
    /proc/sys/net/ipv4/conf/*/accept_source_route  = 1
    
    # ip route list
    90.187.57.21 dev ppp0  scope link  src 90.187.57.21 
    78.103.210.66 dev ppp0  proto kernel  scope link  src 90.187.57.21 
    10.128.254.0/29 dev eth1  proto kernel  scope link  src 10.128.254.2 
    10.3.60.0/24 dev eth2  proto kernel  scope link  src 10.3.60.10 
    10.0.1.0/24 dev eth3  proto kernel  scope link  src 10.0.1.254 
    192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.254 
    169.254.0.0/16 dev eth1  scope link  metric 1002 
    169.254.0.0/16 dev eth2  scope link  metric 1003 
    169.254.0.0/16 dev eth3  scope link  metric 1004 
    169.254.0.0/16 dev eth0  scope link  metric 1005 
    default via 10.3.60.1 dev eth2 
    
    cynic_asshole avatar 29.9.2011 08:12 cynic_asshole | skóre: 28
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    [root@ganymed ~]# ping -I 139.84.66.15 -c 3 -nn 90.183.38.60; echo -e '\n'; ping -I re0 -c 3 -nn 90.183.38.60
    ping: -I, -L, -T flags cannot be used with unicast destination
    
    
    ping: invalid multicast interface: `re0'
    Neznáš nějakou linuxovou distribuci pro Windows?
    29.9.2011 10:05 Franta Hanzlík
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    Zdá se, že interface musí být schopno multicastingu, aby bylo možno použít "-I" volbu. U Linuxu jsou tak nastaveny asi všechny Ethernet interface:
    # ip addr show eth1
    2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
        link/ether 00:30:4f:39:4b:49 brd ff:ff:ff:ff:ff:ff
        inet 10.128.254.2/29 brd 10.128.254.7 scope global eth1
    
    Jak je to v BSD a co je re0 se přiznám že nevím.
    cynic_asshole avatar 29.9.2011 12:47 cynic_asshole | skóre: 28
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    [root@ganymed ~]# ifconfig re0
    re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
            options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
            ether 52:54:00:00:01:8f
            inet XX:XX:XX:XX:XX netmask 0xffffff00 broadcast XX:XX:XX:XX:XX:XX
            media: Ethernet autoselect (100baseTX <full-duplex>)
            status: active
    
    man ping
    …
    -I interface
    	     Source multicast packets with the given interface address.  This
    	     flag only applies if the ping destination is a multicast address.
    
    Taková je situace na BSD.

    Zkus si udělat na tom interface tcpdump v obou pokusech; podle mého v tom bude mít prsty ARP a směrování. V případě pingu z IP adresy bys měl vidět ARP dotaz na default GW a v případě pingu z interface bys měl vidět ARP dotaz na destinační IP adresu. V tom bude ten rozdíl. Bohužel si to nemůžu na ničem vyzkoušet sám, ale vycházím z logické úvahy.
    Neznáš nějakou linuxovou distribuci pro Windows?
    30.9.2011 09:10 Franta Hanzlík
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    Tak na Linuxu vypadá popis volby "-I" jinak:
    -I interface address
                  Set source address to specified interface address. Argument may be numeric IP address
                  or name of device. When pinging IPv6 link-local address this option is required.
    
    Takže žiju v tom, že tahle volba vynutí odeslání ICMP paketu ven daným (jménem rozhraní n. jeho IP adresou) rozhraním (programově asi přes volání bind()). A bude se to řešit standardním postupem - pokud je cíl na segmentu tohoto interface, tak se zjistí přes ARP; pokud ne a routovací tabulky specifikují gateway, tak se to pošle tam.
    V mém případě (cíl je mimo sítě stroje a routovaci tabulka "wifismrk" obsahuje
    10.128.254.0/29 dev eth1  scope link  src 10.128.254.2 
    default via 10.128.254.1 dev eth1 
    
    ) jsem očekával že to půjde na gateway 10.128.254.1 a ta to pošle dál. A hlavně, že "ping -I 10.128.254.2" a "ping -I eth1" se bude chovat stejně - že v druhém případě se jméno interface použije na získání jeho IP a dál je všechno stejné.
    Můžete Vaši logickou úvahu rozvinout? Ona je totiž asi správná - v případě specifikace interface opravdu z mašiny odchází ARP dotazy na MAC cíle (90.183.38.60), ačkoliv podle konfigurace eth1 by mělo být jasné, že na jeho segmentu cíl není.
    Jasno by asi vneslo mrknutí do zdrojáků a ev. nějaké trasování utility ping, ale asi mi to nestojí za ten čas - na tom Linuxu vše funguje jak má, tak proč to škrábat :). Jen mi to nějak nabouralo moje zažité představy. Traceroute má pro spcifikaci rozhraní přepínač "-i", a s tím to funguje bez problémů (a má zvlášť "-s" na specifikování zrdojové adresy). U mtr zase jde specifikovat jen odchozí adresa a podle toho se vybere interface. A já si napotvoru vyberu ping ;)
    Díky
    30.9.2011 10:24 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?

    Ten popis neodpovídá tomu, co je ve zdrojácích. Ty dva případy se ve skutečnosti řeší různě: zadáte-li adresu, nabinduje se socket na tu adresu, zadáte-li interface, použije se socket option SO_BINDTODEVICE. Což celkem dává smysl - už od jádra 2.2 je totiž formulace "adresa daného rozhraní" principiálně nesmyslná. O víkendu snad budu mít trochu času a zkusím ten váš problém zreprodukovat, abych zjistil, co se tam děje.

    Jen pro jistotu: nemůže vám ty pakety zahazovat netfilter?

    30.9.2011 10:50 Franta Hanzlík
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    Hmm, tak se zdá že traceroute to dělá "čistě" tím, že umožňuje zadat obojí, zařízení i source addr. A ping s "-I netdev" možná zdrojovou adresu vůbec nenastaví, takže proto ty ARP dotazy na cílovou adresu. Tadyhle je k tomu nějaký pokec (na tři kliky; asi by se toho našlo víc):

    http://codingrelic.geekhold.com/2009/10/code-snippet-sobindtodevice.html

    S tou "adresa daného rozhraní" se něco asi dělat dá, viz getifaddrs(). Netfilter pakety nezahazuje (je vypnutý).
    30.9.2011 11:01 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    S tou "adresa daného rozhraní" se něco asi dělat dá, viz getifaddrs().

    Všimněte si, že na konci je s a i popis v manuálové stránce říká "get interface addresses".

    30.9.2011 11:09 Franta Hanzlík
    Rozbalit Rozbalit vše Re: rozdíl mezi "ping -I INTERFACE" a "ping -I IPAdresa" ?
    Ano, já to nerozporuji, ten popis je celkem jasný. Ale v případě, že interface má právě jednu adresu (můj případ), mi přijde logické ji použít jako adresu zdroje. Ale jak píši v předchozím, traceroute to umožňuje specifikovat obojí, což je čistší řešení.

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.