Building and Configuring a Virtual Network with pfSense and CentOS

July 03, 2024
Jennifer Watson
Jennifer Watson
United States
Computer Network
Jennifer Watson is a highly qualified Computer Network Assignment Help Expert with a bachelor's degree in computer science from Stanford University and a master's degree in network engineering from MIT. With 8 years of industry experience and expertise in network design, security, and troubleshooting, she is dedicated to helping students excel in networking.

Setting up a virtual network environment can be challenging, especially for students new to networking concepts. This guide will help you navigate the process of configuring a virtual network environment using pfSense and CentOS. By following these steps, you’ll be able to apply the principles learned to a variety of similar assignments. This blog will provide a comprehensive guide, breaking down the assignment into manageable tasks. It will cover the initial steps of preparing your host system, including the installation of VirtualBox and the creation of virtual machines for pfSense and CentOS. You will learn how to install and configure pfSense as your router, DHCP server, and DNS server, ensuring proper network connectivity. The guide will then walk you through the setup of a CentOS virtual machine, including network configuration and essential updates. Additionally, it will highlight the importance of testing and troubleshooting using tools like Wireshark and the significance of taking snapshots of your virtual machines before making significant changes. By following this comprehensive guide, students will gain the knowledge and confidence needed to tackle similar computer network assignments, enhancing their understanding of virtual networking environments.

Preparing Your Host System

Building and Configuring a Virtual Network with pfSense and CentOS

Before diving into the configuration process, it's essential to prepare your host system properly. The host system will run the virtual machines (VMs) needed for this assignment. We'll use VirtualBox, a popular virtualization tool, to create and manage our VMs.

Installing VirtualBox

To get started, you need to download and install VirtualBox on your Windows host machine. VirtualBox is free and available for various operating systems. Here's how to install it:

  1. Download VirtualBox: Visit the official VirtualBox website and download the appropriate version for your operating system.
  2. Install VirtualBox: Run the installer and follow the on-screen instructions to complete the installation.

Creating a Virtual Machine for pfSense

With VirtualBox installed, you can create a virtual machine for pfSense. pfSense will act as your router, DHCP server, and DNS server.

  1. Create a New Virtual Machine: Open VirtualBox and click on "New" to create a new VM.
  2. Name and Operating System: Give your VM a name (e.g., "pfSense") and select the type and version (BSD, FreeBSD (64-bit)).
  3. Memory Size: Allocate at least 512MB of RAM to the VM.
  4. Hard Disk: Create a new virtual hard disk and allocate at least 4GB of storage.

Installing pfSense

Once the VM is created, you need to install pfSense on it.

  1. Download pfSense: Download the pfSense ISO from the official pfSense website.
  2. Mount the ISO: In VirtualBox, go to the settings of your pfSense VM, navigate to "Storage," and mount the pfSense ISO as a virtual optical disk.
  3. Start the VM: Boot the VM and follow the installation instructions. Choose the default settings and proceed with the installation.
  4. Update pfSense: After installation, update pfSense to ensure you have the latest features and security patches.

Configuring pfSense

Configuring pfSense involves setting up DHCP, DNS, and ensuring that the network is correctly routed.

Configuring DHCP

