Diskuze - danyk.cz

Vlákno z kategorie: Hlavní diskuze
Celkem 27 odpovědí.


7.03.2020 (23:28:58) K # IP X
antibalda obalka (web) :
Zdravím,
Hraju si s čipy Wiznet (konkrétně W5500). Na STM to funguje celkem dobře - komunikuji jak po TCP (server/client) i UDP.
Jediné na co jsem nepřišel, jak prvotně nastavit IP adresu zařízení. Jde mi konkrétně o prvotní nastavení IP adresy zařízení. Identifikace zařízení podle MAC adresy a následně přidělit IP. Jde to nějak ? Má s tím někdo z místních zkušenosti ?
Díky.
8.03.2020 (05:19:32)  # IP X
8-bit obalka (web) :
Myslím že se to jmenuje DHCP **01
9.03.2020 (07:35:06)  # IP X
antibalda obalka (web) :
U DHCP se mi nelíbí, že hostující zařízení musí mít IP 255.255.255.255, což se mi u PC nechce nastavovat.

Moje představa je, že si napíši svůj program, kde uvidím všechny mé zařízení (s čipem W5500) a podle MAC (nějaká jednoduchá tabulka) přidělím IP. W5500 podporuje i nějaký MACRAW režim, moc jsem se o tom nedočetl - nezkoušel to někdo ?
9.03.2020 (14:32:01)  # IP X
RayeR (web) :
Hm, copak az se v tom cipu objevi nejaka zranitelnost v implementaci tech sitovych protokolu (pokud uz tam nejaky backdoor cilene neni :)?
9.03.2020 (14:47:09)  # IP X
8-bit obalka (web) :
Nepopírám že DHCP je prasárna, třeba nechápu na co ten paket musí mít víc jak 0,5 kB, nicméně "hostující zařízení" IP adresu 255.255.255.255 mít opravdu nemůže, je to broadcast. "Hostující zařízení" musí mít nastavenou platnou IP než vůbec začne DHCP server hostovat. Přečti si ty dvě specifikace (RFC 2131 a 2132) pořádně a podívej se na příklady těch paketů v PC (M$ network monitor a ipconfig /renew). Ale jestli si chceš napsat vlastní protokol na přidělování IP adres, tak nevím co ti v tom brání.
9.03.2020 (14:55:17)  # IP X
8-bit obalka (web) :
>RayeR
V síťových protokolech jsou zranitelnosti jako prase i bez chyb v tom jeho čipu **02 Holt buďme věční za to že IP adres můžou být jenom necelé 4 miliardy a že díky tomu máme NAT, takže pokud nemáme nějaký bordel na naší lokální síti tak nás ty zranitelnosti nemusí až tolik stresovat **01
9.03.2020 (18:06:09)  # IP X
VroutekB:
Když máš STM32, proč si hraješ s předraženými čipy od zmrdnetu? **11
ETH PHY stojí sotva 25 korun v kusovce a ETH magjack nápodobně.
Vzorové příklady na implementaci LwIP jsou dostupné na každém rohu, včetně ukázky jak triviální je zapnout DHCP.
9.03.2020 (19:25:53)  # IP X
antibalda obalka (web) :
Ethernet mají až větší pouzdra. Typicky od LQFP100 (STM32F107Rxxx od 64, ale to je jediný co jsem našel). Nechce se mi na desky dávat velký procesory, když to není nutné.

Nějaké jiné alternativy Wiznetu ? SPI připojení mi přijde celkem obstojné - nepožaduji od toho nějaké extrémní rychlosti ani datové přenosy.
9.03.2020 (19:48:18)  # IP X
VroutekB:
A ten zmrdnet čip je co? LQFP 48 nebo 64? Takže tam máš pak třeba LQFP48 prcák a LQFP 48 (64) zmrdnet, takže stejně dost 100 pinů celkem? Co tím teda ušetříš **02
9.03.2020 (20:13:50)  # IP X
antibalda obalka (web) :
A nebo tam dám TSSOP20 jako procák a ten Wiznet. Propojím to 4 (6) dráty a jdu od toho.
9.03.2020 (23:21:11)  # IP X
VroutekB:
Tak to bude opravdu harkór interneting. Taková aplikace opravdu ve výsledku ETH na nic nepotřebuje.
9.03.2020 (23:30:55)  # IP X
8-bit obalka (web) :
Njn, asi nějaký Internet of Trash plevel **02
10.03.2020 (14:22:51)  # IP X
antibalda obalka (web) :
Myslím si, že na toto jsem se neptal. Kritizovat umí každý, ale přijít s nějakým návrhem, to ne. To platí na vás oba, chytrý jako rádia a skutek utekl.
10.03.2020 (15:50:56)  # IP X
8-bit obalka (web) :
Poradili jsme ti snad málo? **14 Myslím že jsem ti napsal, že DHCP protokol je pro tvou aplikaci použitelný, že hostující zařízení má úplně normální IP adresu, ne 255.255.255.255 (že se to na ni posílá neznamená že ten server nemá úplně jinou) a že pokud se ti DHCP nelíbí (k čemuž můžou nebo nemusí být pádné důvody), nic ti nebrání v tom napsat si vlastní protokol na přidělování IP adres, koneckonců i DHCP běží v aplikační vrstvě.
10.03.2020 (16:00:08)  # IP X
VroutekB:
Dost bych se divil, kdyby ten wizshit neměl to DHCP už v sobě dávno implementované. Mam pocit že DHCP uměl od výroby snad už nějak i ten starej mrzák ENC28Jněco od mrkvocypu.
Každopádně ti doporučuji, abys trochu více si nastudoval nějaké základy internetování, abys nemusel vymýšlet ptákoviny a divit se adrese se samými jedničkami. Jen počkej, až objevíš za chvíli ještě multicast a další protokoly, které udržují internet v chodu.
ETH je fajn věc, ale prostě se ani náhodou nehodí do malých aplikací.
10.03.2020 (16:16:04)  # IP X
8-bit obalka (web) :
Vypadá že nemá
Supports Hardwired TCP/IP Protocols : TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE
ctrl+f DHCP nenajde nic.

