1 (edytowany przez WMP 2021-07-11 11:32:23)

Temat: Routing do sieci WiFi inwertera

Cześć, mam inwerter który udostępnia swoją własną sieć WiFi SUN2000-xxxxx, po połaczeniu otrzymuję IP 192.168.200.100/24, a inwerter jest na 192.168.200.1/24. Na inwerterze dostepny jest modbus TCP, do którego chcę się połaczyć. Po połaczeniu bezpośrednio do sieci inwertera, skrypt python który ma gadać po mudbus TCP działa. Postawiłem obok inwertera router 192.168.12.6 który połaczył się do sieci Wifi inwertera i nadałem mu statyczne ip 192.168.200.99. Router może pingować adres inweertera 192.168.200.1, czy gada po modbus TCP nie wiem, ponieważ  mam za mało pamięci aby móc wrzucic skrypt i biblioteki i sprawdzić. Niestety, nie potrafię skonfigurować mojej sieci tak, aby adres 192.168.200.1 był osiągalny z każdego komputera, a nie tylko z routera bezpośrednio podłaczonego do sieci WiFi inwertera. Chcąc obejść problem, postawiłem na routerze 192.168.12.6 DNAT, port niby jest otwarty i mogę się z nim połaczyć z komputerów w sieci, ale skrypt python zwraca błąd komunikacji:
Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.12.6:502)] . Tcpdump pokazuje zapytanie i odpowiedź na 192.168.12.6:502, ale nie jestem w stanie zweryfikować czy jest poprawna.

Załączam mój schemat sieci.

https://i.imgur.com/59EjRPn.jpeg

2

Odp: Routing do sieci WiFi inwertera

A ten Huawei to nie może się jako klient do Twojej sieci Wifi podłączyć ?

3

Odp: Routing do sieci WiFi inwertera

Że też o tym nie pomyślałem...

Huawei ma domyślnie ta swoją sieć na ktorej jest modbus, nie można zmienić nic w jej konfiguracji. Na też moduł sieciowy, który już się konfiguruje i umożliwia on podłączenie do swojej sieci która ma dostęp do internetu. Dzięki temu loguje się do swojej chmury i daje się obsługiwać aplikacją. Niestety nie ma dostępu do modbus.

4

Odp: Routing do sieci WiFi inwertera

Najpierw to zrób porządek z adresacją urządzeń bo 2 pudełka mają ten sam adres.

PS. A na C7 ostatni adres VLAN5 to adres sieci a nie hosta. Skoro konsekwentnie wszędzie piszesz adresy hostów...

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

5

Odp: Routing do sieci WiFi inwertera

Jestem w tej samej sytuacji. Na forum Huawei piszą, że w kolejnej aktualizacji firmware dla modułu (SDongleA-05) jest to poprawione i będziemy mieli dostęp do modbusa przez moduł/dongle. Jest potrzebna wersja 120. Ja obecnie mam wersję 119 (V100R001C00SPC119). Podobno odkryli jakiś błąd i nie chcą jeszcze udostępniać publicznie. Napisałem do supportu, dam znać jeśli mi coś odpowiedzą.

6

Odp: Routing do sieci WiFi inwertera

Nie widzę błędu z adresami, a odnośnie vlan5 to faktycznie adres sieci, powinno być tam 192.168.12.65.

@marek, dzięki za informację, robiłem upgrade inwertera dwa dni temu, czy to trzeba firmware do dongla?

7 (edytowany przez mar_w 2021-07-11 19:35:01)

Odp: Routing do sieci WiFi inwertera

OK, myślałem że środkowe pudełko ma adres taki sam jak "Zosia"

A w drugim przypadku środkowe pudełko odwołuje się do adresu 192.168.16.6:502 którego w ogóle nie masz w sieci.
Sam widzisz, że:
1. raz wpisujesz adres hostów,
2. innym razem adres sieci,
3. a innym razem adres, którego nie masz w sieci
i jednocześnie piszesz że:

WMP napisał/a:

Nie widzę błędu z adresami, a odnośnie vlan5 to faktycznie adres sieci, powinno być tam 192.168.12.65.

DNAT zazwyczaj zamienia adres docelowy czyli:

192.168.12.1 -> 192.168.12.6:502 
#DNAT zamienia ten drugi adres na inny adres ustawiony w firewallu, czyli tak jakby pakiet był z.... do.....
192.168.12.1 -> 192.168.200.1:502

I teraz Inverter musi odesłać odpowiedź na adres 192.168.12.1

A może ten Inverter umie odpowiadać tylko na adresy ze swojej sieci 192.168.200.0/24, a więc powinieneś na routerze "Zosia" ustawić MASKARADĘ, ponieważ Inverter odbiera zapytania z sieci 192.168.12.0/28 i nie wie gdzie je odesłać ponieważ jego routing wygląda np tak:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.200.0     0.0.0.0         255.255.255.0   U     1    0        0 wlan0

Inverter nie musi mieć ustawionej domyślnej bramy przez wlan0 na dowolny adres 0.0.0.0 żeby wszystko pchać przez własne Wifi, tym bardziej, że to Wifi nie jest clientem routera "Zosia" żeby ustawić go jako bramę. U Ciebie jest odwrotnie.
I dobrze, że tak jest, jeżeli tak jest, jak się domyślam.
Inverter musi dostać zapytanie z adresu, który zna, czyli z 192.168.200.99, czyli należałoby na "Zosia" dodatkowo dokonać zamiany adresu źródłowego.

WMP napisał/a:

...Po połaczeniu bezpośrednio do sieci inwertera, skrypt python który ma gadać po mudbus TCP działa

A skoro tak, to musi działać jeżeli zrobisz Maskaradę na interfejsie wlan0 routera "Zosia".
Sprawdzałeś tcpdumpem co odbiera Inverter gdy na routerze jest ustawiony tylko DNAT?

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

8

Odp: Routing do sieci WiFi inwertera

WMP napisał/a:

@marek, dzięki za informację, robiłem upgrade inwertera dwa dni temu, czy to trzeba firmware do dongla?

Do dongla.
https://forum.huawei.com/enterprise/en/ … 885-100027

9

Odp: Routing do sieci WiFi inwertera

@mar_w:
Tak, te błedy to są oczywiste literówki.

Nie istawiałem wcześniej maskarady ponieważ zastanawiałem się, co to zmieni skoro router nie będzie znać trasy. Dopiero późnije powpisywałem trasy staytczne, chcąć zrobić routing do sieci inwertera. A jednak wystarczyło ustawić maskaradę, aby wszystko  zaczęło działać! Dziękuję za pomoc!

Nie mogę sprawdzić tcpdumpem co odbiera inwertert, ponieważ router  Zosia ma tylko 4mb  pamięci i nie idzie zainstalować tcpdump.

10

Odp: Routing do sieci WiFi inwertera

OT: możesz zainstalować w ramie: https://eko.one.pl/?p=openwrt-pakiety , w /etc/opkg.conf masz to zdefiniowane.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.