Wednesday, 20 November 2024

Network Assessor for Microsoft Teams

A key component of the deployment of Microsoft Teams, is ensuring that the networks used to connect to Microsoft 365 services are operating at a satisfactory quality for a good user experience. Microsoft have been gracious enough to provide a command line tool for doing network testing, to ensure that your networks are up to snuff. However, being a command line tool it has its limitations and isn’t particularly user friendly. 

In this post, I will introduce you to a more user-friendly option called Network Assessor for Microsoft Teams. This tool offers a front end that allows you to run network assessments over a period of time and see in real time the results in graph-based format.

 

Network Assessor for Microsoft Teams


Network Assessor for Microsoft Teams offers you a front end for doing your network assessments. Underneath the covers, the tool is using the Microsoft Teams Network Assessment command line tool but giving you the ability to run and graph the data over time.


Download a copy from GitHub here:

DOWNLOAD HERE

 

Key features of the tool:

  • Graphs Packet Loss, Average Jitter, Latency and print the results of test in the results quadrant.
  • Zoom graphs in / out / forwards / backwards to view the data clearly.
  • Start / Stop and Pause the network tests at the click of a button.
  • Keep an eye on the status of testing using the tray icon colour by setting breach percentage thresholds. This will easily let you know that things are within your desired operating levels without having to open the interface. There are two levels of threshold breaches; one that changes the icon to orange in colour and the other that changes the icon to red in colour. These percentages are calculated on a per graph basis and if any graph breaches the percentage the colour will change.
  • Graphs will automatically highlight in red points in each of the graphs which are outside of Microsoft’s recommended bounds of operation. There are two levels for these thresholds: Client thresholds and Edge Thresholds. For more details see the Usage section below.
  • The status bar will display PASS/FAIL results for each graph. This calculation follows Microsoft's previous "ResultsAnalyzer.exe" tool that came with the old Skype for Business Network Assessment Tool. It’s a PASS/FAIL calculation, any graph having more than 10% of test attempts resulting in (Client or Edge) threshold breaches will equal a FAIL result.
  • You can select the frequency at which the tool will run tests. This ranges between 1 and 120 minutes.
  • Allows for graphs to be saved as PNG images for use in documentation/reports.
  • All the graphs can be shown at once or individual graphs can be selected using the “Window” menu item. Graphs are saved at the resolution that they are displayed, so opening individual graphs and then saving them can offer higher resolutions.
  • Every session that is created by the tool gets recorded in a CSV file for future reference. Sessions will “roll” to a new file based on the “Roll Time (hours)” setting in the Settings dialog. Logs can be rolled between 1 and 12 hours.
  • CSV files can be imported back into the tool by using the File > Import CSV File menu or dragging and dropping the file onto the interface directly from Windows Explorer.
  • Supports automatic download (note: Internet connection is required for this to work) and installation of the Microsoft Teams Network Assessment Tool by using the Help > Install Microsoft Tool menu item.
  • Support Connectivity Check. Select File > Connectivity Check.

·        Note: This tool is not intended for load/stress testing!

 

Tool Usage


Before you start using the tool you will have to download a copy of Microsoft's Network Assessment Tool. The Network Assessor has a simple way of doing this built into the user interface. Simply click on Help > Install Microsoft Tool:



Main Window Settings


The “Run Every x Mins” setting controls how often the network assessment tool will be run and log results. This value can be set between 1 minute and 2 hours.

The Threshold setting refers to two levels of thresholds that are recommend by Microsoft for real time audio for the statistics that are generated by the Network Assessment Tool. The first is the “Edge” values which are recommended for when you are testing from your perimeter network into Office 365. The second is recommended thresholds when testing from a “Client” subnet. The Edge values are lower and more restrictive than the client subnet because is expected that the client subnet will have more hops to get to Office 365 than the Edge.


Customer Edge to Microsoft Edge Thresholds:

Metric

Target

Latency (RTT)

< 60ms

Packet loss

<0.1% during any 15s interval

Packet inter-arrival Jitter

<15ms during any 15s interval

 

Client to Microsoft Edge Thresholds:

Metric

Target

Latency (RTT or Round-trip Time)

< 100ms

Packet loss

<1% during any 15s interval

Packet inter-arrival Jitter

<30ms during any 15s interval


Settings Window:

The tool has the following settings:


Network Assessment Tool Location: This is the location of the Microsoft Teams Network Assessment Command Line Tool that the Network Assessor is using. After the Network Assessor installs the tool to its default location in the Program Files folder, it will make a copy of the tool to the User folders. This is done because Windows security will not allow editing of the tools config file when it's located in the Program Files folder, without admin privileges. You can’t edit this value, it is just for your viewing pleasure.