Nicméně ono opravdu není těžké tohle nakódit, díval jsem se do svých driverů a DHCP klient má 85 řádků zdrojáku + nějaký header. Ovšem to by musel jeden vědět co je broadcast.
10.03.2020 (16:29:43)  # IP X
antibalda obalka (web) :
Wiznet DHCP implementovaný nemá. DHCP jsem kdysi dávno rozchodil s použitím knihoven. Ovšem to není to, co chci.

Navíc cílové zařízení nemají být připojený do internetu, ale jen na lokální síť (průmyslové karty), kde bude pevně definované IP adresy a měnit se nebudou (DHCP server v síti nikdy nebude použit). Jde mi o prvotní nastavení IP, abych nemusel karty dodávat s IP třeba 192.168.0.1, ale jen s app, kde si koncový uživatel bude moc zvolit IP na základě MAC libovolně až v cílové aplikaci.
Doufám, že už jsem to napsal pochopitelně.
10.03.2020 (16:45:06)  # IP X
8-bit obalka (web) :
Ne, nic z toho nedává žádný smysl.

Pro DHCP je úplně jedno zda je ten krám připojený do internetu nebo ne. DHCP server může ty adresy přidělovat buď automaticky z nějakého rozsahu nebo může mít předdefinovaný seznam IP adres a přidělí jednu ke každé MAC adrese. DHCP server může být kterýkoli z těch tvých bastlů nebo třeba ten PC s IP adresou 255.255.255.255

Pokud se ale nepoužije DHCP server nebo obdobná implementace, tak ta zařízení nějakou výchozí IP adresu (třeba 192.168.0.1) mít musí a pak to musí někdo ručně změnit pomocí nějaké konfigurační utility kterou mu k tomu dáš.
10.03.2020 (17:43:41)  # IP X
antibalda obalka (web) :
Když vezmu jako příklad zařízení od Siemens a jejich Profinet (který běží jako nástavba TCP/IP), tak prvotně vidím pouze MAC adresu, nastavím Profinet jméno a IP. Výchozí IP to nemá. Stejně tak PLC od B&R, který teď v práci programuji.
Nějak tak jsem to původně myslel, než se to tu zvrhlo v nesmysly.
10.03.2020 (17:52:39)  # IP X
8-bit obalka (web) :
No tak evidentně ty IP adresy musí něco přidělovat. Buď DHCP server nebo nějaká proprietární obdoba.
10.03.2020 (17:59:16)  # IP X
antibalda obalka (web) :
Tak to je jasný.
Mě zajímá zákulisí, případně protokoly, které to využívá. U toho Siemensu je to možná něco, co je součástí Profinetu. U toho B&R si myslím, že to bude něco primitivního, protože celkově ty PLC nejsou dospělý (v porovnání se Siemensem nebo Omronem).

