I am a software engineer who is new to all these

Hi There,

I recently got this task, since the task-giver is a good friend of mine, I decided to give it a try.

I have 0 knowledge of the mikrotik and “internet service provider” world. so be patient with me. thanks.

The task is to develop a micro service that can disable or enable clients’ internet service.

So I was given a spare mikrotik server for testing.

how do I see the “internet connection” for each user?
I stumbled upon the “Ethernet” list, from 1-8. its under “interface” tab. Are they the list of of internet service to the clients?

thanks.

As a SW engineer you should know clearly defined specs are paramount before starting any development.
Otherwise you start but you will never know when it ends nor where it ends.

So … what exactly is required to be done ? 1 line is not enough.
A small drawing of the network setup clearly indicating the related bits and pieces can also help (ISP connection, router, switches, client devices, …).

how do I see the “internet connection” for each user?

Depending on what Mikrotik & version of RouterOS the “Kid Control” function provides some “insight” on this.

In Winbox : “IP” > “Kid Control” where you can see the amount of data processed for internal IP’s (on the LAN-side), not the destinations on Internet.

If you want to “see” where the users are connecting to, you’ll have to look at the “connection table” (IP > Firewall > Connections)


Reading your opening-post I don’t think you want to venture into this task. You need a good understanding of the TCP/IP protocol to start with and be familiar some some of the essential services & protocols that make up “the internet”

Might be an easier solution to create SSID’s for the users that you want to have no internet, that way you can create a script to disable the interface and enable it

For someone who is supposed to be adept at writing software requirements, concur it was a piss poor effort.
I am thinking that the person is really someone who eats a lot and has developed processes that effectively allow him to get softer faster… ( nothing to do with code at all )
Alternatively, he is a developer of comfy fabrics Soft wear, :wink:

This can be done via firewall, using accept/drop rule based on ip address list, or VLAN (where different clients are assigned to different VLANs), or interface list.

how do I see the “internet connection” for each user?
I stumbled upon the “Ethernet” list, from 1-8. its under “interface” tab. Are they the list of of internet service to the clients?

What is an user?

A cable connected to ethernet port on the router, and the other end is provided to the user, regardless of how many machines are connected to this port via switch?

A machine connected to router, that is given an IP address, regardless of how/where, directly/indirectly via switch/wireless access point?

Having an “internet connection” is basically just a state, in which a machine has a route (allowed by firewall) to the world (and is NAT-ed if needed). In this state, machine can create many TCP/UDP connections to machines (servers) in the world. Do you want to see how many connections to the world are established by individual machines (users)?

I suggest you to study OSI model, especially L2, L3 and L4, and basics of L1. To understand how networking works, and to be able to speak using terms, that have a concrete and specific meaning.

Who do you mean here? The software developer, or the task-giver?

This looks like forwarded requirement from product, not solutionized, not broken down to specific technical needs. It seems okay, but the current wording misses one detail - should access be enabled/disabled to all clients, or individually. I would assume the latter.

The product shouldn’t even give a technical solution to the task. There should be just what outcome is to be achieved. Software developers are there to create appropriate solution, and implement it.