Monthly Archives: February 2018

Creating a (VERY) Basic Router for a Hyper-V Private Network – Part Three: Configuring Ubuntu as a Router


In Part One, I created the virtual switches to create a lab network that looks kind of like this:

Goal Virtual Network.png


In Part Two, I installed Ubuntu Linux on a virtual machine.

To finish the project, I need to do a few things:

  • Add a second network interface to the VM
  • Add a route on the firewall
  • Configure networking
  • Enable routing
  • Update the OS
  • Optimize it for virtualization

Adding a Second Network Interface to the VM

During the creation of the VM, I assigned the network adapter to the private virtual switch.  Now, I need to add the external virtual switch so it can route between the two.

Open Hyper-V Manager, select the Virtual Router VM and select “Settings” in the Action Pane:

Hyper-V Mgr.png

In the left pane, under “Hardware”, select “Add Hardware”.  In the right pane, select “Network Adapter” and then lick “Add”:

Add Network Adapter.png

Select the external virtual switch and click “OK”:

Adapter Settings.png

At this point, I can start the VM and perform some initial updates and optimization, but first we need to configure network connectivity.

Add Route on the Firewall

The logical network looks like this:


The firewall needs to know how to get traffic back to the private virtual network.  So, I entered the following route into the firewall:

route inside

(It might be different for your firewall. YMMV.)

Configuring Networking on Ubuntu Linux

When you first start the VM after adding the second adapter, you’ll probably get a window asking to revert to the previous checkpoint.  Just continue and don’t revert.

Log into the VM using the username and password configured during installation:

Logon to VM.png

The first command I’ll run is simply used to see what network interfaces are recognized.  This can sometimes be a a little flaky in Ubuntu.  The command for this is “ifconfig -a”.  The “a” switch shows all interfaces, regardless of whether any are in an up or down state.

Run “ifconfig -a” on the VM:

ifconfig -a.png

All three interfaces are there, which is a relief.  The loopback interface might be a surprise to you, but this interface exists by default and is, obviously, assigned the loopback address ‘’.

The first interface was created and configured during installation and is named ‘eth0’.  It would be nice to see if it actually works, so I’m going to test connectivity by pinging another VM on the same virtual switch.  The server’s IP is

Ping another VM on the virtual switch:

ping VM test.png

You’ll see where the first attempt failed; I had to disable the Windows firewall on the other VM.  Once I did that, I was able to ping both ways.

The second interface is the one we just added via Hyper-V Manager and its name is ‘eth1’.  It has no configuration, so that needs to happen now.  Again, the logical network will look like this:


The network is the private virtual switch (obviously, I hope) and the network is the external virtual switch.  The interface ‘eth0’ is configured correctly for the the private network and I’ll configure the external network as follows:

IP Address:
Subnet Mask:

To do this, I’ll edit /etc/network/interfaces using the nano text editor.  Since it’s a system file, I’ll need to run this with elevated privileges using ‘sudo’ and enter my password.

Issue the command ‘sudo nano /etc/network/interfaces’ and edit the text file:

nano interfaces.png

I modified the comments to make them more meaningful to me.  I also added the section for interface ‘eth1’.  Next, I need to bring the interface up and then restart the network.

Issue the commands ‘sudo ifconfig eth1 up’ and ‘sudo /etc/init.d/networking restart’:

ifconfig and restart.png

Test connectivity by pinging the firewall on the external network:

test external.png

I love it when things actually work.  But, can I ping all the way to the internet?

test external.png

Yep.  ‘Woot’, and all that.  Now, I can update the OS and configure routing.

Configuring Routing on Ubuntu Linux

This part is very easy.  One command and a reboot.

Edit /etc/sysctl.conf and uncomment the line ‘#net.ipv4.ip_forward=1’ by removing the ‘#’.  Then save the file, and reboot:

edit sysctl.png


After the reboot, I tested routing by attempting to ping an internet address from the server on the private virtual switch:

ping from server.png


Updating Ubuntu Linux

One thing I forgot to do was configure DNS on either of the interfaces.  I’ll do that now by editing /etc/network/interfaces.

Edit /etc/network/interfaces and then save the file, and restart networking.  Then test using ‘dig’ and a well-known site:

restart after nameservers.png

test DNS.png

Now, I can update the OS.

