Przykładowe wdrożenie automatycznego provisioningu w sieci korzystającej z rozwiązań xPON marki Huawei

Publicado el dia 20-02-2026

1. Wprowadzenie i założenia

Celem niniejszego artykułu jest teoretyczny opis przykładowego wdrożenia automatycznego provisioningu w sieci, która korzysta z rozwiązań marki Huawei. Treść została oparta na rozwiązaniach wykorzystywanych w działającej sieci (nie jest to więc rozważanie czysto teoretyczne), ale artykuł nie jest poradnikiem, który przeprowadzi cię przez konfigurację krok po kroku.

 

2. Wymagania

Poradnik traktuje głównie o rozwiązaniach PON marki Huawei, poniższe informacje będą aktualne dla terminali OLT z serii MA5800 oraz terminali ONT GPON / XGS-PON. Do automatycznego provisioningu wykorzystywane są dwie technologie: DHCP Option 43 oraz TR-069.

Głównym narzędziem do obsługi jest GenieACS – jest to rozwiązanie open source’owe przystosowane do automatyzacji konfiguracji i zdalnego zarządzania urządzeniami, podstawą pracy GenieACS jest protokół TR-069.

Oficjalna strona GenieACS:

https://genieacs.com/

Github:

https://github.com/genieacs/genieacs

Oprogramowanie GenieACS należy zainstalować na odpowiednio skonfigurowanym serwerze, w naszym przypadku użyty został serwer oparty na Debianie. GenieACS wykorzystuje NodeJS i bazę danych MongoDB.  


GenieACS (lub inny serwer ACS, jeżeli używasz / preferujesz) jest podstawą do stworzenia automatycznego provisioning niezależnie od rozwiązań, które stosujesz w sieci.

Dokumentaję możesz znaleźć poniżej:

https://docs.genieacs.com/en/latest/

 

 3. Komunikacja OLT → ONT

Pierwszym krokiem jest autoryzacja ONT, należy odpowiednio skonfigurować srv-profile oraz line-profile, a następnie autoryzować ONT zgodnie ze sposobem, jaki wykorzystujesz.

Wgranie wstępnej konfiguracji w pliku *.xml – plik należy uprzednio przygotować i dostosować do potrzeb swojej sieci. Poniżej przedstawiamy przykład:

Przykładowy plik *.xml możesz pobrać z tego odnośnika: https://cdr.pl/download/huawei/wan_eg8145x6.zip

W archiwum znajduje się plik przystosowany do urządzeń Huawei OptiXstar EG8145X6-10. Plik należy odpowiednio zedytować, a następnie wgrać do ONT. XML musi zostać umieszczony na serwerze FTP / SFTP, następnie wgrywamy go komendami:

a. diagnose

b. ont-load info configuration <Nazwa pliku>.xml ftp <IP address> <Login FTP> <Hasło FTP>

c. wybieramy ONT → ont-load select (np. ont-load select 0/2 0 3)

d. ont-load start

e. display ont-load info

f. po chwili zatrzymujemy wgrywanie pliku komendą ont-load stop

 

4. Komunikacja router → ONT

W sytuacji, którą opisuję w poniższym artykule plik XML służy tylko i wyłącznie do wstępnego skonfigurowania ONT tak, aby ten dostał DHCP. Dalsza konfiguracja, w tym konfiguracja komunikacji z GenieACS, jest przesyłana z routera z wykorzystaniem DHCP Option 43.

Dane do logowania TR-069 możesz również przesłać poprzez plik XML, w takim wypadku nie musisz używać DHCP Option 43.

 

5. Konfiguracja z poziomu serwera ACS

Serwer ACS (w naszym przypadku GenieACS) umożliwia zdalną modyfikację ustawień z wykorzystaniem protokołu TR-069. Urządzenia podłączone zgodnie ze wcześniejszymi krokami będą widoczne z poziomu panelu zarządzania, na tym etapie możesz już zmieniać ich konfigurację.

W dużej, rozbudowanej sieci ręczna konfiguracja każdego z podłączonych ONT generowałaby horrendalny czas poświęcony na utrzymanie systemu, stąd też jedna z najważniejszych i najprzydatniejszych funkcji – skrypty.

GenieACS umożliwia stworzenie customowych skryptów, pisane są w JavaScript, a konkretnie w uproszczonej wersji JavaScript, mają bardzo uproszczoną bibliotekę dostępnych funkcji. Skrypty wywołuje konkretne zdarzenie – event, lista obsługiwanych eventów jest ustandaryzowana w TR-069:

Specyfikacja danych CWMP / TR-069:

https://cwmp-data-models.broadband-forum.org/

Poniżej screen przykładowego skryptu ze wstępną konfiguracją ONT Huawei, skrypt jest uruchamiany podczas pierwszego włączenia urządzenia (urządzenie z ustawieniami fabrycznymi):

Na powyższej grafice możemy zobaczyć dwie główne, najważniejsze i najczęściej używane funkcje: clear oraz declare:

clear(path, timestamp) – funkcja pozwala usunąć z bazy danych informacje przypisane do danego urządzenia, co jest bardzo ważne w przypadku konfiguracji urządzeń z ustawieniami fabrycznymi.

declare(path, timestamps, values) – funkcja pozwala deklarować parametry, czyli w zasadzie jest to główna funkcja umożliwiająca skonfigurowanie urządzenia.

Pełny opis funkcji znajdziesz w dokumentacji GenieACS.

Na powyższym przykładzie (screenie) najpierw czyszczone są dane z bazy danych (funkcja clear), a następnie przechodzimy do deklaracji informacji o urządzeniu, skonfigurowanie WAN access i w końcu włączenie IGMP Snoopingu – w sieci wykorzystywane jest IPTV. Na koniec do urządzenia przypisywany jest Tag – tagi ułatwiają rozróżnienie urządzeń w panelu GenieACS i mogą być również wykorzystywane podczas wywoływania skryptów.

Powyższy skrypt jest wywoływany podczas uruchomienia urządzenia w ustawieniach fabrycznych, skonfigurować wywołanie możesz w zakładce Presets:

Na powyższym screenie pokazany jest cały preset dla wcześniejszego skryptu, w presecie znajdują się dwa główne elementy:

Events – tutaj deklarujemy zdarzenia, w tym przypadku wykorzystywane jest 0 BOOTSTRAP – czyli wykrywane są urządzenia z ustawieniami fabrycznymi.

Precondition – w tym miejscu można ustawić dodatkowe, wstępne warunki. W powyższym przykładzie skrypt zostanie wywołany tylko dla ONT Huaweia (odpowiednie OUI) i pomijane są urządzenia z tagiem TEST.

 

Reasumując – korzystając z odpowiednich zdarzeń i skryptów GenieACS pozwala ci wprowadzić zaawansowaną automatyzację konfiguracji i zarządzania podłączonymi urządzeniami. Prócz ustawień wstecznych możesz np. pilnować konfiguracji urządzenia po reboocie, wprowadzać skrypty wywoływane czasowo lub zgodnie z harmonogramem. Co więcej – GenieACS pozwala ci skorzystać z API, dzięki czemu możesz dokonać integracji ze swoim systemem. Przykładowo, możesz udostępniać pracownikom panel, który poprzez integrację z GenieACS pozwoli zdalnie zmienić SSID sieci u danego abonenta.