Upgrade from 3.23 -> 3.28 Broke Routing

Here’s a little bit about my setup:

X86 Based Router
WAN1 - ISP #1
WAN2 - ISP #2
LAN - All devices on LAN side of router have public IP addresses.

I run BGP will full routes from both ISPs. I was running 3.23 with routing-test and I attempted to upgrade to 3.28 with routing-test.

I just tried upgrading from 3.23 to 3.28 and after the upgrade my LAN clients were not able to reach the internet. I could ping internet hosts directly on the MT router and I could also ping the LAN clients directly from the router. LAN clients could ping the LAN IP of the router and could also ping the WAN IPs of the router. LAN clients could not, however, ping anything beyond the WAN side IP addresses.

I quickly switched from routing-test to routing and everything worked again.

Does anyone have any ideas what would have caused this? Are there any new settings/features that I have to configure differently with this new version of routing-test?

keefe

Similar thing happened to me on one router.

After some more testing it looks like the problem is that my main route/subnet is not being advertised via BGP when I use routing test.

I’m advertising three /24s and one /21. The three /24s get advertised but not the /21. Why would that be? All three /24s and the /21 are listed in the BGP networks tab.

The only difference I can think of between the /24s and the /21 is that the /21 is not actually assigned to an interface as a /21. I break the /21 into /24s and then assign them to the LAN interfaces.

Could it be that BGP networks isn’t working right in routing-test?

Keefe

what about ‘Advertisements’ tab? do you use routing filters?

Here’s was mikrotik support told me:

Hello,

We have changed behavior a bit.
BGP Networks are not advertised if route for this network is not present in routing table. Easiest way how to get back old behavior (if you need it) is to add static unreachable route which matches BGP network.

Regards,
Maris

F*CK!..

so, now ‘Syncronize’ parameter is always ‘yes’ (for me, it was always ‘no’, as default).

even more: ‘synchronize (yes | no; Default: no) install a route for this network only when there are some IGP routes falling under the range of this network’ - so now there should be EXACTLY that announced route? what if I announce /24, but there are two /25 routes for my different subnets in routing table? should I add /24 unreachable route? is only main routing table taken into account?

p.s. MT Staff, please correct http://wiki.mikrotik.com/wiki/BGP#Network - there’s no more ‘synchronize’ :cry:

I also asked MT support that same question, but in my case its a /21 cut into multiple /24s.

Hello,

Yes you can add
/ip route add dst-address=XX.XX.XX.XX/21 type=unreachable

and then filter out in bgp filters all /24 routes.

Regards,
Maris

what exactly - ‘you can’ or ‘you must’?..

and… why do you need to filter it out, if you didn’t add /24s to Networks, do you?..

You can…if you want it to work. :wink:

I’m not sure on the filtering part yet because I haven’t had to chance to test this.

Thanks guys for the update. I must say I’m very dissapointed in MikroTik for not being more explicit with this change, noted in the changelog as:
*) routing-test - changed BGP network and default-originate behaviour;

It should have been something like:
*) routing-test - changed BGP network and default-originate behaviour; removed synchronization option

There is no excuse not to include more detail, especially one that major.

=(

I start to get the feeling they enjoy it when their customers are angry :laughing: :slight_smile: Like business masochism :stuck_out_tongue:

Yes, you have to add /24 unreachable route if you want to advertise that /24 network.

I guess we’ll be doing this workaround for a while. I hope I haven’t crashed my buddy’s router with a bogus BGP packet coming from my 3.28 with routing-test. Its always nice to play with live production routers with lots and lots of clients connected through them :mrgreen: pumps you full of adrenalin! And yes, this time the routing-test 3.28 x86 is WORKING. I wonder for how long :laughing:

I like this too =) Hope nobody of our clients read this )))

good news - v3.30 is again with ‘Synchronize’ tick =)