The first command used is ‘apt-get update’.  This doesn’t actually apply updates.  Rather, it’s used to update the local list of packages and dependencies from the repositories.  You’ll have to do this before you actually apply updates.

Issue ‘sudo apt-get update’ command (make sure you use sudo… you’ll see errors at the top where I forgot):

apt-get update.png

Next, I’ll install the system patches and upgrades with ‘apt-get dist-upgrade’.

Issue ‘sudo apt-get dist-upgrade’ command (again, I forgot to use sudo… apparently, because I’m stupid):

apt-get dist-upgrade.png

A list of new packages and package upgrades are shown.  You can accept or reject them.  This is one of the things people rave about with Linux… you have all this control.  Blah, blah, blah.  I’ll accept the changes and let it do the upgrades.

apt-get dist-upgrade confirm.png

This could take a while.  After that, I’ll install package patches and upgrades using ‘apt-get upgrade’.

Issue ‘sudo apt-get upgrade’ command (Hey!  I remembered to sudo!):

apt-get upgrade.png

Looks like everything is up-to-date, so on to installing some virtualization packages.

Optimizing Ubuntu for Virtualization

For information regarding what virtualization tools are supported in Hyper-V, Microsoft has published some good info.

According to Microsoft, we want to perform the following operations:

  1. Disable Network Manager
    This isn’t running, so no worries here.
  2. Install the virtual HWE kernel
    Issue the command ‘sudo apt-get install linux-virtual-lts-xenial’

    apt-get install linux-virtual-lts-xenial.png

  3. Install the Hyper-V daemons for VSS Snapshot, KVP and fcopy.
    Issue the command ‘apt-get install linux-tools-virtual-lts-xenial linux-cloud-tools-virtual-lts-xenial’.

    apt-get install more daemons.png

That’s it!  All done and ready for lab work.  Hope you find this useful!


Creating a Virtual Machine in Hyper-V

Virtualization is incredibly useful.  Among other things, the ability to create virtual machines allows one to consolidate hardware, create more resilient networks and play around in lab environments without investing in expensive hardware.  I’ll show you how to create a basic virtual machine.

I’m using Windows 10 Professional, but the steps are pretty much the same in all versions of Windows that have Hyper-V.

First, you need to make sure Hyper-V is installed on your computer.  Once that’s done, launch your Hyper-V manager.

Creating a Virtual Machine

In Hyper-V Manager, select “New” under the “Actions” pane in the right side of the Hyper-V Manager window:

Select New VM.png

When the wizard launches, just click next:

Before you begin.png

I’m creating a virtual router for a test environment, so I’ll be installing Ubuntu Linux.  It doesn’t require a lot of resources, which is nice.  You’ll want to make sure you set up a virtual machine that has the settings you need.

For the “Specify Name and Location” window, give the VM a name and then decide where you want to store it.  Then, click “Next”:

Name and Location.png

You’ll need to choose what generation machine you’ll create.  If you’re migrating a VM from a previous version of Hyper-V, if you’re installing a 32-bit OS or you’re creating a non-Windows VM, you’ll want to create a Generation 1 machine.  Otherwise, go with Generation 2.  I’m installing Linux, so Gen 1 it is!

In the “Specify Generation” window, select the appropriate generation and click “Next”:


When it comes to memory and drive space, make sure you configure settings that are adequate for the intended purpose of the virtual machine.  For my little router, I don’t need much, so 2GB is fine.  Regardless, I recommend using dynamic memory… it keeps things efficient by only allocating physical memory when necessary.

In the “Assign Memory” window, enter the appropriate amount of memory and ensure the “Use Dynamic Memory for this virtual machine” box is checked and then click “Next”:

Assign Memory.png

When it comes to networking, you need to select a virtual switch to use for connectivity.  Or, you can simply decide to not use anything.  I need connectivity, so I’m selecting a virtual switch.

In the “Configure Networking” window, select the desired connection and then click “Next”:

Config Net.png

In the “Connect Virtual Hard Disk” window, give your VHD a name, browse to where you want it stored, and give it a size appropriate to its use.  Once you’re satisfied, click “Next”:

Connect Vir Dsk.png

You can choose several ways to install your OS.  It doesn’t really matter at this point; you can always mount media later.  I’ve got the ISO downloaded and ready to go, so I’m going to go ahead and mount it now.   This doesn’t actually install the OS; it simply mounts the media and the next time you launch the VM, it will boot to that media.

