Oh, the joys of networking… A topic that very few people like and/or fully understand. So thought it was about time we covered some of these topics to help clarify common misunderstandings and to help people easily understand networking in general. For simplicity, I’m going to stick with IPv4 IP addresses for now and completely ignore IPv6 IP addresses. I’m also going to completely ignore the concept of CIDR blocks and address ranges within this blog posts to just purely focus on the core concepts.
What are Public and Private IP Addresses
Simply put, there is nothing really different, they are just an IP address, right? Well, kind of yes and no. It all comes down to routing, i.e. how your request from A ultimately reaches B. In simple terms, anything starting with any of the following numbers are classified as ‘Private’ IP addresses;
So thinking through the routing concept again of how you get from A to B. This depends on where A and B ultimately live. Remember, every IP address ultimately routes through to a physical server (i.e. computer) which lives somewhere in the real world – whether that is in your back bedroom or in an Amazon data centre somewhere in the world.
How does Routing Work for Private Address Ranges
So now we understand that an IP address starting with, 10., 172. Or 192. Is classified as a private address – what does this actually mean? As mentioned, ultimately an IP address routes through to a physical piece of computer equipment, so why do we care if an IP address is a public IP address (i.e. not starting with these numbers) or a private IP address? Well, it all comes down to routing, i.e. how the message gets from A to B.
For the purpose of this example, let’s keep things super simple. In the scenario whereby you have a personal home laptop or computer. You likely have a home router+modem that has been provided to you from your internet service provider (ISP), the people who provide the internet connection to your home.
To visualise this, if you open the web browser on your home computer and type the following into the address bar of your favourite browser (Chrome, right?), 184.108.40.206 – you’ll likely be presented with the administrator console for your router+modem that has been provided from your ISP. This allows you to login (likely with a super-secure username/password of admin/admin…) so you can then see all of the devices that are connected to your local network, aka. private network. You’ll likely see your laptops, computers, tablets, mobile phones, smart TVs and IoT devices all connected to your local network either via wired or wireless connections. Cool right?
Ok, so back to the point about routing and private VS public IP addresses.
Simply put, whenever a device that is on your local network attempts to connect to another device, your router decides where to … route … the connection to. For example, if you are on your local network and you are trying to access another device on the local network, the route that the connection from A to B (which often has many steps involved, not just the one) never actually leaves your premises to go the internet for help. Whereas if you were accessing a public IP address (aka. an IP address starting with anything other than the three mentioned) then your request would go out into the internet to find the physical computer hardware that is at this address.
The reality is for public IP addresses is that these are often a single IP address that can have thousands of virtual and/or physical machines sitting behind them, which is where NAT comes in – but we’ll ignore that for the purpose of simplicity. We’ll cover that another time. For the purpose of this blog post, we’ll assume that we’re just accessing different systems based purely on IP addresses and not friendly names such as server-x.contradodigital.com.
What About Modern Routing?
The reality is that with most modern routing this isn’t based on IP address alone, it’s often based on a combination of IP Address and Hostname (aka. the name you type into the browser). What this means is that whenever you type in a hostname into the browser, this ultimately resolves to an IP address that knows how to handle your request and ultimately get you to the destination physical/virtual computer that can serve you the information you need. Thankfully, you never need to worry about that as a user. But from a configuration perspective this is hugely important as if you are designing this setup, you need to be able to configure how to handle incoming requests. That is outside of the scope of this blog post though as this gets into the world of NAT, proxies and reverse-proxies.
Size of Private Networks
Things are a little more nuanced by the three core private IP ranges as they each support a different number of devices connected to that network. Remember, these rules were designed before IPv6 when there were much harder limits placed on networks.
- 10.0.0.0 – 10.255.255.255 supports a total of 16,777,216 addresses and is classed as a single class A network.
- 172.16.0.0 – 172.31.255.255 supports a total of 1,048,576 addresses and is classed as a 16 contiguous class Bs network.
- 192.168.0.0 – 192.168.255.255 supports a total of 65,536 addresses and is classed as a 256 contiguous class Cs.
In simple terms;
- Use 192 IP ranges whenever you have a small number of devices connected, i.e. a home environment
- Use 172 IP ranges whenever you have a medium number of devices connected, i.e. a small business and/or cloud environment that is regionalised. Notice how AWS uses the 172 ranges in EC2 instance hostnames
- Use 10 IP ranges whenever you want maximum control for how the maximum number of devices such as on private networks.
This helps you to determine which of the IP address ranges you are best to use. There are also considerations around network sizes and subnets but again, we’ll cover this in other blog posts.
As an ecommerce retailer, small or large, you will have a supply chain that likely spans the globe to a lesser or greater degree. Whether you are aware of this or not, ultimately the products you’re purchasing have likely been made outside of the UK. If you’re new to the import/export game then you’ll likely be as confused as everyone else when it comes to how things are shipped around the world and what all the terminology means. This blog post is designed to be a handy resource to simplify the import/export game and terminology so you can get up and running importing and exporting your products with ease.
What are Incoterms?
Simply put, Incoterms is the abbreviation of what is called International Commercial Terms. In other words, a common vocabulary used around the world to explain who is responsible for what and ultimately who holds the risk at the different stages of the shipping process. So we know who to speak to when things don’t quite go according to plan, and if anything is guaranteed, it is that things don’t always go to plan.
For smaller quantities of goods being shipped around the world, you may not need to worry about the finer details of this as it is likely encapsulated within the costs you are paying – but it is always worth being diligent in this area as even when small orders ‘go missing’ you’ve got to take into account the products you’ll need to sell and the profit you need to make to recover this cost through additional sales.
As your order quantities grow, you’re going to want to keep a close eye on Incoterms when dealing with multiple suppliers and customers around the globe. Getting things wrong can be an extremely costly mistake to make.
The images in this post are referenced to international logistics company OceanAir who have done an excellent job at creating the infographics to simplify these terms into an easy to digest image – once you understand what the terms actually mean. So let’s dig into the terminology first before we look at the images.
One of the common terms that you’ll read throughout the incoterms is a freight forwarder. But what exactly is a freight forwarder? In simple terms, a freight forwarder is a common courier that doesn’t operate shipping vessels.
One of the simplest and most basic shipment arrangements places the minimum responsibility on the seller with greater responsibility on the buyer. In an EX-Works transaction, goods are basically made available for pickup at the shipper/seller’s factory or warehouse and “delivery” is accomplished when the merchandise is released to the consignee’s freight forwarder. The buyer is responsible for making arrangements with their forwarder for insurance, export clearance and handling all other paperwork.
FOB (Free On Board)
FOB means that the shipper/seller uses their freight forwarder to move the merchandise to the port or designated point of origin. Though frequently used to describe inland movement of cargo, FOB specifically refers to ocean or inland waterway transportation of goods. “Delivery” is accomplished when the shipper/seller releases the goods to the buyer’s forwarder. The buyer’s responsibility for insurance and transportation begins at the same moment.
FCA (Free Carrier)
In this type of transaction, the seller is responsible for arranging transportation, but he is acting at the risk and the expense of the buyer. Where in FOB the freight forwarder or carrier is the choice of the buyer, in FCA the seller chooses and works with the freight forwarder or the carrier. “Delivery” is accomplished at a predetermined port or destination point and the buyer is responsible for Insurance.
FAS (Free Alongside Ship)
In these transactions, the buyer bears all the transportation costs and the risk of loss of goods. FAS requires the shipper/seller to clear goods for export, which is a reversal from past practices. Companies selling on these terms will ordinarily use their freight forwarder to clear the goods for export. “Delivery” is accomplished when the goods are turned over to the Buyers Forwarder for insurance and transportation.
CFR (Cost and Freight)
This term formerly known as CNF (C&F) defines two distinct and separate responsibilities-one is dealing with the actual cost of merchandise “C” and the other “F” refers to the freight charges to a predetermined destination point. It is the shipper/seller’s responsibility to get goods from their door to the port of destination. “Delivery” is accomplished at this time. It is the buyer’s responsibility to cover insurance from the port of origin or port of shipment to buyer’s door. Given that the shipper is responsible for transportation, the shipper also chooses the forwarder.
CIF (Cost, Insurance and Freight)
This arrangement similar to CFR, but instead of the buyer insuring the goods for the maritime phase of the voyage, the shipper/seller will insure the merchandise. In this arrangement, the seller usually chooses the forwarder. “Delivery” as above, is accomplished at the port of destination.
CPT (Carriage Paid To)
In CPT transactions the shipper/seller has the same obligations found with CIF, with the addition that the seller has to buy cargo insurance, naming the buyer as the insured while the goods are in transit.
CIP (Carriage and Insurance Paid To)
This term is primarily used for multimodal transport. Because it relies on the carrier’s insurance, the shipper/seller is only required to purchase minimum coverage. When this particular agreement is in force, Freight Forwarders often act in effect, as carriers. The buyer’s insurance is effective when the goods are turned over to the Forwarder.
DAF (Delivered At Frontier)
Here the seller’s responsibility is to hire a forwarder to take goods to a named frontier, which usually a border crossing point, and clear them for export. “Delivery” occurs at this time. The buyer’s responsibility is to arrange with their forwarder for the pick up of the goods after they are cleared for export, carry them across the border, clear them for importation and effect delivery. In most cases, the buyer’s forwarder handles the task of accepting the goods at the border across the foreign soil.
DES (Delivered Ex Ship)
In this type of transaction, it is the seller’s responsibility to get the goods to the port of destination or to engage the forwarder to the move cargo to the port of destination uncleared. “Delivery” occurs at this time. Any destination charges that occur after the ship is docked are the buyer’s responsibility.
DEQ (Delivered Ex Quay)
In this arrangement, the buyer/consignee is responsible for duties and charges and the seller is responsible for delivering the goods to the quay, wharf or port of destination. In a reversal of previous practice, the buyer must also arrange for customs clearance.
DDP (Delivered Duty Paid)
DDP terms tend to be used in intermodal or courier-type shipments. Whereby, the shipper/seller is responsible for dealing with all the tasks involved in moving goods from the manufacturing plant to the buyer/consignee’s door. It is the shipper/seller’s responsibility to insure the goods and absorb all costs and risks including the payment of duty and fees.
DDU (Delivered Duty Unpaid)
This arrangement is basically the same as with DDP, except for the fact that the buyer is responsible for the duty, fees and taxes.
Incoterms Simplified Images
Below are a couple of handy diagrams to show the above incoterms and how they differ from each other.
Clearly international shipping is an extremely complex area and this blog post only gives a very brief overview for common international commercial terms in relation to shipping. Hopefully this at least helps you to understand where your potential risks lie whenever you’re importing or exporting goods around the world.
We’ve already done a long write up about debugging email deliverability issues so I’m not going to go over similar topics here. On the other side of the fence, once you’ve ruled out issues with emails being delivered you’re going to want to focus on the quality of the delivery to ensure your emails don’t get triggered as spam by spam filters. Thankfully there are a lot of technical things you can do to ensure your emails get delivered successfully. All of which I’m not going to go into the details here about what they all mean and how they work. In essence all you need to do is use the handy tool Mail Tester and that will talk you through everything you need to do. It is a seriously awesome tool to give you the knowledge and actionable steps you need to take to increase the quality of your emails to ensure your emails get straight through to your users priority inbox and not their spam box.
At some point in time you’re going to need to migrate a WordPress website from one web server to another web server. Whether that is because you’re moving your own website to another web server, or if you are moving your WordPress website from WordPress.com over to your own self-hosted WordPress setup on your web server.
Thankfully there is a really handy plugin available which allows you to easily migrate your WordPress website with relative ease, and that plugin is called All-in-One WP Migration. But, the WordPress migration is just one part of the process and you need to make sure you’ve got your activities in line to avoid any disruption to your website. We’ve already covered topics such as How to Migrate a Web Server Seamlessly with Zero Downtime and How to Migrate an Ecommerce Website between Servers with Zero Downtime previously, so to avoid repeating a lot of the other considerations you need to take into account we’ll be omitting them from this blog post. So we’ll be purely focusing on how to use the All-in-One WP Migration plugin.
Step 1 – Download your Website
Firstly, download and install the All-in-One WP Migration plugin via the usual route on the website you are looking to migrate elsewhere. Once installed go to, WordPress Admin > All-in-One WP Migration > Export and select where you would like to export the website to. I’d recommend exporting to File as this will download the website to the computer you are doing this work on. Exporting to File will make your life a little easier in the next step which is to import the website into a new installation.
This option will download your entire website including files and database content.
Step 2 – Install WordPress on the New Web Server
Now you need to prepare the new web server. Ideally you’d do this before so you have time to iron out any kinks. You need to install WordPress via the usual mechanism you do this. This can vary between servers and web hosts or using the famous WordPress one-click-install option.
Once you’ve installed WordPress on the new web server you’ll need to install the All-in-One WP Migration plugin again.
Step 3 – Upload your Backup File
Now it’s time to upload the backup file from Step 1 to your WordPress installation on the new web server as outlined in Step 2. Important to note that many web servers out of the box limit the file upload size to around 2mb, so it’s likely you’ll need to temporarily increase the max_file_size and max_post_size settings within your php.ini file to make sure it is large enough to handle the upload.
To import your backup file simple navigate to, WordPress Admin > All-in-One WP Migration > Import, and you can import your backup file easily;
Once this has complete you’ll need to login to the website again as the default username and password you created in Step 2 will have been overwritten by the username and password that you used on the website when it was hosted on the old web server.
And it really is that simple to migrate a WordPress website between web servers or from WordPress.com over to a self-hosted version of WordPress. Naturally there are a lot of nuances along the way when working with web servers, DNS and file transfers so if you haven’t done this before make sure you give this a go on a test website initially. For low traffic websites the risk is extremely low. But for high traffic websites, ecommerce websites or heavily integrated websites then you need to plan these activities in a lot more detail to ensure its clear what the steps are to complete this successfully in the first run. There are often a lot more things to think about along the way, for example you may have a Mail Server or FTP server or non-WordPress databases also running on the old web server – you need to consider how you’re going to migrate these things as part of the process too if you’re using those. Some setups are simpler than others, but always consider as much as you can to minimise any issues during a migration.
If you can remember all the cryptic commands within the Vi text editor on Linux then you are some kind of genius. For us mere mortals, the quickest way to edit files on Linux is to bin off Vi and move over to Nano. There, I said it, get over it. Nano is better than Vi hands down.
But in the unfortunate event you need to do a bit of Vi work before you can move over to Nano, for example to configure a network configuration file or to configure a Yum repositories configuration file for example, then you need to know how to work with Vi so you can get through that painful process as quick as possible.
Here are some handy Vi commands;
- Open a file: vi filename.txt
- Edit the file – aka. go into ‘insert mode’: Press the letter ‘i’ once you have opened the file
- Change what ever you need to do as usual
- Exit from Insert Mode: Press ESC
- Prepare to exit the file: Press colon :
- Now save and exit the file: Press, wq, then enter
- Whoops I messed up: Within Vi there are so many commands that seem to just utterly break the editor unless you know what they do that is can be difficult to exit out of the thing. If in doubt press ESC or CTRL + Q or CTRL + C and you should get back to where you need. Then exit the file without saving by pressing, :, q!, enter
I mean, simple, right?!?! Anyhow, that’s how you quickly edit the files you need and recover from when Vi has gone a bit crazy.