In general one should focus on the big three.
A. Right Allowed IP rules
B. Right Firewall Rules
C. Right Routes
R1
(1) Peer settings error…
add allowed-address=192.168.99.3/32,192.168.0.0/24 comment=“XXXXXXXXXXXXXXX”
endpoint-port=13231 interface=Wireguard public-key=
“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
This caught my eye because 192.168.0..0/24 is a LOCAL subnet on R1. Allowed peers never addresses local addresses or subnet!!!
(2) Furthermore, I think this is the peer setting for your REMOTE WARRIOR laptop PC3. If that is the case then you simply need ( endpoint port not required etc.)
add allowed-address=192.168.99.3/32 comment=“XXXXXXXXXXXXXXX” interface=Wireguard public-key=
“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
(3) There are fine for test rules but I prefer accuracy and clear defining of traffic. (easy to read and understand)
add action=accept chain=forward comment=TEST dst-address=192.168.101.0/24
src-address=192.168.0.0/24
add action=accept chain=forward comment=TEST dst-address=192.168.0.0/24
src-address=192.168.101.0/24
add action=accept chain=forward out-interface=wireguard dst-address=192.168.101.0/24 src-address=192.168.0.0/24
add action=accept chain=forward in-interface=wiregard src-address=192.168.101.0/24 dst-address=192.168.0.0/24
(4) Here is what I do for RELAY traffic ( in this case for PC3 to R2…
add action=accept chain=forward in-interface=wireguard out-interface=wireguard
Therefore any PC3 traffic on its way to R1, exits the tunnel at R1 and is then sitting at something equivalent to the LAN level at the router, so it needs to re-enter the tunnel to go to R2.
This handles the return traffic as well or the reverse scenario of R2 users to PC3
In this case I dont need to set four rules in the relay only ONE!
add chain=forward action=accept in-interface=wireguard scr-address=192.168.99.3
add chain=forward action=accept out-interface=wireguard dst-address=192.168.101.0/24 src-address=192.168.99.3
add chain=forward action=accept in-interface=wireguard src-address=192.168.101.0/24
add chain=forward action=accept out-interface=wireguard dst-address=192.168.99.2 src=address=192.168.101.0/24
The rule may appear to be a bit loosey goosy but I rely upon the firewall rules where appropriate to allow.refine traffic and thus why I insist upon clear defining rules where it makes sense…aka before actually hitting the LAN devices (end point).
(5) Firewall rules are not complete and not in order so that needs to be cleaned up!!
(6) Drop all the brute force crap that has nothing to do with traffic you need to support.
(7) The only time one needs to masquerade traffic normally is if one is passing many users to a third party VPN vendor which is only expecting the IP single IP it provided you with.
Other times people are lazy but if you have control over both ends of the tunnel R1 and R2, one should use Allowed IPs to delineate allowed traffic.
Be that as it may sometimes there are logical reasons to apply such rules. just looking for your logic for these two…
One for the fact I dont see these subnets identifited anywhere…
/ip firewall nat
add action=masquerade chain=srcnat dst-address=192.168.89.0/24 out-interface=Wireguard
add action=masquerade chain=srcnat dst-address=192.168.100.0/24 out-interface=Wireguard
R2
(8) Allowed IPs, change to.
/interface wireguard peers
*add allowed-address=192.168.99.0/24,192.168.0.0/24 comment=MRTWP1 *
endpoint-address=XXXXXXXXXXXXXXXXXXXX endpoint-port=13231
interface=Wireguard persistent-keepalive=10s public-key=\
(9) IP addresses change to.
/ip address
add address=192.168.101.1/24 interface=bridge network=192.168.101.0
add address=192.168.99.101/24 interface=Wireguard network=192.168.99.0
(10) These input chain rules make no sense to me as they are not idenfied anywhere on R2??
add action=accept chain=input src-address=192.168.88.0/24
add action=accept chain=input src-address=10.0.0.0/24
(11) Why do you have this rule, R2 is not capable of hosting…assuming CGNAT etc…
add action=accept chain=input dst-port=13231 protocol=udp
(12) This rule is really weak
add action=accept chain=forward comment=“Wireguard MRTWP1” dst-address=
192.168.101.0/24
DO you really want everybody to be able to access the subnet…
So either refine it at this end:
Clearly you want 192.168.0.0 to do so, and 192.168.99.3 so put those in a firewall address list ALLOWED for example.
add action=accept chain=forward in-interface=Wireguard src-address-list=ALLOWED dst-address=192.168.101.0/24
OR
refine who can enter the tunnel heading for R2 on R1 rules…one or the other, I always find it easier at the end point…
(13) It also appears you have duplicate rules… one with and one without the wireguard interface…
add action=accept chain=forward comment=“Wireguard MRTWP1” dst-address=
192.168.101.0/24 in-interface=Wireguard
add action=accept chain=forward comment=“Wireguard MRTWP1” dst-address=
192.168.101.0/24
(14) same need to cleanup firewall rules…