In the “Installation Options” window, select the appropriate option and configure it.  Once you’re done, click “Next”:

Install Opt.png

By the way, you’re not hallucinating.  There actually is an option to install from floppy disk.

In the “Completing the New Virtual Machine Wizard” window, click “Finish”:



That’s it!  Now you can connect to the VM, install the OS and have just a whale of a time.

Hope you find this useful!


Installing Hyper-V on Windows Server 2016


Virtualization has changed the world of computers and networks in some pretty drastic ways.  If you’ve never played around with it, I’d recommend you do so; it’s one of the more useful technologies out there.

First thing you’ll need to do is make sure your computer is configured to run Hyper-V.  This is a setting you’ll find in your BIOS.  Where it’s located varies from computer to computer, but it will live somewhere in the CPU settings and will look something like this:


One common mistake that trips people up is rebooting the computer after the BIOS settings are changed.  You actually need to power down the computer and then turn it back on.

Installing Hyper-V

Once you’re back into the OS (I’m using Windows Server 2016 Standard), go into Server Manager, select the “Manage” menu and then “Add Roles and Features”:

Server Mgr Add Features.png

When the wizard launches, just click next:

AF Wizard.png

For the “Select installation type” window, accept the default setting and click “Next”:

AF Install Type.png

In the “Select destination server” window, accept the default setting and click “Next”:

AF Dest Srv.png

In the “Select server roles” window, select “Hyper-V” and click “Next”:

AF Select Role.png

A window will pop up asking if you want to add the features required for Hyper-V.  I’m not sure why they ask about this; I mean, if you don’t add these features, you won’t be able to manage the role.

Make sure the “Include management tools (if applicable)” check box is checked and then click “Add Features”:

AF Add Features.png

In the “Select features” window, accept the defaults and click “Next”:

AF Select Features.png

In the “Hyper-V” window, click “Next”:

AF Hyper-V.png

In order for the virtual machines you create to have access to your network and/or the internet, you’ll need to select a network adapter on your computer to use for a virtual switch.

If you’re going to play around with this stuff, I’d recommend using two NICs in your computer:  one dedicated to Hyper-V and one dedicated to your computer.  If you only have one, that’s okay, too.

In the “Create Virtual Switches” window, select the appropriate network adapter and click “Next”:

AF Create VS.png

In the “Virtual Machine Migration” window, accept the defaults and click “Next”:

AF VM Mig.png

The next window allows you to select where to store your virtual machines and virtual hard drives.  I generally like to create a folder somewhere specifically for storing these, but that’s up to you.

Either browse to a different location or accept the default settings and click “Next”:

AF Def Stores.png

On the “Confirm installation selections” window, click “Install”:

AF Confirm.png

At this point, the Hyper-V role and features will be installed and you’ll have to reboot the server.  Once it’s back up, you’re ready to create a virtual machine.

Creating a (VERY) Basic Router for a Hyper-V Private Network – Part Two: Creating the Router VM


In Part One, I created the virtual switches to create a lab network that looks kind of like this:

Goal Virtual Network.png


One of the virtual switches is an “External” switch, which means it connects to the actual home network.  The other is a “Private” switch, which means it has no connectivity outside of itself, including the host computer.

Connecting the Virtual Machines

I have three virtual machines I want to use in my lab.  One is running Windows Server 2016 Standard, one is running Windows 7 Enterprise and the other is running Windows 10 Professional.

Each of these should be connected to the “Private” virtual switch.

I’ll need two virtual switches:  One for the lab environment network and one that connects to the home network.  For access to the home network, I’ll need to create a virtual switch and connect it to an “external” network.

Select one of the virtual machines and then click on “Settings” under the virtual machine’s section of the “Actions” pane.  It’s the bottom half of that pane:

VSM Select VS.png

In the left pane, under “Hardware”, select “Network Adapter”.  In the right pane, select the Private virtual switch created previously and then click “OK”:

VSM Select Connection.png

I did this for all of the virtual machines in the lab environment.  Next, I created the router.

Creating the Router Virtual Machine

I created a very basic virtual machine using the following settings:

  • 2GB RAM, using Dynamic Memory
  • Connection to the Private virtual switch
  • 80GB HDD

I’ve documented the VM creation in a different post.

