New to MikroTik - Hello from Fabthemolis

Hi everyone!

I'm Fabthemolis, just joined the MikroTik community forum. I've been curious about MikroTik routers for a while and finally decided to take the plunge.

I'm currently running a small home network and considering upgrading to a MikroTik hAP ax2 or similar device. Coming from a consumer router background, I'm excited to explore RouterOS and all the possibilities it offers - VLANs, firewall rules, bandwidth management, etc.

Looking forward to learning from the experienced users here. Any tips for a complete beginner getting started with RouterOS?

Thanks!

Hello @Fabthemolis and welcome to Mikrotik forum. :grin:

There is a great number of YouTube channels that you should check out such as: The Network Berg, The Network Trip, Wilmer Almazan / Arawi Academy, Mikrotik Indonesia - Citraweb, MikroTik Masters, and of course official Mikrotik channel: MikroTik

Also check some of the topics on this forum:

Use this to learn how to export configuration from your device and how to insert it to your topic:

Forum rules - #5 by gigabyte091

Then the important one, read this before any attempt of configuring anything on your device (Especially read rule #7):

The twelve Rules of Mikrotik Club

If you have any question or a problem configuring your device, open a topic, include whole configuration of the device you are having a problem with.

!!! DO NOT USE CHATGPT AND ANY OTHER AI TOOL AS YOU MAY RECIEVE INVALID CONFIGURATIONS FROM THEM AND POTENTIALY EXPOSING YOUR NETWORK TO THE DARK SIDE OF THE INTERNET !!!

My big tips for a beginner are

  • To configure, connect to ether2 or any port EXCEPT ether1
  • Start by using Quickset to get things working and go back to it as much as you want [others will probably disagree] BUT once you use the regular settings menus, don't use Quickset again, because it can undo changes you make from regular settings menus in unpredictable ways.

Some suggestions:
If your devices work, don't update them.
It's stupid to enable automatic updates (it doesn't exist by default).
If there's a security bug, that's another matter, but most of the time,
a properly configured firewall (the default one) is more than enough.
Configure your firewall well.
Don't delete default settings just because someone with a different opinion tells you to.
Never use "detect internet" (is not an opinion, just search the forum...)
Don't use quickset, don't use it, it shouldn't be used...

I smell bot.

Probably, but not necessarily for now.

Interesting opines

Use quickset
Dont use quickset.

Could be, don't use quickset until one understands what changes it makes on the actual config, which is really not possible until one understands how the lines in the config integrate with each other.

Should be: Use quickset at your own peril. :wink:

I am advocating the converse. If you understand lines in the config, you wouldn't want to use Quickset. So I suggest use Quickset to get started as a newbie, but once you alter the config using anything other than quickset, never use Quickset again on that device.

Well, that is - not so casually - Rule #4.
The twelve Rules of Mikrotik Club

4. You do not use Quickset.

corollary:

[4] You can actually use it, but only once and only starting from a reset configuration.

Disagree you are already asking someone with no knowledge to make a decision to use or not use based on inadequate knowledge.

My guess is that this user won't be coming back, based on their user stats...

My recommendations for a new user would be to use their new MikroTik router behind their current router so they are working in a sandbox environment until they get things working. I.e. treat the existing router and dhcp server as the new MikroTik router's "ISP" connection. This has mulitple advantages.

  1. Much less likely to affect current users of home network.
  2. The new router is somewhat protected by the existing router, i.e. unless it is in a "DMZ" or is being port forwarded to, it will be protected from connections from the interenet.
  3. The WAN side firewall can be tested from the original router's LAN side.

And I think they should start with either the default config or quickset for the first config, because it will as least create a reasonably safe config.

I don't recommend manually doing it following a youtube video. I have seen too many that don't protect the router while it is being configured from an "empty" config.

That manual configuration can come after the user learns enough from looking at the defconf compared to a reset with no-defaults, what @rextended referred to as "default" with no ipaddresses, etc.

What is confusing is that winbox show this as "No Default Configuration", to create an "emply" config. If this isn't checked, then the defconf will be applied, which is more like initial home config (with ipaddresses, dhcp server, dns, NAT masquerade, and firewall configured).

