Page MenuHomeVyOS Platform

NAT op-mode errors with exclude rules
Closed, ResolvedPublicBUG

Description

VyOS configuration:

set nat source rule 10 destination address '192.0.2.0/24'
set nat source rule 10 exclude
set nat source rule 10 outbound-interface 'any'
set nat source rule 10 protocol 'all'

Show:

vyos@r14# run show nat source rules 
Traceback (most recent call last):
  File "/usr/libexec/vyos/op_mode/show_nat_rules.py", line 114, in <module>
    print(format_nat_rule.format(rule, srcdests[0], tran_addr, interface))
IndexError: list index out of range
Rule       Source                                             Translation                                        Outbound Interface
----       ------                                             -----------                                        ------------------
[edit]
vyos@r14#

Extended configuration:

set nat source rule 10 destination address '192.0.2.0/24'
set nat source rule 10 exclude
set nat source rule 10 outbound-interface 'any'
set nat source rule 10 protocol 'all'
set nat source rule 10 source address '0.0.0.0/0'
set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '203.0.113.0/24'
set nat source rule 100 translation address masquerade

Show:

vyos@r14# run show nat source rules 
Traceback (most recent call last):
  File "/usr/libexec/vyos/op_mode/show_nat_rules.py", line 114, in <module>
Rule       Source                                             Translation                                        Outbound Interface
----       ------                                             -----------                                        ------------------
    print(format_nat_rule.format(rule, srcdests[0], tran_addr, interface))
TypeError: unsupported format string passed to dict.__format__
[edit]
vyos@r14#

Details

Difficulty level
Unknown (require assessment)
Version
VyOS 1.4-rolling-202207111030
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)

Event Timeline

Viacheslav changed the task status from Open to In progress.Jul 26 2022, 7:08 PM

VyOS config:

set nat source rule 10 destination address '192.0.2.0/24'
set nat source rule 10 exclude
set nat source rule 10 outbound-interface 'any'
set nat source rule 10 protocol 'all'
set nat source rule 10 source address '0.0.0.0/0'
set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '203.0.113.0/24'
set nat source rule 100 translation address masquerade

The bug is still here:

vyos@r14# run show nat source rules 
Traceback (most recent call last):
  File "/usr/libexec/vyos/op_mode/nat.py", line 157, in <module>
    res = vyos.opmode.run(sys.modules[__name__])
  File "/usr/lib/python3/dist-packages/vyos/opmode.py", line 118, in run
    res = func(**args)
  File "/usr/libexec/vyos/op_mode/nat.py", line 152, in show_rules
    return _get_formatted_output_rules(nat_rules, direction)
  File "/usr/libexec/vyos/op_mode/nat.py", line 103, in _get_formatted_output_rules
    sport {sport}'''
UnboundLocalError: local variable 'sport' referenced before assignment
[edit]
vyos@r14#
Viacheslav changed the task status from In progress to Needs testing.Jul 27 2022, 10:02 PM
Viacheslav moved this task from Need Triage to Finished on the VyOS 1.4 Sagitta board.