Installing Ubuntu Linux

First step here is to get the latest distro.  Generally speaking, I tend to go with the most stable release rather than the latest and greatest.  I downloaded the LTS version and at the time of this posting, the version was 16.04.3.

I’ll give you a screen-by-screen walkthrough of the installation, but it’s pretty simple.

Connect to your VM and mount the installation media as a DVD drive:

Insert Disk.png

Start the VM and the installation should automagically start:

Start Install.png

You won’t have mouse support here, so just use arrow keys to navigate and then hit the <ENTER> key to select an option.

Assuming you want to use “English”, accept the default and just hit <ENTER>.  You’ll end up at the installation menu:


Leave the selection at “Install Ubuntu Server”, hit <ENTER> and you’ll end up at the language selection screen for the OS installation:

Lang Select.png

Select your language, or keep it at “English” and hit <ENTER>.  Next, you select your location:

Location Select.png

Select your location, or keep it at “United States” and hit <ENTER>.

The next screen is pretty cool.  The Ubuntu install will attempt to detect your keyboard layout.

Unless you want to change the keyboard layout, just accept the default and hit <ENTER>:

Auto Keyboard.png

The next two screens allow you to manually select the keyboard layout.  The first screen selects the language/nationality.  The second allows you to configure different layouts for the keyboard language.  Pretty cool stuff:

Key Lay.png

Key Lay 2.png

Again, change it if you need to; otherwise, accept the default values of “English (US)” and hit <ENTER> on both screens.

Next come some progress bars:

Progress Bars.png

It’s time to configure the network.  Since I’ve got this VM on an isolated private virtual switch, there are no DHCP servers available to hand out IP addresses.  Because of that, I get the following error:

Net Error.png

No big deal, we want a static IP address anyway.

Hit <ENTER> to get to a menu with some new options:

Net Config Menu.png

“Configure network manually” should be highlighted, so just hit <ENTER>.  Configure the IP settings in the next few windows:


Blank Router.png

Blank DNS.png

I don’t need a router address on this network, so I left the Gateway field blank.  Ditto with the DNS settings… I won’t need to worry about DNS resolution on this VM.  The next screen is for the hostname, which I will use:


Put in whatever hostname you want, and this press <ENTER>:

Blank Domain Name.png

Again, I’m not worried about DNS, so I’m not going to worry about a domain name, which is why I left it blank.

Enter whatever domain name you wish, then hit <ENTER>.

The next few screens are used for assigning a full name, a username and a password for logging into the router OS:





Enter the full name, the username and the password you’ll use to logon to the router OS and hit <ENTER>:


If you want to encrypt your home folder (I don’t think it really matters for what I’m doing, but better safe than sorry, yes?), highlight “Yes” and hit <ENTER>:


Select your time zone and hit <ENTER>.

The next step is the disk setup.  You have a lot of options for partitioning the disks.  For what I’m doing, I don’t need anything fancy.  So, I’ll just go with the easiest options:


partition 2.png

partition 3.png

On the confirmation page, change your selection to “Yes” and hit <ENTER>.  More progress bars:

More progress bars.png

HTTP proxy.png

Unless you need one, which is highly unlikely, just leave the HTTP proxy field blank and hit <ENTER> so you can watch some more progress bars:

Even more progress bars.png

The next option gives the option of managing updates.  I recommend installing security updates automatically.  The other updates can always be downloaded manually:

Sec Update Install.png

Highlight “Install security updates automatically” and hit <ENTER>:

Package Select.png

For my purposes, I need nothing but the very basics.

Leave this at the default settings (“standard system utilities”) and hit <ENTER> for another round of progress bars.  After that, got GRUB?:

Yet more progress bars.png


GRUB is fine.  Accept the default value of “Yes” and hit <ENTER> for more progress bars and a friendly reminder to remove your installation media for the reboot:

And even more progress bars.png


This wraps up the installation.  Next is the configuration.

Creating a (VERY) Basic Router for a Hyper-V Private Network – Part One: Creating Virtual Switches


So, I need to set up a test network because I have problems with GPO settings not being picked up by Windows 10 clients.  I’m pretty sure it’s a problem with Windows 10, but I need to get my ducks in a row so I can talk Microsoft into refunding the $500 I’ll spend on the support call.

My home network looks like this-ish:

Home Network.png


It ties into some other networks, so I don’t want to add more stuff into it.  Instead, I want to create a virtual lab environment.  It needs access to the internet, but I want the traffic isolated(ish).

I have two NICs on my desktop computer, so one of those can be dedicated to Hyper-V.  Ideally, I’d like to accomplish something like this:

Goal Virtual Network.png


Creating the virtual environment isn’t particularly difficult.  The challenge is in routing the traffic from the virtual environment to the internet via the home network.  I figured there was some sort of virtual router I could download, but they’re all geared towards creating Wi-Fi hot spots.  So, I created my own.

Creating the Virtual Switches

I’ll need two virtual switches:  One for the lab environment network and one that connects to the home network.  For access to the home network, I’ll need to create a virtual switch and connect it to an “external” network.

In Hyper-V Manager, open the Virtual Switch Manager:

Open VSM.png

In the left pane, under “Virtual Switches”, select “New virtual network switch”.  In the right pane, select “External” and then click the “Create Virtual Switch”:

VSM Create.png

Give the Virtual Switch a name and then select the network card to use for the virtual switch:

VSM Select NIC.png

Clear the check box for the “Allow management operating system to share the network adapter” setting, and then click “OK”:

VSM OS Access.png

You’ll get a warning regarding network connectivity to the host OS which you can safely ignore, so just click “Yes”:


Go through the same process again, this time creating a Private virtual switch:

VSM Private.png

Give it an identifying name:

VSM Private 2.png

The networks are set up now, so it’s time to assign the virtual machines to the private switch and create the router.

That’s in Part Two.





Beware of Newegg’s Return Policy

If a policy is wrongheaded feckless and corrupt I take it personally and consider it a moral obligation to sound off and not shut up until it’s fixed. – David H. Hackworth

So, I ordered an ASUS ZenBook Pro on January 5th, and it’s one of the most disappointing experiences in recent memory.  It arrived on the 9th and I was impressed as soon as I opened up the box.

First off, the thing is absolutely gorgeous.  The entire thing is aluminum with a brushed circular texture that looks and feels great.  The display is beautiful and the NanoEdge Touchscreen has an extremely thin bezel.  The whole effect is stunning.

The keyboard and touchpad both feel great, too.

The specs are off the charts for a laptop this size:

  • Intel Core i7-7700Q CPU
  • 16GB RAM
  • 512GB PCIe x4 SSD
  • GTX 1050 Ti GPU (4GB GDDR5)

Total size & weight – 14.4″W x 9.9″D x .74″W, 3.97 lbs.

Price – $1,699.00

I ran benchmarks on this and compared it to an HP Omen and an HP Spectre x360.  It blew away the Spectre, but didn’t compare that well to the Omen (but that was a full-on gaming rig with an NVidia GTX 1080 in it).

The end result was I was super thrilled with the laptop and looking forward to having it for a few productive years.  Once I buy a laptop, my first general step is to purchase a second AC adapter for it; I keep one under my desk and one in my backpack.

First Disappointment:
Try finding an extra power brick online. I dare you. Don’t bother asking ASUS either… they just tell you to check with online retailers.  The part number is ubiquitous with a couple of different variations, and finding one with the correct plug on it is pretty much impossible.

I attempted to reinstall Windows so I could use my own Windows 10 Pro license. Booting into the BIOS utility is a challenge and when I did, getting the BIOS to boot from the USB drive was impossible without some help from ASUS support. The instructions were nowhere to be found otherwise. I did an online chat with ASUS support and, to their credit, they were online within a few seconds and gave me the instructions I needed.  I’ve documented this process in case you need it.

Unfortunately, this led to….

Second Disappointment:
When you attempt to reinstall Windows, the keyboard mappings are non-standard. It ends up that the ‘0’ key, for example inputs an asterisk (*) and the ‘p’ key inputs a forward slash ‘/’. (I may have those backwards).

For this, ASUS support could only suggest updating the chipset drivers and installing another of their drivers. Unfortunately, this doesn’t help when one is in the setup program and can’t change the drive partition size to the value one wants because the zero key produces an ‘invalid input’ error. ASUS support recommended I send it in for repairs. Instead, I RMA’d it to Newegg who cross-shipped me a new laptop.

Third Disappointment:
This laptop had the exact same issue with keys not mapping correctly.

