Traffic PDF
Traffic PDF
Traffic PDF
Instructor
Mr.Ali Sami, SatGate-Iraq - General Manager of SatGate-Iraq Company - Networking Specialist for more than 10 years - Specialization:Routing,Firewall,QoS,PPP - Certified MTCNA,MTCTCE,MTCWE,MikroTik Trainer
Housekeeping
Course materials Routers, cables Break times and lunch Restrooms and smoking area locations
Course Objective
Provide knowledge and hands-on training for MikroTik RouterOS basic and advanced traffic control capabilities for any size networks Upon completion of the course you will be able to plan, implement, adjust and debug traffic control configurations implemented by MikroTik RouterOS.
Introduce Yourself
Please, introduce yourself to the class
Your name Your Company
My number is:________
Connect routers to the AP SSID ap_RB_adv Assign IP address 10.1.1.XY/24 to the wlan1 Main GW and DNS address is 10.1.1.254 Gain access to the internet from your laptops via local router
Create new user for your router and change admin access rights to read
Class Setup
So heres the plan: 1- Mark by traffic type in prerouting 2- Limit by traffic type in global-in 3- Remark by IP address in forward 4- Limit in global-out
Overview:
Working with packets for bandwidth management is done in this order:
1. Mangle chain prerouting 2. HTB global-in 3. Mangle chain forward 4. Mangle chain postrouting 5. HTB global-out 6. HTB out interface
Firewall
Filter/NAT/Mangle
Firewall/Filter
Every user-defined chain should subordinate to at least one of the default chains
17
Connection Tracking
Connection Tracking (or Conntrack) system is the heart of firewall, it gathers and manages information about all active connections. By disabling the conntrack system you will lose functionality of the NAT and most of the filter and mangle conditions. Each conntrack table entry represents bidirectional data exchange Conntrack takes a lot of CPU resources (disable it, if you don't use firewall)
Conntrack Placement
Explanation
The new state tells us that the packet is the first that we see.
The ESTABLISHED state has seen the traffic in both directions and will then continuously match those packets. The RELATED state is one of the more tricky states. a connection is considered related when it is related to another already ESTABLISHED connection
The INVALID state means that the packet cant be identified or that it does not have any state, this can be for several reasons, such as the system running out of memory
Chain Input
Protection of the router allowing only necessary services from reliable source with agreeable load.
Create 2 rules to ensure that only you will be able to connect to the router
Accept all packets from your local network Drop everything else
Action log
RouterOS v3 Services
Important Issue
Firewall filter do not filter MAC level communications You should turn off Mac-telent and MAC-winbox features at least on the public facing interface You can disable the network discovery feature so that the router does not reveal itself
Chain Forward
Protection of the customers from the viruses and protection of the Public network from the clients
Import the viruses.rsc file into the router Create a jump rule to the chain viruses
Bogon IPs
There are ~4,3 billion IPv4 addresses There are several IP ranges restricted in public network There are several of IP ranges reserved (not used at the moment) for specific purposes There are lots of unused IP ranges!!! You can find information about all unused IP ranges judy google for bogon IPs
Advanced Protection
ICMP Ping Flood , PSD , D(DOS)
ICMP protocol
Internet Control Message Protocol (ICMP) is basic network troubleshooting tool - it should be allowed to bypass the firewall A typical IP router uses only five types of ICMP message (type: code) - for PING- message 0:0 and 8:0 - For TRACEROUTE message 11:0 and 3:3 - For path MTU discovery message 3:4 Every other type of ICMP message should be blocked
Move all ICMP packets to ICMP chain Create an action jump rule in the chain Input Place it accordingly Create and action jump rule in the chain Forward Place it accordingly
Ping Flood
Ping floods usually consist of volumes of random ICMP messages sent to the router We can use the limit condition to set rule match rate to a given limit - We can specify a rate/time as well as burst to allow for occasional higher traffic This condition is often used with the action log Dst. Limit can be used to set the rate on a per client or network basis - This is useful for forward chain limitation
Port Scan
Port scan is sequential TCP and UDP port probing PSD (port scan detection) is possible only for TCP protocol. - UDP is connectionless Ports are wieghted according to their number - Low ports from 0 to 1023 - High ports from 1024 to 65535 Since low ports usually identify more critical services they are afforted a higher cost per probe attempt
Intrusion Protection
Adjust all 5 accept rules in the chain ICMP to match a rate of 5 packets per second with a 5 packet burst. Create port scan protection - create a PSD drop rule in the chain virus - place it accordingly This makes sense since it is only a TCP service and will be more efficiently processed via that chain ( even though it is not a virus as such) Note that some types of network monitoring services look like port attempts(e.g. The Dude) - You should exclude PCs running the Dude from the PSD rule
DoS Attack
The mail target of DoS attack is consumption of resources ,such as CPU ,time, or bandwidth, so that standard services or valid systems requesting resources will get denial of service Usually the router is flooded with TCP/SYN (connection request) packets causing the server to respond with a TCP/SYN-ACK packet, and waiting for a TCP/ACK packet Mostly DoS attackers are virus infected customers.
NAT Types
As there are two IP addresses and ports in an IP packet header, there are two types of NAT
The one, which rewrites source IP address and/or port is called source NAT (src-nat) The other, which rewrites destination IP address and/or port is called destination NAT (dst-nat)
Firewall NAT rules process only the first packet of each connection (connection state new packets)
IP Firewall Diagram
Dst-nat
Action dst-nat changes packet's destination address and port to specified address and port This action can take place only in chain dstnat Typical application: ensure access to local network services from public network
Redirect
Action redirect changes packet's destination address to router's address and specified port This action can take place only in chain dstnat Typical application: transparent proxying of network services (DNS,HTTP)
Redirect Lab
Capture all TCP and UDP port 53 packets originated from your private network 192.168.XY.0/24 and redirect them to the router itself. Set your laptops DNS server to the random IP address Clear your router's and your browser's DNS cache Try browsing the Internet Take a look at DNS cache of the router
Dst-nat Lab
Capture all TCP port 80 (HTTP) packets originated from your private network 192.168.XY.0/24 and change destination address to 10.1.2.1 using dst-nat rule Clear your browser's cache on the laptop Try browsing the Internet
NAT Helpers
You can specify ports for existing NAT helpers, but you can not add new helpers
Src-nat Lab
You have been assigned one public IP address 172.16.0.XY/32 Assign it to the wireless interface Add src-nat rule to hide your private network 192.168.XY.0/24 behind the public address Connect from your laptop using winbox, ssh, or telnet via your router to the main gateway 10.1.1.254 Check the IP address you are connecting from (use /user active print on the main gateway)
Firewall Mangle
IP packet marking and IP header fields adjustment
What is Mangle?
The mangle facility allows to mark IP packets with special marks. These marks are used by other router facilities like routing and bandwidth management to identify the packets. Additionally, the mangle facility is used to modify some fields in the IP header, like TOS (DSCP) and TTL fields.
Mangle Structure
Mangle rules are organized in chains There are five built-in chains:
Prerouting- making a mark before Global-In queue Postrouting - making a mark before Global-Out queue Input - making a mark before Input filter Output - making a mark before Output filter Forward - making a mark before Forward filter
Mangle actions
There are 7 more actions in the mangle:
mark-connection mark connection (only first packet) mark-packet mark a flow (all packets) mark-routing - mark packets for policy routing change MSS - change maximum segment size of the packet change TOS - change type of service change TTL - change time to live strip IPv4 options
Marking Connections
Use mark connection to identify one or group of connections with the specific connection mark Connection marks are stored in the connection tracking table There can be only one connection mark for one connection. Connection tracking helps to associate each packet to a specific connection (connection mark)
Marking Packets
Packets can be marked Indirectly. Using the connection tracking facility, based on previously created connection marks (faster) Directly. Without the connection tracking - no connection marks necessary, router will compare each packet to a given conditions (this process imitates some of the connection tracking features)
Mangle View
Bandwidth Management
Simple Queues Bursting
Estimating Bandwidth
A wireless link will only be able to provide half its link speed as actual data throughput Throughput is a measurement of data rate over time.22mbps means 22 megabits can flow through the link in 1 second If more than the available data rate tries to flow through, the system will queue up the waiting bits. This will lead to lag or slower download rates. The latency of a link is how long the bits have to queue for before being allowed to transit Since normally wireless links will not provide the same level of bandwidth and latency as wired links, we can employ QoS mechanisms to ensure fair use of (usually) contended wireless network.
Quality of Service
Quality of service (QoS) means that the router should prioritize and shape network traffic QoS is not so much about limiting,it is more about providing quality service to the network users. Some features of MikroTik routerOS traffic controls,ports,and other parameters - limit peer-to-peer traffic - prioritize some packet flows over thers - use queue bursts for faster web browsing - apply queues on fixed time intervals - share available traffic among users equally ,or depending on the load of the channel
Limitation to apply
Burst
Burst is one of the means to ensure enhanced (better)QoS Bursts are used to allow higher data rates(exceeding the max-rate)for a short period of time Bursts can give clients the impression of higher speed service and better browsing experience while still limiting data rates on bigger downloads To calculate burst you need to know the average data rate (calculated over a burst-time period)and how it relates to the burst threshold.
If the average data rate is less than the burst-threshold,burst can be used(actual data rate can reach burst-limit)
Burst Exercise
Limit your laptops upload/download - max-limit to 128kbps/128kbps - burst-lomit up to 256kbps/256kbps - burst-time 12 seconds Test the limitations Change the burst limit to 2048k and compare the results Change burst-threshold to 1024kbps/1024kbps-compare the results Change burst-threshold to 70kbps/70kbps and burst time to 60 second-compare the results
Universal Plug-and-Play
RouterOS allow to enable uPnP support for the router. UPnP allow to establish both-directional connectivity even if client is behind the NAT, client must have uPnP support There are two interface types for UPnP-enabled router: internal (the one local clients are connected to) and external (the one the Internet is connected to)
UPnP
Situation:
You have public IP address and /30 subnet of public addresses, You sometimes reach ISP speed limitation (5Mbps/5Mbps)
Requirements:
Public IP address for VIP clients Guaranteed speed for VIP clients
HTB
Hierarchical Token Bucket
HTB
All Quality of Service implementation in RouterOS is based on Hierarchical Token Bucket HTB allows to create hierarchical queue structure and determine relations between parent and child queues and relation between child queues RouterOS support 3 virtual HTBs (global-in, global-total, global-out) and one more just before every interface
HTB (cont.)
When packet travels through the router, it passes all 4 HTB trees When packet travels to the router, it passes only global-in and global-total HTB. When packet travels from the router, it passes global-out, global-total and interface HTB.
At first HTB will try to satisfy every child queue's limit-at only then it will try to reach max-limit
Dual Limitation
Maximal rate of the parent should be equal or bigger than sum of committed rates of the children
MIR (parent) CIR(child1) +...+ CIR(childN)
Maximal rate of any child should be less or equal to maximal rate of the parent
MIR (parent) MIR(child1) MIR (parent) MIR(child2) MIR (parent) MIR(childN)
HTB - limit-at
HTB - max-limit
Parent Queue
It is hard for your router to detect the exact speed of your Internet connection
To optimize usage of your Internet resource and to ensure desired QoS operation and should assign the maximal available connection speed manually.
To do so , you should create one parent queue with strict speed limitation and assign all your queues to this parent queue.
Parent Queue
Dual Limitation
Delete all other queues Create a parent queue (main _queue) with max-limit of 768kbps/768kbps Create one parent for limiting your laptops communication with the first test server - limit-at 256kbps/256kbps,max-limit to 512kbps/512kbps, dst-address:10.1.1.254 Create one queue for limiting your laptops communication with the second test server - limit-at 256kbps/256kbps,max-limit to 512kbps/512kbps, dst-address:10.5.1.2 Download from both test servers at once check the results Adjust priorities-give child 1 higher priority check the results
Queue Tree
Advanced queue structures
Queue Tree
Queue tree is direct implementation of HTB Each queue in queue tree can be assigned only in one HTB Each child queue must have packet mark assigned to it
If placed in same place Simple queue will take traffic before Queue Tree
HTB Lab
Create Queue tree from the example Extend mangle and queue tree configuration to prioritize ICMP and HTTP traffic over all other traffic only for regular clients
Replace regular client packet mark with 3 traffic type specific marks Create 3 child queues for regular client queue in queue tree Assign packet marks to queues
Queue Types
RouterOS have 4 queue types:
FIFO First In First Out (for Bytes or for Packets) RED Random Early Detect (or Drop) SFQ Stochastic Fairness Queuing PCQ Per Connection Queuing (MikroTik Proprietary)
100% Shaper
100% Scheduler
Behaviour: What comes in first is handled first, what comes in next waits until the first is finished. Number of waiting units (Packets or Bytes) is limited by queue size option. If queue is full next units are dropped
FIFO
RED
Behaviour: Same as FIFO with feature additional drop probability even if queue is not full.
This probability is based on comparison of average queue length over some period of time to minimal and maximal threshold closer to maximal threshold bigger the chance of drop.
SFQ
Behaviour: Based on hash value from source and destination address SFQ divides traffic into 1024 sub-streams Then Round Robin algorithm will distribute equal amount of traffic to each sub-stream
SFQ Example
SFQ should be used for equalizing similar connection Usually used to manage information flow to or from the servers, so it can offer services to every customer Ideal for p2p limitation, it is possible to place strict limitation without dropping connections,
PCQ
Behaviour: Based on classifier PCQ divides traffic into substreams. Each sub-stream can be considered as FIFO queue with queue size specified by limit option
After this PCQ can be considered as FIFO queue where queue size is specified by total-limit option.
Enable Allow Remote Requests option to transform DNS client into DNS cache
DNS cache allows to use your router instead of remote DNS server, as all caches - it minimizes resolution time
DNS cache also can act as DNS server for local area network address resolution
Add static DNS entry www.XY.com to your router's Local IP address (XY your number)
Add static DNS entry www.XY.com to neighbour router's Public IP address (XY your neighbours number)
DHCP client/relay/server
DHCP
The Dynamic Host Configuration Protocol is used for dynamic distribution of network setting such as:
IP address and netmask Default gateway address
DNS and NTP server addresses More than 100 other custom option (supported only by specific DHCP clients)
DHCP Offer
src-mac=<DHCP-server>, dst-mac=<broadcast>, protocol=udp, srcip=<DHCP-server>:67, dst-ip=255.255.255.255:67
DHCP Request
src-mac=<client>, dst-mac=<broadcast>, protocol=udp, src-ip=0.0.0.0:68, dst-ip=255.255.255.255:67
DHCP Acknowledgement
src-mac=<DHCP-server>, dst-mac=<broadcast>, protocol=udp, srcip=<DHCP-server>:67, dst-ip=255.255.255.255:67
hostname option allow RouterOS clients to send additional identification to the server, by default it is system identity of the router
DHCP Client
DHCP Server
There can be only one DHCP server per interface/relay combination on the router
To create DHCP server you must have
IP address on desired DHCP server interface
All 3 options must correspond Lease on Disk should be used to reduce number of writes to the drive (useful with flash drives)
DHCP Networks
In DHCP Networks menu you can configure specific DHCP options for particular network.
Same of the options are integrated into RouterOS, others can be assigned in raw form (specified in RFCs)
Additional information at:
http://www.iana.org/assignments/bootp-dhcp-parameters
DHCP server is able to send out any option DHCP client can receive only implemented options
DHCP Options
Implemented DHCP options
Subnet-Mask (option 1) - netmask
IP Address Pool
IP address pools are used to define range of IP addresses for dynamic distribution (DHCP, PPP, Hotspot)
Address pool must exclude already occupied addresses (such as server or static addresses)
It is possible to assign more that one range to the pool
IP Address Pools
Delay Threshold prioritize one DHCP server over another (bigger delay less priority)
Add ARP For Leases allow to add ARP entries for leases if interface ARP=reply-only
DHCP Server
DHCP Relay
DHCP Relay is just a proxy that is able to receive a DHCP discovery and request and resend them to the DHCP server
There can be only one DHCP relay between DHCP server and DHCP client
DHCP communication with relay does not require IP address on the relay, but relay's local address option must be the same with server's relay address option
DHCP Relay
DHCP Lab
Interconnect with your neighbour using Ethernet cable
Create a bridged network with 2 DHCP servers and 2 DHCP clients (laptops) and try out authoritative and delay threshold options
Web proxy
Web-Proxy
Web-proxy have 3 mayor features
HTTP and FTP traffic caching DNS name filtering DNS redirection
Web-Proxy Caching
No caching
Max-cache-size = none
Cache to RAM
Max-cache-size none Cache-on-disk = no
Cache to HDD
Max-cache-size none Cache-on-disk = yes
Cache drive
Web-Proxy Options
Maximal-clientconnections number of connections accepted from clients Maximal-serverconnections number of connections made by server
Web-Proxy Options
Serialize-connections use only one connection for proxy and server communication (if server supports persistent HTTP connection) Always-from-cache - ignore client refresh requests if the cache content is considered fresh
Max-fresh-time - specifies how long objects without an explicit expiry time will be considered fresh
Cache-hit-DSCP specify DSCP value for all packets generated from the web-proxy cache
Web-Proxy Statistics
Proxy Rules
It is possible to intercept HTTP request based on:
TCP/IP information URL HTTP method
Access list also allow you to redirect denied request to specific page
URL Filtering
http://www.mikrotik.com/docs/ros/2.9/graphics:packet_flow31.jpg Destination host Destination path
Special characters
* - any number of any characters ? - any character
www.mi?roti?.com www.mikrotik* * mikrotik*
Regular Expressions
Place : at the beginning to enable regular expression mode
^ - show that no symbols are allowed before the given pattern $ - show that no symbols are allowed after the given pattern *....+ - A character class matches a single character out of all the possibilities offered by the character class \ (backslash) followed by any of [\^$.|?*+() suppress their special meaning.
Web-Proxy Lab
Teacher will have proxy, that redirects all requests to separate web-page on 10.1.1.254 Enable transparent web-proxy on your router with caching to the memory Create rules in access list to check its functionality Create rules in direct access list to check its functionality Create rules in Cache list to check its functionality