Page MenuHomeVyOS Platform

Redirect traffict between two L3 interfaces
Open, WishlistPublicBUG

Description

vyos111:

tunnel tun113 {
    local-ip 192.168.122.111
    redirect tun114
    remote-ip 192.168.122.113
}
tunnel tun114 {
    local-ip 192.168.122.111
    redirect tun113
    remote-ip 192.168.122.114
}

vyos113:

tunnel tun111 {
    address 10.42.0.0/31
    local-ip 192.168.122.113
    remote-ip 192.168.122.111
}

vyos114:

tunnel tun111 {
    address 10.42.0.1/31
    local-ip 192.168.122.114
    remote-ip 192.168.122.111
}

Expected outcome:
The config applies cleanly on all nodes and vyos113 and vyos114 can ping each other via tun111.

Current outcome:
The config on vyos111 fails to apply as it tries to apply the redirect on tun113 when the tun114 interface has not yet been created.

Details

Difficulty level
Easy (less than an hour)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Perfectly compatible
Issue type
Unspecified (please specify)

Event Timeline

Unknown Object (User) created this task.Jan 19 2017, 4:52 PM
syncer triaged this task as Wishlist priority.Aug 1 2017, 4:01 AM
syncer changed the edit policy from "Task Author" to "Custom Policy".
syncer set Version to -.
syncer edited subscribers, added: Active contributors, Community, Maintainers; removed: Unknown Object (User).

We require more feedback on this from community
maybe we can create polls for such requests

syncer added a project: VyOS 1.2 Crux.
syncer added a subscriber: syncer.
dmbaturin set Is it a breaking change? to Perfectly compatible.

To reproduce:

set interfaces ethernet eth1 address '192.0.2.1/24'

set interfaces tunnel tun0 encapsulation 'gre'
set interfaces tunnel tun0 redirect 'tun1'
set interfaces tunnel tun0 remote '192.0.2.222'
set interfaces tunnel tun0 source-address '192.0.2.1'
set interfaces tunnel tun1 encapsulation 'gre'
set interfaces tunnel tun1 remote '192.0.2.233'
set interfaces tunnel tun1 source-address '192.0.2.1'

commit:

vyos@r14# commit
[ interfaces tunnel tun0 ]
Requested redirect interface "tun1" does not exist!

[[interfaces tunnel tun0]] failed
[[interfaces tunnel tun0 redirect]] failed
Commit failed
[edit]
vyos@r14#

I only see one solution - exclude mirror node from interface and add it as a separate option/service

set service redirect|port-mirror <x> source tunX 
set service redirect|port-mirror <x> destination tunY

As tc filter applied for every interface step by step and in this case (adding tun0) we don't have tun1 yet

dmbaturin set Issue type to Unspecified (please specify).
Viacheslav changed the subtype of this task from "Task" to "Bug".Fri, Apr 12, 4:10 PM