Session Log Folder: The Session Logs by default are placed on the system in the “%AppData%\NetworkAssessor\SessionLogs” folder. If for some reason you would like to change this folder (perhaps for centralizing the logs on a file share) you can select a new folder here.

Red Level Breach Percentage: This is the percentage of breaches (on a per graph basis) that has to occur for the task bar icon to change to red colour.

Orange Level Breach Percentage: This is the number of breaches (on a per graph basis) that has to occur for the task bar icon to change to orange colour.

Turn Off Minimise Notification: When this check box is ticked it will turn off the task bar notifications.

Auto Scroll Graph: When this check box is ticked it means that the graphs will automatically scroll when new points are added to it graph.

Roll Time (Hours): This is the number of hours of testing that will be logged to CSV until a new session log file is created. When the file rolls the graphs will also be cleared. This is to try and maintain the performance of the graphs. Also, when the graph is cleared the breach counters will also be cleared.

Remote IP (IPv4): This setting is used to lock the tool to send all media tests to the same media endpoint in the cloud. If you do not use this setting the underlying Microsoft tool will use DNS to retrieve a random media address. In Australia, I have found this to give bad results, with some media addresses residing in Japan which give results that are not useful. I would suggest you do some tests with the tool to learn of a good media address to use. Then take the IP of that media address and put it in the Remote IP setting, locking the tool to only use the known good media address. See the section below for more details.


 An Issue With the Microsoft Teams Network Assessment Tool


For those who have been around a while, there was a previous version of the Microsoft Network Assessment tool that was built for Skype for Business Online. It did very similar things to the current tool, however, it was built on different backend infrastructure. 

When testing the latest version of the Network Assessor tool (Version 1.6 released 1/31/2024), I noticed the Microsoft Tool giving some less than desirable results. When running longer tests, I was consistently getting good values followed by bad values which, when graphed, looked like a heart rate chart:

 


When I looked closer at the Microsoft Tool and how it works, I found that the way it discovers the media endpoints is by sending a DNS lookup to a DNS traffic manager in Azure. The way this works is that each time you make a request to the DNS name the server will round robin the addresses from a regional list. This functions as a method of load balancing clients across various media relays. The DNS name it uses for this is as follows:

Traffic Manager DNS Name: worldaz.tr.teams.microsoft.com

In the example below, we can see what the problem is for us here in Australia. This traffic manager will serve up local Australian media addresses some of the time, and other times (like an overzealous teppanyaki chef) it will flick you a Japanese based media addresses: 


We can see by the names that these are Japanese addresses, however, I checked them also on an IP geolocator:  



This is problematic, because the Network Assessment Tool from Microsoft is supposed to help you to troubleshoot your own local network connect and not test the Internet connection to an overseas country. In order to test your own Internet connection, it would be better if it only supplied you with the most local addresses to your current location.

To fix this, you need to lock down which media address the Microsoft tool will select. You can do this in the following way:


For the Network Assessor for Microsoft Teams Tool

Step 1:

Start the tool with default configuration and takes a couple of data samples. In the results you might see some of them giving high latency and other giving low latency. Pick the result that gives the lowest latency. Copy the Remote IP Address from the best result:


Step 2:

Take the Remote IP from the best test in the previous step, and go to File > Settings, then paste this value into the Remote IP (IPv4) field:


Once you've changed the setting, you will ensure that the tool is only testing to the Remote IP that you have entered. This way you avoid Microsoft's DNS load balancing issues.


If You Are Using the Microsoft Network Assessor Tool Command Line Tool

If you want to fix this issue for the Microsoft Network Assessment Command Line Tool, you can fix it like this:

Step 1: Start the tool with default configuration and takes a couple of data samples. In the results you might see some of them giving high latency and other giving low latency. E.g. In the test below, I got 11.6ms latency for one of the tests, which is good:


Step 2:

Open up notepad with Administrator privileges and then open the NetworkAssessmentTool.exe.config file (For a default install this will be in the "C:\Program Files (x86)\Microsoft Teams Network Assessment Tool" folder). In here you are going to set the Relay.IP key’s value to the “Remote IP” listed above. Here’s an example:

<add key="Relay.IP" value="52.115.99.47"/>

Now you should get consistent results in your future testing!!

 

The Wrap Up

I think it’s time to go and assess some networks, don’t you? What are you waiting for? Go. Assess. Do it!




Read more →

Popular Posts