USG FLEX 500H/uOS dynamic policy-based IPsec issue – RCO/R-CARD traffic works on VPN100/USG but fail
Freshman Member
Hello Zyxel Support,
We are migrating an existing working RCO/R-CARD IPsec environment from an older
Zyxel VPN100/USG/ZLD firewall to a new Zyxel USG FLEX 500H running uOS.
The old VPN100/USG is currently working correctly. The new USG FLEX 500H can
establish the IPsec tunnel and can transport ICMP and generic UDP traffic, but
the actual RCO/R-CARD communication does not work.
This is not a road-warrior VPN setup. It is a dynamic site-to-site IPsec setup
where the central firewall acts as the master/responder and accepts multiple
dynamic IPsec endpoints. The endpoints do not have fixed public IP addresses,
and many are behind mobile broadband or operator NAT. Therefore, static peer
tunnels based on fixed public endpoint IPs are not a valid replacement
design.
Network overview
Central/master site:
Central firewall public IP: 217.78.20.244
Central LAN subnet: 192.168.90.0/24
RCO/R-CARD server: 192.168.90.21
Example remote site 1:
Remote subnet: 192.168.175.0/24
Remote router: Teltonika
RUT241
RCO undercentral / UC: 192.168.175.5
Example remote site 2:
Remote subnet: 192.168.174.0/24
Remote router: Teltonika
RUT241
RCO undercentral / UC: 192.168.174.9
The old VPN100/USG accepts these dynamic IPsec endpoints and the RCO/R-CARD
system works.
Working baseline with old VPN100/USG
With the old VPN100/USG online, the RCO/R-CARD application works. A tcpdump
captured on the remote RUT LAN side shows real RCO/R-CARD UDP/1000
communication in both directions between the UC and the RCO server.
Working baseline capture:
2026-08-10 07:39:24.021649 IP ttl 64 id 33988 flags [none] len 72
192.168.175.5.1000 >
192.168.90.21.1000 UDP length 44
2026-08-10 07:39:24.036708 IP ttl 126 id 6345 flags [none] len 34
192.168.90.21.1000 >
192.168.175.5.1000 UDP length 6
2026-08-10 07:39:29.310390 IP ttl 126 id 6346 flags [none] len 60
192.168.90.21.1000 >
192.168.175.5.1000 UDP length 32
2026-08-10 07:39:29.312715 IP ttl 64 id 33989 flags [none] len 34
192.168.175.5.1000 >
192.168.90.21.1000 UDP length 6
2026-08-10 07:39:34.330403 IP ttl 126 id 6347 flags [none] len 60
192.168.90.21.1000 >
192.168.175.5.1000 UDP length 32
2026-08-10 07:39:34.332480 IP ttl 64 id 33990 flags [none] len 34
192.168.175.5.1000 >
192.168.90.21.1000 UDP length 6
2026-08-10 07:39:44.330485 IP ttl 126 id 6348 flags [none] len 60
192.168.90.21.1000 >
192.168.175.5.1000 UDP length 32
2026-08-10 07:39:44.332778 IP ttl 64 id 33991 flags [none] len 34
192.168.175.5.1000 >
192.168.90.21.1000 UDP length 6
The important part is that the working VPN100/USG setup shows a real
UDP/1000-to-UDP/1000 RCO/R-CARD dialogue in both directions:
192.168.175.5:1000 <-> 192.168.90.21:1000
Result with USG FLEX 500H/uOS
With the USG FLEX 500H/uOS replacing the old VPN100/USG:
- The IPsec tunnel establishes.
- ICMP works between 192.168.90.21 and 192.168.175.5.
- Generic UDP test traffic from 192.168.90.21 reaches 192.168.175.5 through the
tunnel.
- The actual RCO/R-CARD fetch/communication still does not work.
- The working UDP/1000-to-UDP/1000 dialogue seen with VPN100/USG is not
reproduced.
Example FLEX-side tcpdump from the RUT LAN side shows generic UDP test packets
reaching the UC:
2026-08-10 14:26:58.086488 IP ttl 126 proto UDP length 101
192.168.90.21.61874 >
192.168.175.5.1000 UDP length 73
2026-08-10 14:26:58.352315 IP ttl 126 proto UDP length 101
192.168.90.21.61875 >
192.168.175.5.1000 UDP length 73
2026-08-10 14:26:58.605349 IP ttl 126 proto UDP length 101
192.168.90.21.61876 >
192.168.175.5.1000 UDP length 73
We also verified generic UDP test packets to UDP/9000 and UDP/9001 reaching the
UC through the FLEX tunnel:
192.168.90.21.xxxxx > 192.168.175.5.9000
192.168.90.21.xxxxx > 192.168.175.5.9001
ICMP also works through the FLEX tunnel:
192.168.90.21 > 192.168.175.5: ICMP echo request
192.168.175.5 > 192.168.90.21: ICMP echo r
All Replies
-
Hi @carb8111
Please help with us:
- Provide the packet file of the UDP traffic like "192.168.175.5:1000 <-> 192.168.90.21:1000". With the packet file, we can try to replicate this issue in our lab.
- Enable Zyxel support access and share the organization's name so we can access to check your firewall configuration and other details.
Enable Zyxel support access can reference this FAQ:
Zyxel Melen0 -
Updated info:
Subject: FLEX 500H / uOS – Dynamic policy-based IKEv1 IPsec return traffic issue with RCO/R-CARD UC devices
Hello Zyxel Support,
We are replacing an older Zyxel VPN100/ZLD firewall with a new Zyxel FLEX 500H running uOS/Nebula.
The old VPN100/ZLD firewall works with the same remote sites, same Teltonika RUT241 routers, same RCO/R-CARD server and same UC devices.
With the FLEX 500H/uOS, the IKEv1 policy-based IPsec tunnels establish, and the FLEX logs show accepted traffic from the central RCO server towards the remote UC devices. However, the RCO/R-CARD application does not work correctly.
Environment
Central firewall:
Zyxel FLEX 500H / uOS / Nebula Public IP: 217.78.20.244 LAN subnet: 192.168.90.0/24 RCO/R-CARD server: 192.168.90.21
Remote site example:
Teltonika RUT241 Remote LAN: 192.168.174.0/24 UC device: 192.168.174.9 Remote WAN/public IP seen in logs: 83.255.16.246
The application traffic is RCO/R-CARD communication between:
192.168.90.21 <-> 192.168.174.9
Main observed UDP ports are:
UDP/1000 UDP/9000 UDP/9001
What we have confirmed
The IPsec tunnel is not simply down.
The FLEX log shows DPD activity with the remote peer, so the IKE tunnel was alive during the test window. It also logs accepted LAN-to-IPsec traffic from the RCO server
192.168.90.21to the remote UC192.168.174.9.Example from the FLEX log:
2026-08-10 16:19:39–16:19:41 Source: 192.168.90.21 Destination: 192.168.174.9 Protocol: UDP Dst ports: 1000 / 9000 Rule: TEST_RCO_to_ALL_VPN Direction: LAN to IPSec_VPN Action: ACCEPT
The same log window shows several accepted packets from
192.168.90.21to192.168.174.9on UDP/1000 and UDP/9000.The remote RUT also later shows a clean current IPsec state with the expected selectors:
192.168.174.0/24 === 192.168.90.0/24
and packet counters increasing in both directions.
Problem description
The important issue is not basic IKE establishment or a missing LAN-to-VPN allow rule.
The FLEX 500H logs show that traffic from the central RCO server is accepted and sent towards the UC device. However, the RCO application still fails, and in the exported FLEX log we do not see the expected matching UC-to-server application traffic being passed back from:
192.168.174.9 -> 192.168.90.21
The same RCO/UC communication works when the old VPN100/ZLD firewall is used as the central firewall.
Working hypothesis
Our current suspicion is that FLEX/uOS may be handling return traffic from dynamic policy-based IKEv1 peers differently than the older ZLD platform.
Possible areas to verify:
- Dynamic policy-based IKEv1 peer handling - Traffic selector / Child SA matching for return traffic - IPsec_VPN -> LAN zone classification - Return-path handling from remote dynamic IPsec peer into LAN - Difference between ZLD VPN100 and uOS FLEX 500H behavior
What we need help with
Please verify whether FLEX 500H/uOS supports this scenario in the same way as VPN100/ZLD:
Central firewall as dynamic policy-based IKEv1 responder/server side Multiple dynamic remote peers Local subnet: 192.168.90.0/24 Remote subnet example: 192.168.174.0/24 Application server: 192.168.90.21 Remote UC: 192.168.174.9 Application traffic: UDP/1000, UDP/9000, UDP/9001
We need to confirm whether the FLEX is:
1. Decrypting packets from the remote UC device. 2. Matching them to the correct Child SA / traffic selector. 3. Classifying them into the expected IPSec_VPN -> LAN path. 4. Passing them to the LAN server 192.168.90.21.
Please advise what debug commands, packet capture points, or support logs are required on FLEX/uOS to prove whether return packets from the remote UC are being received, decrypted and forwarded correctly.
The key comparison is:
Same remote Teltonika RUT241 + UC device works through old VPN100/ZLD. Same setup through FLEX 500H/uOS establishes IPsec and logs accepted LAN-to-IPsec traffic, but RCO/R-CARD communication fails.
Best regards,
0 -
Hello,
The issue is that we cannot capture the expected bidirectional traffic:
192.168.175.5:1000 <-> 192.168.90.21:1000
when the FLEX 500H is active, because that traffic does not appear during the failure.
What we see in the FLEX event log is accepted traffic from the RCO server towards the UC device, for example:
192.168.90.21 -> 192.168.175.5 UDP/1000, UDP/9000, UDP/9001
Rule: TEST_RCO_to_ALL_VPN
Direction: LAN to IPSec_VPN
Action: ACCEPTBut we do not see the matching return/application traffic from:
192.168.175.5 -> 192.168.90.21
This is the problem we need help troubleshooting.
We can provide:
- FLEX event log showing accepted server-to-UC traffic.
- Packet captures with a broader filter, showing what is actually present during the failure.
- Packet captures from the working old VPN100/ZLD setup, where the expected RCO/UC communication works.
Please confirm if you want:
- a negative capture from the FLEX failure case, showing that the expected UDP/1000 bidirectional flow is missing, and/or
- a comparison capture from the old working VPN100/ZLD setup.
We already checked broader traffic/logging, not only UDP/1000. - The FLEX event log shows UDP traffic from 192.168.90.21 to the UC devices on UDP/1000, UDP/9000 and UDP/9001, accepted by the LAN-to-IPSec policy.
- However, during the failure case we do not see the expected return/application traffic from the UC device back to 192.168.90.21. Therefore we cannot provide a pcap of a working bidirectional 192.168.175.5:1000 <-> 192.168.90.21:1000 flow from the FLEX failure case, because that is exactly what is missing.
- We can provide the FLEX event log showing accepted outbound RCO traffic and a capture/log showing what is actually present during the failure, but the expected bidirectional UDP/1000 flow does not appear when the FLEX 500H is active.
0 -
Hi @carb8111
Provide the packet file of the UDP traffic like "192.168.175.5:1000 <-> 192.168.90.21:1000". With the packet file, we can try to replicate this issue in our lab.
Please capture the packet from the working old VPN100/ZLD setup, where the expected RCO/UC communication works. I will try to send in USG FLEX H lab to check if the remote site can receive it first.
Also, please enable Zyxel support access and share the organization's name so we can access to check your firewall configuration and other details.
Zyxel Melen0 -
Hello,
The correct Nebula organization is:
Lykil Säkerhethere is the file
0 -
Hi @carb8111
I'm still discussing with our engineer since I can send the UDP packet you provided from USG FLEX H to another client under same USG FLEX H via S2S VPN. I will update to you once I get further information.
Zyxel Melen0 -
Hi @carb8111
Is it possible for you to let the RCO/R-CARD system under USG FLEX 500H and run the system to make the traffic passthrough? Since our last test was working for UDP 1000, we want to monitor the traffic via USG FLEX 500H to check which part get issue. Please let me know when you finish it or you have any questions. Thanks!
Zyxel Melen0 -
Hello,
We can place the RCO/R-CARD system behind the USG FLEX 500H again and run the real system.
With the old VPN100/ZLD firewall, the RCO/R-CARD system works correctly. In the working packet capture from VPN100/ZLD, we can see the normal real application dialogue on UDP/1000:
192.168.90.21:1000 -> 192.168.175.5:1000 192.168.175.5:1000 -> 192.168.90.21:1000
Our understanding is that the UC device sends a request to the RCO server on UDP/1000, and the RCO server answers.
With the USG FLEX 500H, the IPsec tunnel was established and basic connectivity worked. We could ping between the RCO server and the remote UC device, and manual test traffic could pass through the tunnel.
However, when running the real RCO/R-CARD system behind the FLEX 500H, we did not observe the expected real RCO/R-CARD UDP/1000 application dialogue:
192.168.175.5:1000 -> 192.168.90.21:1000 192.168.90.21:1000 -> 192.168.175.5:1000
The application communication does not start/work as it does with the old VPN100/ZLD firewall.
So we can reproduce the same setup and run the real RCO/R-CARD system behind the FLEX 500H again, but we cannot make the real application traffic pass correctly in both directions, because that is the issue we are troubleshooting.
The important difference is that with VPN100/ZLD we see the real two-way application dialogue on UDP/1000, including the UC device response back to the RCO server.
With FLEX 500H, the tunnel is up and the firewall logs accepted server-to-UC traffic, but the expected real application response/dialogue from the UC device back to the RCO server does not work the same way.
This has been seen with the Teltonika remote sites we have tested. We have also seen similar behavior with Nebula-managed remote devices, so it does not look like this is only a Teltonika-specific issue.
Please confirm if you want us to:
- Put the RCO/R-CARD system behind the FLEX 500H again,
- Run the real RCO/R-CARD test,
- Notify you when the test is running or completed, so you can check the traffic on the FLEX 500H side.
0 -
Hi @carb8111
Sorry for the delayed reply since I was confirming the test plan with our team.
Yes, please put the RCO/R-CARD system behind the FLEX 500H again, and run the real RCO/R-CARD test.
May you share the time with time zone you are able to run this test? If it match our engineer's working hour, I would like to ask our engineer to check when you run the test.
If not, we will need you help to capture the packet.
Please help to select the interface LAN and vti interface. I assume your VPN tunnels are both route based VPN tunnel, so we can capture packet on the vti interface to clarify this issue.
Please help to share your available time with me, thanks!
Zyxel Melen0
Categories
- All Categories
- 442 Beta Program
- 3.1K Nebula
- 237 Nebula Ideas
- 6.8K Security
- 740 USG FLEX H Series
- 376 Security Ideas
- 1.8K Switch
- 87 Switch Ideas
- 1.5K Wireless
- 58 Wireless Ideas
- 7.2K Consumer Product
- 319 Service & License
- 512 News and Release
- 99 Security Advisories
- 31 Education Center
- 10 [Campaign] Zyxel Network Detective
- 5.3K FAQ
- 34 Documents
- 91 About Community
- 119 Security Highlight
Zyxel Employee