For reference, I am including an export after resetting with "no-defaults"

Here is what export shows, unless you include verbose

[demo@MikroTik] > export
# 2025-09-11 10:47:52 by RouterOS 7.19.6
# software id = ****
#
# model = RB760iGS
# serial number = *****
[demo@MikroTik] > 

If you do include the verbose qualifier, then it will display the "default" values that don't get printed by an export without verbose specified.

When using quickset, do it it first thing when the config has not been changed, i.e. after doing a reset config with default (and possibly save user).

I just did this with my lab RB760iGS, and using quickset (withoug the vpn) changes very little. It does allow you to change the LAN ip (but you have to change that multiple places, in the ip address and the dhcp-server range sections).

Here is the "sanatized" defconf exported just after the reset, then the export after using quickset to change the LAN ip address from 192.168.88.1 to 192.168.188.1, and router_id to "LAB-RB760iGS", getting the WAN configuration from my home router's dhcp server.

with this selected from System menu (same as /system/reset-configuration keep-users) (I also selected no backup, because I didn't want one, I am just playing and there is nothing of value to backup)

# 2026-05-24 19:51:16 by RouterOS 7.19.6
# software id = ***
#
# model = RB760iGS
# serial number = ****
/interface bridge
add admin-mac=DC:2B:AD:4D:EC:F2 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.88.10-192.168.88.254
/disk settings
set auto-media-interface=bridge auto-media-sharing=yes auto-smb-sharing=yes
/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
add bridge=bridge comment=defconf interface=sfp1
/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.88.1/24 comment=defconf interface=bridge network=\
    192.168.88.0
/ip dhcp-client
add comment=defconf interface=ether1
/ip dhcp-server
add address-pool=default-dhcp interface=bridge name=defconf
/ip dhcp-server network
add address=192.168.88.0/24 comment=defconf dns-server=192.168.88.1 gateway=\
    192.168.88.1
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.88.1 comment=defconf name=router.lan type=A
/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=accept chain=input comment=\
    "defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
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 hw-offload=yes
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
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
/ipv6 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 ICMPv6" protocol=\
    icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" \
    dst-port=33434-33534 protocol=udp
add action=accept chain=input comment=\
    "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\
    udp src-address=fe80::/10
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \
    protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\
    ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\
    ipsec-esp
add action=accept chain=input comment=\
    "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment=\
    "defconf: drop everything else not coming from LAN" in-interface-list=\
    !LAN
add action=fasttrack-connection chain=forward comment="defconf: fasttrack6" \
    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 packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment=\
    "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \
    hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\
    icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=\
    500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\
    ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\
    ipsec-esp
add action=accept chain=forward comment=\
    "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment=\
    "defconf: drop everything else not coming from LAN" in-interface-list=\
    !LAN
/system clock
set time-zone-name=America/New_York
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN

Here with LAN interface changed to 192.168.188.1/24 and identity name set to "LAB-RB760iGS"

# 2026-05-24 19:52:46 by RouterOS 7.19.6
# software id = ***
#
# model = RB760iGS
# serial number = ****
/interface bridge
add admin-mac=DC:2B:AD:4D:EC:F2 auto-mac=no comment=defconf name=bridge
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip pool
add name=dhcp ranges=192.168.188.10-192.168.188.254
/disk settings
set auto-media-interface=bridge auto-media-sharing=yes auto-smb-sharing=yes
/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
add bridge=bridge comment=defconf interface=sfp1
/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.188.1/24 comment=defconf interface=bridge network=\
    192.168.188.0
/ip dhcp-client
add comment=defconf interface=ether1
/ip dhcp-server
add address-pool=dhcp interface=bridge name=defconf
/ip dhcp-server network
add address=192.168.188.0/24 comment=defconf dns-server=192.168.188.1 \
    gateway=192.168.188.1 netmask=24
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.188.1 comment=defconf name=router.lan type=A
/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=accept chain=input comment=\
    "defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
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 hw-offload=yes
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
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
/ipv6 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 ICMPv6" protocol=\
    icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" \
    dst-port=33434-33534 protocol=udp
add action=accept chain=input comment=\
    "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\
    udp src-address=fe80::/10
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \
    protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\
    ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\
    ipsec-esp
add action=accept chain=input comment=\
    "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment=\
    "defconf: drop everything else not coming from LAN" in-interface-list=\
    !LAN
add action=fasttrack-connection chain=forward comment="defconf: fasttrack6" \
    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 packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment=\
    "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \
    hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\
    icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=\
    500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\
    ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\
    ipsec-esp
add action=accept chain=forward comment=\
    "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment=\
    "defconf: drop everything else not coming from LAN" in-interface-list=\
    !LAN
/system clock
set time-zone-name=America/New_York
/system identity
set name=LAB-RB760iGS
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN

If you compare these with diff or something like winmerge on Windows, you can see very little is changed.

The problems with quickset are that it should only be used from the initial state, but that isn't enforced, and that leads to issues.

Do read these threads about quickset:

Some youtube videos about quickset:

How To Setup Internet Quick in Mikrotik Router by SSTec Tutorials. This shows setup using quickset from WinBox (with static IP address from ISP) (older video)

Need to get a MikroTik router up and running fast? Let's take a walkthrough of the Quickset Wizard. by Scoop Distribution. This goes into more details about wireless setup, but does not use WinBox (which I prefer, as you can export the configs before you make any changes and also after the changes are made).

When not to use QuickSet in MikroTik devices by MikroTik.

TL;DR use Quickset only for initial setup (you can use later as long as you have not changed anything outside of QuickSet, but as with many things in MikroTik, it will not warn you of this limitation).

Just the diffs:

Column 1 Column 2 Column 3
/ip pool /ip pool
add name=default-dhcp ranges=192.168.88.10-192.168.88.254 add name=dhcp ranges=192.168.188.10-192.168.188.254 OK, 88->188
/ip address /ip address
add address=192.168.88.1/24 comment=defconf interface=bridge network=192.168.88.0 add address=192.168.188.1/24 comment=defconf interface=bridge network=192.168.188.0 OK, 88->188
/ip dhcp-server /ip dhcp-server
add address-pool=default-dhcp interface=bridge name=defconf add address-pool=dhcp interface=bridge name=defconf OK, changed address-pool name.
/ip dhcp-server network /ip dhcp-server network
add address=192.168.88.0/24 comment=defconf dns-server=192.168.88.1 gateway=192.168.88.1 add address=192.168.188.0/24 comment=defconf dns-server=192.168.188.1 gateway=192.168.188.1 netmask=24 <- Added netmask parameter?
/ip dns static /ip dns static
add address=192.168.88.1 comment=defconf name=router.lan type=A add address=192.168.188.1 comment=defconf name=router.lan type=A OK, 88->188
/system identity
set name=LAB-RB760iGS OK, changed identity name.

Why is the netmask parameter added to dhcp-server network?

Why not? Why is not already present on defconf?

Exactly, it is either default (and as such might not be shown in a "plain" export) or it isn't.

It seems that we have a third state:

  1. default (not shown in export)
  2. non-default (shown in export)
  3. modified to default AND shown in export

But we all know that tertium non datur:
https://en.wikipedia.org/wiki/Law_of_excluded_middle

default is nothing (undefined)...

defconf is not the default, is the script for first configuration...

Sure, but if netmask=24 is "undefined" in default, the Quickset should not change that, unless it is changed to anything different from netmask=24 which then is a sort of "implied" value.

Or defconf should set it.

In any case that particular difference is ...

... illogical.

In fact... I wrote it...

For completeness, the netmask is still communicated, like DNS,
if the value is not inserted in the "network" based on the values ​​that the Router has (for DNS) and the IP address (/24).

I understand that there can be a kind of (illogical) logic like:

  • if network is not defined then use the netmask from IP address
  • if network is defined then use it

But there is no reason that I can think of having a different netmask in the IP address and in network.

It's difficult to give a quick example, but it might be helpful...