<pclass="intro">A bridge network is a means to connect/bridge different networks together to act like a single network. In this case, it allows any connections to the bridge network to get their own internal IPs, as if plugged into the network directly, and work as you'd expect a completely new physical PC to work. i.e. Accessble to other clients outside of the host.</p>
<pclass="intro">A bridge network is a means to connect/bridge different networks together to act as a single network. In this case, it allows any virtual connections to the bridge network to get their own internal IPs, as if plugged into the network directly.</p>
<p>First we need to find the network we want to bridge to the VMs</p>
<p>First we need to find the network device we want to bridge to the VMs.</p>
<pre><code>ip a</code></pre>
<pre><code>ip link</code></pre>
<p>You'll likely have a device called something similar to <strong>enp1s0</strong>, or <strong>eth0</strong>.</p>
<h2>Bridge it</h2>
<h2>Create the bridge network</h2>
<p>This will be familiar to those who have <ahref="/guides/set-static-ip.html">set a static ip</a> on linux, as it's essentially the same, with a few additional lines related to bridging</p>
<p>This will be familiar to those who have <ahref="/guides/set-static-ip.html">set a static ip</a> on linux, as it's essentially the same, with a few additional lines related to bridging</p>
<p>This can be done by editing <strong>/etc/network/interfaces</strong></p>
<h3>Remove interface from interfaces file</h3>
<p>First step is to remove any references to your network device from <strong>/etc/network/interfaces</strong>, if this file is untouched there will likely be two lines at the bottom.</p>
<pre><code>sudo vim /etc/network/interfaces</code></pre>
<pre><code>sudo vim /etc/network/interfaces</code></pre>
<p>And setting the following lines<p>
<h3>Change existing port to manual</h3>
<p>There will already exist some lines with your chosen network adapter, such as</p>
<pre><code>iface enp2s0 inet auto</code></pre>
<p>Change this to contain manual instead</p>
<pre><code>iface enp2s0 inet manual</code></pre>
<h3>Static Bridge</h3>
<h3>Create a new bridge interface</h3>
<p>If you want your server to have a static IP use this</p>
<p>Now create a file in the <strong>/etc/network/interfaces.d/</strong> directory, with the name of your bridge (I like <strong>br0</strong>).</p>
<h4>Static IP</h4>
<pre><code>auto br0
<pre><code>auto br0
iface br0 inet static
iface br0 inet static # Name the same as your file (br0)
bridge_ports enp2s0 # which port(s) to bridge together
address 192.168.0.100
address 192.168.0.100 # Static IP
broadcast 192.168.0.255
netmask 255.255.255.0
netmask 255.255.255.0
network 192.168.0.1
gateway 192.168.0.1 # Normally your router's IP
broadcast 192.168.0.255
dns-nameservers 192.168.0.1 8.8.8.8 8.8.4.4 # Don't set if resolveconf is installed, comment if internet borked
gateway 192.168.0.1
bridge_ports enp1s0 # Your device name
bridge_stp off # New
bridge_stp off # Disable Spanning Tree Protocol
bridge_fd 0 # New
bridge_waitport 0 # No delay before a port becomes available
bridge_maxwait 0 # New
bridge_fd 0 # No forwarding delay (Connects to network immediately)</code></pre>
dns-nameservers 8.8.8.8 8.8.1.1</code></pre>
<h4>Dynamic IP</h4>
<h3>Dynamic Bridge</h3>
<p>If instead you wish your server to have a dynamic IP (not recommended). A bridged network can be set, with a dynamic DHCP set IP</p>
<pre><code>iface br0 inet dhcp
<pre><code>iface br0 inet dhcp
bridge_ports enp2s0</code></pre>
bridge_ports enp2s0</code></pre>
<h2>Create Virtual Network</h2>
<h2>(Optional) Create Virtual Network</h2>
<p>To make it easier to manage with VMs, this new bridge can be made into a Virtual Network.</p>
<p>To make it easier to manage with VMs, this new bridge can also be made into a Virtual Network (Basically so you can select it from a dropdown).</p>
<p>Open up a text-editor, and create a file called <strong>bridged-network.xml</strong></p>
<h3>Create XML file</h3>
<pre><code>vim bridged-network.xml</code></pre>
<p>Open up a text-editor, and create a file called <strong>br0.xml</strong>, named after the bridge itself.</p>
<p>If this creates the bridge, but claims to have failed, restart your PC</p>
<p>This may claim to have failed, but if checking with <strong>ip link</strong> shows the bridge, reboot. Essentially the bridge has been brought up, and it's trying to bring it up again (and can't), then throws an error.</p>
<pre><code>sudo reboot</code></pre>
<pre><code>sudo reboot</code></pre>
<h3>Check it's there</h3>
<h3>Check it's there</h3>
<p>Run another check for networks, and you should now see br0</p>
<p>Run some checks and you should now see br0, with an IP4 address.</p>