DHCP (Dynamic Host Configuration Protocol) automatically assigns IP addresses to devices on your network. Here’s how to configure it:

  1. Access pfSense Web Interface: Open a web browser and navigate to the pfSense web interface (usually accessible via
  2. Login: Log in using the default credentials (admin/pfsense).
  3. Enable DHCP Server: Go to Services > DHCP Server. Enable the DHCP server on the LAN interface. Configure the DHCP range (e.g., to

Configuring DNS

DNS (Domain Name System) resolves domain names to IP addresses. To set up DNS in pfSense:

  1. DNS Resolver: Navigate to Services > DNS Resolver.
  2. Register DHCP Leases: Enable the option "Register DHCP leases in the DNS Resolver".
  3. Custom MX Records: Go to Services > DNS Resolver > General Settings and add custom MX records. For example:

local-data: "example.com. IN MX 10 mail.example.com."

Ensuring Network Connectivity

To ensure your network is correctly configured and devices can communicate:

  1. Ping Test: From the pfSense web interface, go to Diagnostics > Ping. Test connectivity by pinging a public IP address (e.g.,

Setting Up CentOS

With pfSense configured, the next step is to set up a CentOS virtual machine.

Creating a Virtual Machine for CentOS

  1. Create a New Virtual Machine: In VirtualBox, create a new VM for CentOS.
  2. Name and Operating System: Name your VM (e.g., "CentOS") and select the type and version (Linux, Red Hat (64-bit)).
  3. Memory Size: Allocate at least 1GB of RAM to the VM.
  4. Hard Disk: Create a new virtual hard disk and allocate at least 8GB of storage.

Installing CentOS

  1. Download CentOS: Download the CentOS ISO from the official CentOS website.
  2. Mount the ISO: In VirtualBox, go to the settings of your CentOS VM, navigate to "Storage," and mount the CentOS ISO as a virtual optical disk.
  3. Start the VM: Boot the VM and follow the installation instructions. Choose "Server with a GUI" during the installation process.

Updating CentOS

After installing CentOS, update the system to ensure all packages are up to date.

  1. Open Terminal: Access the terminal from the GUI.
  2. Update Packages: Run the following commands:
  3. sudo yum update -y

Configuring Networking on CentOS

Networking is crucial for your CentOS VM to communicate with other devices and access the internet.

  • Disable SELinux: Temporarily disable SELinux for configuration:
  • sudo vi /etc/selinux/config
  • # Change SELINUX=enforcing to SELINUX=disabled

sudo reboot

  • Disable Firewall: Temporarily disable the firewall:
  • sudo systemctl stop firewalld

sudo systemctl disable firewalld

  • Ensure Internet Access: Verify internet connectivity by pinging a public website:

ping google.ca

Testing and Troubleshooting

Testing and troubleshooting are critical to ensure that your network environment functions correctly.

Using Wireshark for Troubleshooting

Wireshark is a powerful tool for monitoring and analyzing network traffic. Use it to identify any connectivity issues:

  1. Install Wireshark: Install Wireshark on your host machine or a VM.
  2. Capture Traffic: Start capturing traffic on the network interfaces. Look for any anomalies or dropped packets.
  3. Analyze Traffic: Use Wireshark's filters and analysis tools to pinpoint issues.

Snapshotting Your VMs

Before making significant changes, take snapshots of your VMs. This allows you to revert to a previous state if something goes wrong:

  1. Take a Snapshot: In VirtualBox, right-click on your VM and select "Take Snapshot".
  2. Name Your Snapshot: Give your snapshot a meaningful name (e.g., "Pre-configuration").

Rebooting and Verifying Configuration

Reboot your systems after major configuration changes to ensure they take effect. Verify that all settings are applied correctly:

  1. Reboot pfSense: Ensure that pfSense reboots properly and retains all configurations.
  2. Reboot CentOS: Confirm that CentOS reboots and can still access the network and internet.

Additional Tips for Success

While the steps above cover the basics, here are some additional tips to ensure success in your assignments.

Documentation and Notes

Keeping detailed notes and documentation is essential. Document every step you take, including configurations, commands used, and any issues encountered:

  1. Create a Log File: Maintain a log file of your setup process. Include screenshots where possible.
  2. Document Configurations: Note down all configuration settings for pfSense and CentOS. This will be invaluable for troubleshooting and future reference.

Utilizing Online Resources

Leverage online resources for help and guidance. There are numerous forums, tutorials, and documentation available:

  1. Stack Overflow: A great resource for finding solutions to specific problems.
  2. Official Documentation: Refer to the pfSense and CentOS official documentation for detailed guides and troubleshooting tips.

Practicing Regularly

Regular practice is key to mastering network setups. Try setting up different configurations and environments to build your skills:

  1. Experiment with Different Setups: Try setting up different types of networks, using various operating systems and configurations.
  2. Simulate Real-World Scenarios: Create scenarios that mimic real-world networking challenges to test your skills.

Using VirtualBox Features

VirtualBox offers several features that can make your setup and management easier:

  1. Snapshots: Use snapshots to save the state of your VMs at different points in time.
  2. Cloning: Clone VMs to create identical copies for testing different configurations.
  3. Network Settings: Explore VirtualBox’s network settings to understand how different network modes (NAT, Bridged, Host-only) affect your setup.


Setting up a virtual network environment using pfSense and CentOS can be a rewarding experience that enhances your understanding of networking concepts. By following this guide, you'll be well-equipped to tackle similar assignments with confidence. Remember to keep detailed documentation, leverage online resources, and practice regularly to hone your skills.

For more detailed assistance and expert help with your network assignments, visit ComputerNetworkAssignmentHelp.com. Our experienced professionals are here to support you in achieving academic success. Happy networking!

No comments yet be the first one to post a comment!
Post a comment