Nebo jestli to běží přes broadcasty (ano, vím co to je), nevím a proto jsem se tu ptal s domněním, že se něco dozvím. Jsem zklamán.
10.03.2020 (19:30:46)  # IP X
8-bit obalka (web) :
MUSÍ to běžet přes broadcasty **01
10.03.2020 (20:32:56)  # IP X
VroutekB:
Kruci, antibaldo, nelži. Kdybys věděl jak funguje broadcast, tak tu nebudeš tvrdit, že zařízení musí mít adresu 255.255.255.255. Takovou adresu naopak žádný zařízení mít nesmí. A těch který by mít nemělo je podstatně víc, protože se do toho montujou adresy z multicastu, který pak spravuje třeba IGMP protokol.
DHCP je zavedený a funkční protokol a nevidím jediný důvod, proč vynalézat nějaký propriettární kokotiny. DHCP server neznamená, že to musí vidět do internetu. DHCP server je jedno dedikovaný zařízení na lokálním segmentu sítě, který tam rozdává ty adresy.
Pokud si deš hrát s profinetem, to sem fakt zvědavej, jak to lze implementovat přes ten přes to wizduino. To bude fakt famózní mňamka, pracovat s proprietárníma ETH rámcema. Mimochodem, specifikace profinetu je zřejmě přístupná za příslušný obnos peněz v příslušných normách zde: https://www.profibus.com/download/profinet-specification/
Jistě tam bude specifikovaný, jakou metodou a protokolem se přidělují IP. Dost bych se divil, kdyby se používalo něco jinýho, než třeba kombinace DHCP a mDNS. Koneckonců, není náhodou konfigurace ETH interfejcu dycky nahraná na té 64 kB "SD" kartičce za 10 000CZK, co je dycky strčená do toho PLC nebo interface modulu?
To co se ti tu snažíme říct je, že je kokotina používat wizshit, když umíš použít dospělý ARM procesor. Wizshit ti neušetří ani cenu, prakticky ani počet pinů na desce ani nejspíš místo na desce. Jediný co ti tam přidá, tak další naprosto zbytečnou softwarovou vrstvu, která bude akorát plná chyb a nekonečného množství děr a neošetřených výjimek a chybových stavů. Použitím wizshitu navíc získáváš neoprávněné domnění, že tomu ETH rozumíš, což zjevně není pravda.
Já nebudu řikat že tomu rozumím, ale už si tu s tím nějakou chvíli hraju a věř, že to není tak jednoduchý, jak to zprvu vypadá, na druhou stranu po dostatečném předchozím studiu to nemusí být až tak komplikované k pochopení.
12.03.2020 (07:24:51)  # IP X
antibalda obalka (web) :
1.) Přestaň mě tu nazývat jako lháře. Nebaví mě to.
2.) Profinet jsem uvedl jako PŘÍKLAD, nikoliv že je to na profinet cílené.
3.) Na názor Wiznetu jsem se Vás nikoho neptal. Nevím proč to tu pořád rozebíráte.
4.) Pokud použiji STM32F107RC (nejlevnější procesor s ETH), vyjde mě na cca 3 dolary/ks. Když použiji STM32F103C8 + Wiznet, vyjde mě to na cca 2 dolary, takže mi tu netvrď, že mi to neušetří cenu. Navíc existuje W6100, který je levnější než W5500. STM32F103 jsem také jen střelil, protože je to nejpoužívanější procesor. F0 by podle mě byla ještě levnější.
5.) Siemens (PLC) mít SD karty nemusí. Konfigurace je uložena ve vnitřní paměti. Frekvenční měniče (tedy kontrolní jednotka) od Siemensu má vždy "SD" kartu (není to SD, ale něco jejich), kde je uloženo aktuální nastavení motorů, které to řídí a licence. Komunikační nastavení tam není.

A pokud bych ETH rozuměl, vůbec bych se tu neptal, což vím, že byla chyba. Více bych to tu už nerozebíral, protože někdo má svojí hlavu a přes to nejede vlak.
Ale i tak díky, zkušenost je zkušenosti.
12.03.2020 (10:38:01)  # IP X
VroutekB:
Nazývám tě tak, protože tvrdíš, že víš, co je to broadcast. Jenže to nevíš a když se ti tu po dobrým snažíme říct, že to tak jak si myslíš nefunguje, prdíš na to. Packet poslaný na spec. adresu 255.255.255.255 je takový, který se doručí na všechna zařízení v lokálním segmentu sítě. Je vykuřbuřt, jakou IP má příjemce, protože packet dostanou všichni.
Stejně tak je ukuřbuřt, jakou adresu má zařízení s DHCP serverem, protože komunikace s ním probíhá právě broadcastem. Více viz zmiňované RFC 2131 a popis třeba DHCPDISCOVER zprávy.

Nejlevnější legitimní W5500 vidím za $3, jestli chceš ztrácet čas s čínskýma fejkama, tak prosím.
12.03.2020 (11:20:25)  # IP X
bkralik (web) :
Teda nevím kde jste vzali nějakou úchylnou adresu 255.255.255.255. Broadcast adresa je v každym rozsahu samostatná a je to poslední adresa z daného rozsahu. Tzn pokud máš rozsah 192.168.1.0/24, tak broadcast je 192.168.1.255...
Viz http://jodies.de/ipcalc?host=192.168.1.0&mask1=24&mask2=
12.03.2020 (11:23:50)  # IP X
bkralik (web) :
Jo aha, už chápu... Primární problém tkví v tom, že když chcete IP od DHCP, tak to IP ještě nemáte. Takže hlavně, co se používá, je broadcast na L2 - DHCP request jde na MAC FF:FF:FF:FF:FF:FF. To, jaká ip je vyplněná v IP hlavičce je v tu chvíli úplně jedno, protože se jedná o L2 broadcast a ne o L2 broadcast...
12.03.2020 (13:53:29)  # IP X
8-bit obalka (web) :
Přesně tak, v tu chvíli neznáš svou IP ani velikost subnetu.
Přezdívka:
Heslo:
Text: