Two Mikrotiks, each with own subnet, single dhcp server, nat cable internet (development network and staging network)

I want to setup a network which has two subnets. I would like the following (I think):

                             
router 1 - 192.168.1.0/24
                   dhcp for 192.168.1.0/24 and 192.168.2.0/24 (not on the config, I want this)
                   eth0 (dhcp 80.xxx.xxx.xxx)   ------     (internet)
                   bridge  (src nat for providing services to internet)
                       eth1 (dhcp 192.168.1.0/24)      ------     eth2 router 2 - 192.168.2.0/24
                       eth2 (dhcp 192.168.1.0/24)      ------     temp connection from dev pc (static dhcp 192.168.1.90)

router 2 - 192.168.2.0/24
                   eth0    ------     eth1 router 1
                   bridge
                       eth1 (dhcp 192.168.2.0/24)      ------     eth2 router 2 - 192.168.1.0/24
                       eth2 (dhcp 192.168.2.0/24

I cant get the subnets to talk to each other, Im not sure if the bridges are required on router 2, I can ping router 1 from router 2 and vice verse but I can’t ping a machine from either subnet from either subnet.

I can ping both routers when connected in on either router 1 or 2 but this might be a false positive becuase I cant see an arp entry in my routing table…winbox can only see a single router when Im connected in on a single interface on my dev machine.

I want two subnets, with a cable modem, which has nat. I want both 192 networks to be able to see their source and destination addresses unchanged as they are within the same private network but Im having problems with the nat and bridge. Its a bit of a mess, but this is what I currently have. Its broken at the minute. Feel free to destroy and start simple and we can build it up.

Router 1 config export

/interface bridge
add admin-mac=D4:CA:6D:xx:xx:xx auto-mac=no comment=defconf name=bridge
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip pool
add name=default-dhcp ranges=192.168.1.10-192.168.1.254
/ip dhcp-server
add address-pool=default-dhcp disabled=no interface=bridge name=defconf
/interface bridge port
add bridge=bridge comment=defconf interface=ether3
add bridge=bridge comment=defconf interface=ether4
add bridge=bridge comment=defconf interface=ether5
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
/ip address
add address=192.168.1.1/24 comment=defconf interface=bridge network=\
    192.168.1.0
add address=192.168.2.1/24 interface=ether2 network=192.168.2.0
/ip dhcp-client
add comment=defconf dhcp-options=hostname,clientid disabled=no interface=ether1
/ip dhcp-server network
add address=192.168.1.0/24 comment=defconf gateway=192.168.1.1
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.1.1 name=router.lan
/ip firewall filter
add action=accept chain=input comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
    invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=drop chain=input comment="defconf: drop all not coming from LAN" \
    in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" \
    ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" \
    ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
    connection-state=established,related
add action=accept chain=forward comment=\
    "defconf: accept established,related, untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=\
    invalid log=yes
add action=drop chain=forward comment=\
    "defconf:  drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
    connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=\
    out,none out-interface-list=WAN
/ip route
add check-gateway=ping distance=1 dst-address=192.168.2.0/24 gateway=\
    192.168.2.1
/ip service
set www address=192.168.1.0/24
set winbox address=192.168.1.0/24

Router 2 config export

/interface bridge
add admin-mac=D4:CA:6D:69:93:5E auto-mac=no comment=defconf name=bridge
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=default-dhcp ranges=192.168.2.10-192.168.2.254
/ip dhcp-server
add add-arp=yes address-pool=default-dhcp disabled=no interface=bridge name=defconf
/interface bridge port
add bridge=bridge comment=defconf interface=ether2
add bridge=bridge comment=defconf interface=ether3
add bridge=bridge comment=defconf interface=ether4
add bridge=bridge comment=defconf interface=ether5
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
/ip address
add address=192.168.2.1/24 comment=defconf interface=bridge network=192.168.2.0
add address=192.168.1.1/24 interface=ether1 network=192.168.1.0
/ip dhcp-server lease
add address=192.168.55.90 client-id=1:0:1f:c6:37:14:3d mac-address=00:1F:C6:37:14:3D server=defconf
add address=192.168.55.3 client-id=ff:b6:22:f:eb:0:2:0:0:ab:11:94:4f:76:6c:55:eb:84:59 mac-address=\
    88:51:FB:7E:85:2F server=defconf
/ip dhcp-server network
add address=192.168.2.0/24 comment=defconf gateway=192.168.2.1
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.1.1 name=router.lan
/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=\
    established,related
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf:  drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
    connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
/ip route
add check-gateway=ping distance=1 dst-address=192.168.1.0/24 gateway=ether1
/system routerboard settings
set silent-boot=no
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN

Thanks :slight_smile:
twok

Quick ask on what you want to achieve.
Router 1 connects to cable modem?
Router 2 connects to router 1?
Both routers will have then locally same IP subnets that all clients can see each other?
So you want to use same subnet on two different routers both using same DHCP range (I might miss read).
How can you use same subnet on different routers and they would know where to sent data to?

Wouldn’t it be simpler to use one router as router and another one as a switch/bridge only
to extend the network?