Opis rozwiązania umożliwiającego jednoczesną komunikację przez dwa niezależne interfejsy Ethernet posiadające własne bramy domyślne. Rozwiązanie wykorzystuje policy routing systemu Linux (iproute2) oraz dwie niezależne tablice routingu.
Opis rozwiązania jest dla użytkowników zaawansowanych i należy go traktować jako wskazówki odnośnie kierunku działań a nie jako instrukcję typu kopiuj-wklej.

| Parametr | Wartość |
|---|---|
| Sterownik | WAGO PFC200 |
| Firmware | 03.06.19(18) |
| Środowisko narzędziowe | eCockpit |
| Visualization Profile | CODESYS V3.5 SP15 Patch 4 |
| Protokół do testów | np. Modbus UDP |
Sterownik posiada dwa niezależne interfejsy Ethernet:
Każdy interfejs posiada własną bramę domyślną. Standardowa tablica routingu Linux pozwala tylko na jedną trasę default, dlatego wykorzystano policy routing oraz dwie dodatkowe tablice routingu.
Plik:
/etc/iproute2/rt_tables
Dodać:
1 rt1 2 rt2
Skrypt:
/etc/config-tools/events/networking/update_routing
ip route add 192.168.1.0/24 dev br0 src 192.168.1.202 table rt1 ip route add default via 192.168.1.254 dev br0 table rt1 ip rule add from 192.168.1.202/32 table rt1 ip rule add to 192.168.1.202/32 table rt1 ip route add 192.168.2.0/24 dev br1 src 192.168.2.202 table rt2 ip route add default via 192.168.2.254 dev br1 table rt2 ip rule add from 192.168.2.202/32 table rt2 ip rule add to 192.168.2.202/32 table rt2
Ścieżka wykonywania:
update_routing
└── DoUpdate
└── SetRoutes
└── AddDefaultRoute
Należy rozszerzyć funkcję o parametr numeru tablicy routingu:
function AddDefaultRoute ... local norttable=$3 ...
Zamiast standardowego:
route add default gw ...
należy dodać:
ip route add $defnetw/24 dev br$norttable src $defip table rt$norttable ip route add default via $defgwip dev br$norttable table rt$norttable ip rule add from $defip/32 table rt$norttable ip rule add to $defip/32 table rt$norttable
Od firmware 19 producent przebudował skrypt konfiguracji sieci. Ścieżka wykonywania wygląda następująco:
update_routing
└── DoUpdate
└── SetRoutes
└── AddRoutes
W związku z tym wcześniejsza modyfikacja funkcji AddDefaultRoute nie działa i skrypt należy przygotować od nowa.
Wyświetlenie tablic routingu:
ip route list table rt1 ip route list table rt2
Wyświetlenie reguł:
ip rule show
0: from all lookup local 32764: from 192.168.1.202 lookup rt1 32765: from 192.168.2.202 lookup rt2 32766: from all lookup main 32767: from all lookup default