Once I saw that was the case, I booted back to the pre-installed OS and updated the chipset drivers and other ASUS driver before I did anything else. At that point, Windows Update could no longer finish an update it downloaded and the laptop basically went through that attempt and failed every single time you shut it down.

After a day, it would no longer even shut down; only reboot. If the power key was held down until the power was off, it would start again as soon as the power key was released. If a shutdown was attempted through Windows, it would just reboot.

So, with a ton of regret, I decided to return the second defective laptop.

Guess what? I was out of my return window.

Fourth Disappointment:
Newegg screwed me over.

Newegg’s clock for my 30 day return policy apparently started ticking the moment I hit the “Submit” button on the order, and not when I actually received the laptop.

Here’s the timeline:

January 5 – Ordered the laptop with ShopRunner 2 Business Day shipping
January 9 – Laptop arrives
January 24 – RMA for defective laptop
January 25- Replacement laptop ships
January 30 – Replacement laptop arrives
February 6 – I’m told I can’t return the second laptop because I’m 2 days past the return window


1. The first four days of the return window, the laptop was in transit.
2. Worst case, my return window should have started January 9th, when I received it.
3. The first laptop was defective.
4. The replacement laptop was shipped on January 25th.
5. The replacement laptop arrived on January 30th… five more days of shipping
6. The return window wasn’t reset when the replacement arrived

If I had not asked for a replacement, I would have gotten a full refund. I could have then ordered a new one and gotten a new 30 day return window.


I guess I won’t be buying big ticket items on Newegg any longer.  That sucks… I’ve been a customer of their’s for years.


Booting an ASUS Laptop to a USB Drive

I purchased an ASUS Zenbook Pro laptop (UX550VE).  It’s a pretty amazing machine.  The specs are:

  • 15.6″ HD Touchscreen display
  • Intel Core i7 7th Gen 7700HQ @ 2.80Ghz
  • 16GB RAM
  • 512GB NVMe PCIe Gen3x4 SSD
  • NVIDIA GeForce GTX 1050Ti with 4GB RAM
  • 2 USB C 3.1 Gen 2 (Thunderbolt)
  • 2 USB 3.0 Gen 1
  • HDMI

As it turns out, there are some issues with this computer, and I may not keep it.  Specifically, when one attempts to load a new version of Windows, the keyboard no longer maps certain keys correctly.

Figuring this out, of course, required actually booting from installation media for Windows 10 and figuring out how to boot from installation media for Windows 10 proved to be a challenge in and of itself.

When you boot up this laptop, it goes straight to the installed OS; in this case, Windows 10 Home.  It takes about 2 seconds to boot and there’s no indication of any kind to let one how to get into the BIOS.

After trial, error and a chat with tech support (who was pretty helpful), here’s how to accomplish this daunting task….

1. Power on the Laptop
If you don’t know how to do this, then I’m not sure anything else here can help you.

2. Hit the <F2> Key as if Your Life Depended On It
Seriously… spam the hell out of this.

3. Welcome to the BIOS Utility

2018-01-30 21.59.22.jpg
Pardon the pictures… no screenshot functionality available, and I didn’t dress up for this.

Notice how under “USB Port”, you can see the SanDisk USB stick is detected, but it doesn’t show up under “Boot Priority”.

This particular USB drive is formatted as NTFS because of its size.  If it had been FAT32, it would have been detected:

2018-01-31 13.19.07.jpg

4. Enter Advanced Mode
Enter Advanced Mode by hitting the <F7> key:

2018-01-31 13.39.37.jpg

5. Change Boot Options
Go to the Boot screen by using the left and right arrow keys.  Once there, you need to disable the “Fast Boot” option:

2018-01-31 13.41.05.jpg

From there, go to the Security screen and set the Secure Boot to “Disabled”:

2018-01-31 13.41.51.jpg

Back to the Boot screen, set CSM Support to “Enabled”:

2018-01-31 13.42.15.jpg

You’ll see the Launch PXE OptROM Policy, which needs to be set to “Enabled”:

2018-01-31 13.42.31.jpg

6. Select Boot Device
Reboot, hit <F2> to enter the BIOS Utility and then hit <F8> to select the boot device, which should be your USB drive.

2018-01-31 13.52.21.jpg

Isn’t that easy?

Yeah, I didn’t think so, either.