Blog of Things

Category: Troubleshooting

Troubleshooting cloud-init

In a recent blog post, I explained how one could set up a modern-day engineer’s command center on Ubuntu using cloud-init. While writing and testing the cloud-init configuration, I came across few issues that warranted me to write up a post on how to troubleshoot the cloud-init problems. This blog post describes:

  1. Use of syntax checkers to validate cloud-init configuration.
  2. Log files generated by cloud-init.
  3. Sample errors

View Full Post

FortiGate Virtual Machine Config Drive – Missing Pieces

With FortiOS version 5.4.1 and above, Fortinet added support for initial configuration of a FortiGate virtual machine by attaching a cloud-init config drive. When the FortiGate VM powers up for the first time, it will automatically read the data from the config drive and apply both license and configuration to the FortiGate. This is an excellent way to automate deployments of FortiGate virtual machines in production or lab environments. You can read more about the config drive support and how to use one at In this blog post, I will try to capture some of the missing pieces and also provide pointers on how to troubleshoot.

View Full Post

Testing DSCP using ping tcpdump and tshark

Introduction and Setup

If you came here via a search engine, chances are that you looking for a quick and dirty way of testing DSCP on your network. Differentiated Services, described in RFC 2474 and RFC 2475 provide a way to mark, prioritize, police, etc IP flows based on various attributes. This allows network operators to maintain different levels of QoS on their networks.

This post captures details on how to generate traffic from a client with different DSCP fields set and verify that they are received on the server side.

View Full Post

PowerCLI Core on CentOS 7

VMware released PowerCLI Core for Linux and Mac that allows users to run cmdlets, which were possible to run only on Windows earlier. This post captures details on how to install PowerCLI Core on CentOS 7.

Steps Involved
  1. Install Microsoft .NET Core
  2. Install PowerShell
  3. Compile curl from source
  4. Install PowerCLI Core

View Full Post

Check the inode, it’s not always disk

A while ago I was assisting someone to troubleshoot login failures for a CGI application. I noticed that the CGI session information was not being written to the /tmp directory on the Linux server.

First suspect: Disk space.

df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/cciss/c0d0p2      32G   26G  4.1G  87% /
/dev/cciss/c0d0p1      97M   26M   67M  28% /boot
none                 1003M  8.0K 1003M   1% /dev/shm

View Full Post

FortiOS debug execute command

In order to debug whether the FortiOS has received the command executed on the shell, one can use the following process. This example below shows the reboot command being sent and how it’s received by FortiOS system init process.

Configure Logging

We want the logs to be stored in memory so that they can be reviewed. Use the following commands to log debug messages to memory.

Note: Disable this after troubleshooting has been completed.

View Full Post