Community discussions

MikroTik App
 
oxy1
just joined
Topic Author
Posts: 11
Joined: Tue Mar 07, 2017 2:19 am

Routing next hop recursion not working over PPP framed routes

Fri May 11, 2018 4:15 pm

I'm seeing what appears to be a recent bug with recursive routing over PPP framed routes. I'm guessing this change of behaviour was introduced in 6.40 as part of "ppp - use interface name instead of IP as default route gateway;" or related change.

In 6.38.7 (bugfix), it works fine as follows:
[admin@pppoe-server] > /ip ro pr ter where static
 0 ADS  dst-address=3.3.3.3/32 gateway=2.2.2.2 gateway-status=2.2.2.2 reachable via  <pppoe-test> distance=1 scope=30 target-scope=10  
 1 A S  dst-address=7.7.7.7/32 gateway=3.3.3.3 gateway-status=3.3.3.3 recursive via 2.2.2.2 <pppoe-test> distance=1 scope=40 target-scope=30
2.2.2.2 is the PPPoE client, 3.3.3.3 is a framed route to the PPPoE client, and 7.7.7.7 is a static route via the framed route 3.3.3.3. Note that the static route to 7.7.7.7 has the target-scope=30 so it will use the framed-route that has scope=30. (This is a contrived setup just to show the issue.)

After upgrading to 6.40.8 (bugfix), it has stopped working:
[admin@pppoe-server] > /ip ro pr ter where static
 0 ADS  dst-address=3.3.3.3/32 gateway=<pppoe-test> gateway-status=<pppoe-test> reachable distance=1 scope=30 target-scope=10
 1   S  dst-address=7.7.7.7/32 gateway=3.3.3.3 gateway-status=3.3.3.3 unreachable distance=1 scope=40 target-scope=30
The static route is not active -- it is not using the framed route via 3.3.3.3 as it considers it unreachable. Perhaps the recursion test doesn't allow for an interface route.

This issue also exists on the latest current release 6.42.1.

Has anyone else seen this?

A simple lab setup to show this is as follows (ether2 on both routers are connected):

pppoe-server:
/interface pppoe-server server
add disabled=no interface=ether2
/ppp secret
add name=test password=test local-address=1.1.1.1 remote-address=2.2.2.2 routes=3.3.3.3/32
/ip route
add dst-address=7.7.7.7/32 gateway=3.3.3.3 scope=40 target-scope=30
pppoe-client:
/interface bridge
add name=loopback protocol-mode=none
/ip address
add address=3.3.3.3/32 interface=loopback
add address=7.7.7.7/32 interface=loopback
/interface pppoe-client
add disabled=no interface=ether2 password=test user=test
Cheers.
 
User avatar
Anumrak
Forum Guru
Forum Guru
Posts: 1174
Joined: Fri Jul 28, 2017 2:53 pm

Re: Routing next hop recursion not working over PPP framed routes

Fri May 11, 2018 4:56 pm

Yeah, now it's common behavior for ppp routes. You just need select interface instead of IP address on other side.
 
oxy1
just joined
Topic Author
Posts: 11
Joined: Tue Mar 07, 2017 2:19 am

Re: Routing next hop recursion not working over PPP framed routes

Fri May 11, 2018 5:08 pm

Thanks for the tip. It would work for this contrived example with static routes, but what about with BGP or other protocols which use next hop addresses?

My use case is using BGP over PPPoE.
 
User avatar
Anumrak
Forum Guru
Forum Guru
Posts: 1174
Joined: Fri Jul 28, 2017 2:53 pm

Re: Routing next hop recursion not working over PPP framed routes

Fri May 11, 2018 5:21 pm

Thanks for the tip. It would work for this contrived example with static routes, but what about with BGP or other protocols which use next hop addresses?

My use case is using BGP over PPPoE.
As client terminating service, PPPoE not using much in BGP design. BGP using in full mesh IP network or over MPLS. If you want to try using it over BGP, just assign a peer over ppp. You have to have static route over ppp and peer you will forward to 0.0.0.0/0 destination. Don't forget that IP header will exist after PPPoE server. Creating PPPoE session as point to point links between routers is bad design solution. PPPoE is client - server protocol, not router - router. After PPP frames will decapsulates, there will be IP header, and PPPoE server have to forward it in normal IP interface based on his routing table.
 
oxy1
just joined
Topic Author
Posts: 11
Joined: Tue Mar 07, 2017 2:19 am

Re: Routing next hop recursion not working over PPP framed routes

Fri May 11, 2018 5:48 pm

I understand that this is probably not the best design. However the PPPoE client is dual homed, and needs to use eBGP for that purpose.

The eBGP peer establishes fine using a framed route over PPPoE, and BGP prefixes are exchanged correctly. However routes learned by eBGP have a next hop address of the framed route, and the issue is with route recursion to that next hop -- it doesn't consider the PPPoE framed route as valid. This is a change in behaviour from earlier RouterOS versions.