Page MenuHomeVyOS Platform

CGNAT external pools containing dashes cause Traceback error
Closed, ResolvedPublicBUG

Description

External pools containing dashed in the name do not work

set nat cgnat pool external ext-01 external-port-range '1024-65535'
set nat cgnat pool external ext-01 per-user-limit port '2000'
set nat cgnat pool external ext-01 range 192.168.122.222/32
set nat cgnat pool internal int01 range '100.64.0.0/28'
set nat cgnat rule 10 source pool 'int01'
set nat cgnat rule 10 translation pool 'ext-01'

commit:

vyos@r4# commit
[ nat cgnat ]
VyOS had an issue completing a command.

Report time:      2024-05-16 12:32:46
Image version:    VyOS 1.5-rolling-202405140019
Release train:    current

Built by:         [email protected]
Built on:         Tue 14 May 2024 02:55 UTC
Build UUID:       c30a637d-f3c1-473e-8af6-03c9bfaf0729
Build commit ID:  3463386246a9ac

Architecture:     x86_64
Boot via:         installed image
System type:      KVM guest

Hardware vendor:  QEMU
Hardware model:   Standard PC (Q35 + ICH9, 2009)
Hardware S/N:     
Hardware UUID:    166cfd25-7d3a-4eca-9ef6-0b655c9acf0f

Traceback (most recent call last):
  File "/usr/libexec/vyos/conf_mode/nat_cgnat.py", line 284, in <module>
    generate(c)
  File "/usr/libexec/vyos/conf_mode/nat_cgnat.py", line 224, in generate
    external_ranges = jmespath.search(ext_query, config)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/jmespath/__init__.py", line 12, in search
    return parser.Parser().parse(expression).search(data, options=options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/jmespath/parser.py", line 88, in parse
    parsed_result = self._do_parse(expression)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/jmespath/parser.py", line 96, in _do_parse
    return self._parse(expression)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/jmespath/parser.py", line 114, in _parse
    raise exceptions.ParseError(t['start'], t['value'], t['type'],
jmespath.exceptions.ParseError: Unexpected token: -1: Parse error at column 17, token "-1" (NUMBER), for expression:
"pool.external.ext-01.range | keys(@)"
                  ^



[[nat cgnat]] failed
Commit failed

Details

Difficulty level
Normal (likely a few hours)
Version
VyOS 1.5-rolling-202405140019
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)

Related Objects