<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/">
  <channel>
    <title>Networking</title>
    <link>https://www.linuxjournal.com/</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>RV Offsite Backup Update</title>
  <link>https://www.linuxjournal.com/content/rv-offsite-backup-update</link>
  <description>  &lt;div data-history-node-id="1340746" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/kyle-rankin" lang="" about="https://www.linuxjournal.com/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Kyle Rankin&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Having an offsite backup in your RV is great, and after a year of use,
I've discovered some ways to make it even better.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
Last year I wrote a feature-length article on the data backup system I
set up for my RV (see Kyle's &lt;a href="https://www.linuxjournal.com/content/diy-rv-offsite-backup-and-media-server"&gt;"DIY
RV Offsite Backup and Media Server"&lt;/a&gt; from the June 2018 issue of
&lt;em&gt;LJ&lt;/em&gt;). If you haven't read that article yet, I recommend
checking it out first so you can get details on the system. In summary,
I set up a Raspberry Pi media center PC connected to a 12V television
in the RV. I connected an 8TB hard drive to that system and
synchronized all of my files and media so it acted as a kind of
off-site backup. Finally, I set up a script that would attempt to sync
over all of those files from my NAS whenever it detected that the RV was on
the local network. So here, I provide an update on how that
system is working and a few tweaks I've made to it since.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
What Works&lt;/span&gt;

&lt;p&gt;
Overall, the media center has worked well. It's been great to have all
of my media with me when I'm on a road trip, and my son appreciates
having access to his favorite cartoons. Because the interface is
identical to the media center we have at home, there's no learning
curve—everything just works. Since the Raspberry Pi is powered off
the TV in the RV, you just need to turn on the TV and everything fires
up.
&lt;/p&gt;

&lt;p&gt;
It's also been great knowing that I have a good backup of all of my
files nearby. Should anything happen to my house or my main NAS, I know
that I can just get backups from the RV. Having peace of mind about
your important files is valuable, and it's nice knowing in the worst
case when my NAS broke, I could just disconnect my USB drive from the
RV, connect it to a local system, and be back up and running.
&lt;/p&gt;

&lt;p&gt;
The WiFi booster I set up on the RV also has worked pretty well to
increase the range of the Raspberry Pi (and the laptops inside the RV)
when on the road. When we get to a campsite that happens to offer WiFi,
I just reset the booster and set up a new access point that amplifies
the campsite signal for inside the RV. On one trip, I even took it out
of the RV and inside a hotel room to boost the weak signal.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/rv-offsite-backup-update" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 07 Aug 2019 21:15:00 +0000</pubDate>
    <dc:creator>Kyle Rankin</dc:creator>
    <guid isPermaLink="false">1340746 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Knot DNS: One Tame and Sane Authoritative DNS Server</title>
  <link>https://www.linuxjournal.com/content/knot-dns-one-tame-and-sane-authoritative-dns-server</link>
  <description>  &lt;div data-history-node-id="1340657" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/thomas-golden" lang="" about="https://www.linuxjournal.com/users/thomas-golden" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Thomas Golden&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;How to install and minimally configure Knot
to act as your home lab's local domain master and slave servers.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
If you were a regular viewer of the original &lt;em&gt;Saturday Night Live&lt;/em&gt; era, you
will remember the Festrunks, two lewd but naïve Czech brothers who were
self-described "wild and crazy guys!" For me, Gyorg and Yortuk
(plus having my binomial handed to me by tests designed by a brilliant Czech
professor at the local university's high-school mathematics contests) were
the extent of my knowledge of the Czech Republic.
&lt;/p&gt;

&lt;p&gt;
I recently discovered something else Czech, and it's not wild and crazy
at all, but quite tame and sane, open-source and easy to configure. &lt;a href="https://www.knot-dns.cz"&gt;Knot DNS&lt;/a&gt;
is an authoritative DNS server written in 2011 by
the Czech CZ.NIC organization. They wrote and continue to maintain it to
serve their national top-level domain (TLD) as well as to prevent further
extension of a worldwide BIND9 software monoculture across all TLDs.
Knot provides a separate fast caching server and resolver library alongside
its authoritative server.
&lt;/p&gt;

&lt;p&gt;
Authoritative nameserver and caching/recursive nameserver functions are
separated for good reason. A nameserver's query result cache can be
"poisoned" by queries that forward to malicious external servers, so
if you don't allow the authoritative nameserver to answer queries for
other domains, it cannot be poisoned and its answers for its own domain can
be trusted.
&lt;/p&gt;

&lt;p&gt;
A software monoculture means running identical software like BIND9 everywhere
rather than different software providing identical functionality and
interoperability. This is bad for the same reasons we eventually will lose
our current popular species of banana—being genetically identical, all
bananas everywhere can be wiped out by a single infectious agent. As with
fruit, a bit of genetic diversity in critical infrastructure is a good thing.
&lt;/p&gt;

&lt;p&gt;
In this article, I describe how to install and minimally configure Knot
to act as your home lab's local domain master and slave servers. I will
secure zone transfer using Transaction Signatures (TSIG). Although Knot
supports DNSSEC, I don't discuss it here, because I like you and want you
to finish reading before we both die of old age. I assume you already know
what a DNS zone file is and what it looks like.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/knot-dns-one-tame-and-sane-authoritative-dns-server" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Fri, 24 May 2019 12:30:00 +0000</pubDate>
    <dc:creator>Thomas Golden</dc:creator>
    <guid isPermaLink="false">1340657 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>A Use Case for Network Automation</title>
  <link>https://www.linuxjournal.com/content/use-case-network-automation</link>
  <description>  &lt;div data-history-node-id="1340365" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/eric-pearce" lang="" about="https://www.linuxjournal.com/users/eric-pearce" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Eric Pearce&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Use the Python Netmiko module to automate switches, routers and firewalls
from multiple vendors.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
I frequently find myself in the position of confronting "hostile"
networks. By hostile, I mean that there is no existing documentation, or
if it does exist, it is hopelessly out of date or being
hidden deliberately. With that in mind, in this article, I describe the tools I've found useful to
recover control, audit, document and automate these networks. Note that
I'm not going to try to document any of the tools completely here.
I mainly want to give you enough real-world examples to prove how
much time and effort you could save with these tools, and I hope this
article motivates you to explore the official documentation and example code.
&lt;/p&gt;

&lt;p&gt;
In order to save money, I wanted to use open-source tools to gather
information from all the devices on the network. I haven't found a
single tool that works with all the vendors and OS versions that
typically are encountered. SNMP could provide a lot the information
I need, but it would have to be configured on
each device manually first. In fact, the mass enablement of SNMP could be
one of the first use cases for the network automation tools described
in this article.
&lt;/p&gt;

&lt;p&gt;
Most modern devices support REST APIs, but companies
typically are saddled with lots of legacy devices that don't support
anything fancier than Telnet and SSH. I settled on SSH access as the
lowest common denominator, as every device must support this in order to
be managed on the network.
&lt;/p&gt;

&lt;p&gt;
My preferred automation language is Python,
so the next problem was finding a Python module that abstracted the SSH
login process, making it easy to run commands and gather command output.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
Why Netmiko?
&lt;/span&gt;

&lt;p&gt;
I discovered the Paramiko SSH module quite a few years ago and used it
to create real-time inventories of Linux servers at multiple companies.
It enabled me to log in to hosts and gather the output of commands, such
as &lt;code&gt;lspci&lt;/code&gt;, &lt;code&gt;dmidecode&lt;/code&gt; and &lt;code&gt;lsmod&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
The command output populated a
database that engineers could use to search for specific hardware.
When I then tried to use Paramiko to inventory network switches, I found
that certain switch vendor and OS combinations would cause Paramiko SSH
sessions to hang. I could see that the SSH login itself was successful,
but the session would hang right after the login. I never was able to
determine the cause, but I discovered Netmiko while researching the
hanging problem. When I replaced all my Paramiko code with Netmiko
code, all my session hanging problems went away, and I haven't looked
back since. Netmiko also is optimized for the network device management
task, while Paramiko is more of a generic SSH module.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/use-case-network-automation" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 21 Jan 2019 13:00:00 +0000</pubDate>
    <dc:creator>Eric Pearce</dc:creator>
    <guid isPermaLink="false">1340365 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Papa's Got a Brand New NAS: the Software</title>
  <link>https://www.linuxjournal.com/content/papas-got-brand-new-nas-software</link>
  <description>  &lt;div data-history-node-id="1340119" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/kyle-rankin" lang="" about="https://www.linuxjournal.com/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Kyle Rankin&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Who needs a custom NAS OS or a web-based GUI when command-line
NAS software is so easy to configure?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
In a recent letter to the editor, I was contacted by a reader who
enjoyed my &lt;a href="https://www.linuxjournal.com/content/papas-got-brand-new-nas"&gt;"Papa's
Got a Brand New NAS"&lt;/a&gt; article, but wished I had
spent more time describing the software I used. When I
wrote the article, I decided not to dive into the software too much,
because it all was pretty standard for serving files under Linux.
But on second thought, if you want to re-create what I made, I
imagine it would be nice to know the software side as well, so this article
describes the software I use in my home NAS.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
The OS&lt;/span&gt;

&lt;p&gt;
My NAS uses the &lt;a href="https://www.hardkernel.com/main/products/prdt_info.php"&gt;ODROID-XU4&lt;/a&gt; as the main computing platform, and so
far, I've found its octo-core ARM CPU and the rest of its resources
to be adequate for a home NAS. When I first set it up, I visited the
&lt;a href="https://wiki.odroid.com/odroid-xu4/odroid-xu4"&gt;official wiki
page&lt;/a&gt; for the computer, which provides a number of OS
images, including Ubuntu and Android images that you can copy onto a
microSD card. Those images are geared more toward desktop use,
however, and I wanted a minimal server image. After some searching,
I found a &lt;a href="https://forum.odroid.com/viewtopic.php?f=96&amp;t=17542"&gt;minimal image for what was the current Debian stable
release at the time (Jessie)&lt;/a&gt;.
&lt;/p&gt;


&lt;p&gt;
Although this minimal image worked okay for me, I don't necessarily
recommend just going with whatever OS some volunteer on a forum
creates. Since I first set up the computer, the Armbian project has
been released, and it supports a number of standardized OS images for quite
a few ARM platforms including the ODROID-XU4. So if you
want to follow in my footsteps, you may want to start with the &lt;a href="https://www.armbian.com/odroid-xu4"&gt;minimal Armbian
Debian image&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
If you've ever used a Raspberry Pi before, the process of setting
up an alternative ARM board shouldn't be too different. Use another
computer to write an OS image to a microSD card, boot the ARM board,
and at boot, the image will expand to fill the existing filesystem.
Then reboot and connect to the network, so you can log in with the default
credentials your particular image sets up. Like with Raspbian builds,
the first step you should perform with Armbian or any other OS image
is to change the default password to something else. Even better,
you should consider setting up proper user accounts instead of
relying on the default.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/papas-got-brand-new-nas-software" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 29 Oct 2018 12:00:00 +0000</pubDate>
    <dc:creator>Kyle Rankin</dc:creator>
    <guid isPermaLink="false">1340119 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Have a Plan for Netplan</title>
  <link>https://www.linuxjournal.com/content/have-plan-netplan</link>
  <description>  &lt;div data-history-node-id="1340145" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/shawn-powers" lang="" about="https://www.linuxjournal.com/users/shawn-powers" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Shawn Powers&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Ubuntu changed networking. Embrace the YAML.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
If I'm being completely honest, I still dislike the switch from &lt;code&gt;eth0,
eth1, eth2&lt;/code&gt; to names like, &lt;code&gt;enp3s0, enp4s0, enp5s0&lt;/code&gt;. I've learned to accept
it and mutter to myself while I type in unfamiliar interface names. Then I
installed the new LTS version of Ubuntu and typed &lt;code&gt;vi
/etc/network/interfaces&lt;/code&gt;. Yikes. After a technological lifetime of entering
my server's IP information in a simple text file, that's no longer how
things are done. Sigh. The good news is that while figuring out Netplan for
both desktop and server environments, I fixed a nagging DNS issue I've had
for years (more on that later).
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
The Basics of Netplan&lt;/span&gt;

&lt;p&gt;
The old way of configuring Debian-based network interfaces was based on the
&lt;code&gt;ifupdown&lt;/code&gt; package. The new default is called Netplan, and
although it's not
terribly difficult to use, it's drastically different. Netplan is sort of
the interface used to configure the back-end dæmons that actually
configure the interfaces. Right now, the back ends supported are
NetworkManager and &lt;code&gt;networkd&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
If you tell Netplan to use NetworkManager, all interface configuration
control is handed off to the GUI interface on the desktop. The
NetworkManager program itself hasn't changed; it's the same GUI-based
interface configuration system you've likely used for years.
&lt;/p&gt;

&lt;p&gt;
If you tell Netplan to use &lt;code&gt;networkd&lt;/code&gt;, systemd itself handles the interface
configurations. Configuration is still done with Netplan files, but once
"applied", Netplan creates the back-end configurations systemd requires. The
Netplan files are vastly different from the old /etc/network/interfaces
file, but it uses YAML syntax, and it's pretty easy to figure out.
&lt;/p&gt;

&lt;span class="h3-replacement"&gt;
The Desktop and DNS&lt;/span&gt;

&lt;p&gt;
If you install a GUI version of Ubuntu, Netplan is configured with
NetworkManager as the back end by default. Your system should get IP
information via DHCP or static entries you add via GUI. This is usually not
an issue, but I've had a terrible time with my split-DNS setup and
&lt;code&gt;systemd-resolved&lt;/code&gt;. I'm sure there is a magical combination of configuration
files that will make things work, but I've spent a lot of time, and it
always behaves a little oddly. With my internal DNS server resolving domain
names differently from external DNS servers (that is, split-DNS), I get random
lookup failures. Sometimes &lt;code&gt;ping&lt;/code&gt; will resolve, but
&lt;code&gt;dig&lt;/code&gt; will not. Sometimes
the internal A record will resolve, but a &lt;code&gt;CNAME&lt;/code&gt; will not. Sometimes I get
resolution from an external DNS server (from the internet), even though I
never configure anything other than the internal DNS!
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/have-plan-netplan" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 16 Oct 2018 13:08:08 +0000</pubDate>
    <dc:creator>Shawn Powers</dc:creator>
    <guid isPermaLink="false">1340145 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Encrypting NFSv4 with Stunnel TLS</title>
  <link>https://www.linuxjournal.com/content/encrypting-nfsv4-stunnel-tls</link>
  <description>  &lt;div data-history-node-id="1339971" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/charles-fisher" lang="" about="https://www.linuxjournal.com/users/charles-fisher" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Charles Fisher&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;NFS clients and servers push file traffic over clear-text connections in the default configuration, which is incompatible with
sensitive data. TLS can wrap this traffic, finally bringing protocol security. Before you use your cloud provider's NFS tools, review
all of your NFS usage and secure it where necessary.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
The Network File System (NFS) is the most popular file-sharing protocol in UNIX. Decades old and predating Linux, the most modern v4
releases are easily firewalled and offer nearly everything required for seamless manipulation of remote files as if they were local.
&lt;/p&gt;

&lt;p&gt;
The most obvious feature missing from NFSv4 is native, standalone encryption. Absent Kerberos, the protocol operates only in
clear text, and this presents an unacceptable security risk in modern settings. NFS is hardly alone in this shortcoming, as I have
already covered &lt;a href="https://www.linuxjournal.com/content/smbclient-security-windows-printing-and-file-transfer"&gt;clear-text
SMB in a previous article&lt;/a&gt;. Compared to SMB, NFS over stunnel offers better encryption (likely AES-GCM if
used with a modern OpenSSL) on a wider array of OS versions, with no pressure in the protocol to purchase paid updates or newer OS
releases.
&lt;/p&gt;

&lt;p&gt;
NFS is an extremely common NAS protocol, and extensive support is available for it in cloud storage. Although Amazon EC2 supports
&lt;a href="https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html"&gt;clear-text and encrypted&lt;/a&gt; NFS, Google Cloud makes no mention
of data security in its &lt;a href="https://cloud.google.com/launcher/docs/single-node-fileserver"&gt;documented procedures&lt;/a&gt;, and major initiatives for
the protocol recently have been launched by &lt;a href="https://www.theregister.co.uk/2017/10/03/netapp_builds_nfs_onramp_to_azure"&gt;&lt;/a&gt;Microsoft Azure and &lt;a href="https://blogs.oracle.com/linux/2017dec-oraclelinux-storage-appliance-in-oci"&gt;Oracle Cloud&lt;/a&gt; that raise suspicion. When using these features over
untrusted networks (even within the hosting provider), it must be assumed that vulnerable traffic will be captured, stored and
reconstituted by hostile parties should they have the slightest interest in the content. Fortunately, wrapping TCP-based NFS with TLS
encryption via stunnel, while not obvious, is straightforward.
&lt;/p&gt;

&lt;p&gt;
The performance penalty for tunneling NFS over stunnel is surprisingly small—transferring an Oracle Linux Installation ISO over an
encrypted NFSv4.2 connection is well within 5% of the speed of clear text. Even more stunning is the performance of
&lt;code&gt;fuse-sshfs&lt;/code&gt;, which
appears to beat even clear-text NFSv4.2 in transfer speed. NFS remains superior to &lt;code&gt;sshfs&lt;/code&gt; in reliability, dynamic
&lt;code&gt;idmap&lt;/code&gt; and
resilience, but FUSE and OpenSSH delivered far greater performance than expected.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/encrypting-nfsv4-stunnel-tls" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 13 Aug 2018 11:30:00 +0000</pubDate>
    <dc:creator>Charles Fisher</dc:creator>
    <guid isPermaLink="false">1339971 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>DIY RV Offsite Backup and Media Server</title>
  <link>https://www.linuxjournal.com/content/diy-rv-offsite-backup-and-media-server</link>
  <description>  &lt;div data-history-node-id="1339875" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/kyle-rankin" lang="" about="https://www.linuxjournal.com/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Kyle Rankin&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;What better way to add a geeky touch to #vanlife than with a
Linux server in your RV?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
One easily could make the strong argument that an RV is the ultimate DIY project
playground. It combines all of the DIY projects you could perform on a
vehicle with the DIY projects for a home. Add to that the fact that you may
spend days living in a small house on wheels navigating highways, forests
and deserts, and you have a whole other class of DIY projects to make
the most of that smaller space. RVs also offer a whole suite of power
options from 12V deep cycle batteries to 110V shore power to generators
and alternators to solar power, so there's a whole class of electrical
DIY projects related to making the most of your changing power options.
&lt;/p&gt;

&lt;p&gt;
And if you're a geek, having an RV introduces a whole other level of DIY
possibilities. First, there are all of the electronics projects to
manage switching between power sources, tracking energy consumption
and keeping those batteries charged. Then there's an entire category of
projects related to internet access while away from home that involve
everything from mobile WiFi hotspots to cellular-boosting networks to
roving satellite internet (and if you're clever, a smart router that
routes you to the best and cheapest available option). Finally, there
are several project possibilities related to the computer systems in the RV,
including local switches and routers, personal computers
that turn the RV into a mobile office, and media centers so you can watch
TV and movies from the road.
&lt;/p&gt;

&lt;p&gt;
It just so happens that I recently got an RV—a 1996 Roadtrek 170 to
be exact. Although this purchase has spawned a huge list of DIY projects,
my very first Linux-based project focuses on the media center. At
home, my media center is a Raspberry Pi running OSMC, and it works great
for accessing my ripped DVDs and CDs from my NAS and playing them on
my living-room TV. When I got the RV, I realized that one of the first
things we'd want is a way to access all of that media from the road, even
if we were in the middle of the woods.
&lt;/p&gt;

&lt;p&gt;
In this article, I
describe all the steps I took to build a media server just for the
RV that maintains an up-to-date copy of my media and even
syncs up automatically when it's parked in my driveway. It turns out that in the process of
building a media server, I ended up with a pretty great off-site backup
solution as well. Even if you don't own an RV, you could adapt these
steps to add your own semi-offsite backup to your car.
&lt;/p&gt;

&lt;img src="https://www.linuxjournal.com/sites/default/files/styles/max_1300x1300/public/u%5Buid%5D/12413f1-smaller.jpg" width="800" height="600" alt="""" class="image-max_1300x1300" /&gt;&lt;p&gt;
&lt;em&gt;Figure 1. Introducing "Van Winkle" (Photo Credit: Joy Rankin)&lt;/em&gt;
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/diy-rv-offsite-backup-and-media-server" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 10 Jul 2018 11:45:00 +0000</pubDate>
    <dc:creator>Kyle Rankin</dc:creator>
    <guid isPermaLink="false">1339875 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>The Fight for Control: Andrew Lee on Open-Sourcing PIA</title>
  <link>https://www.linuxjournal.com/content/fight-control-andrew-lee-open-sourcing-pia</link>
  <description>  &lt;div data-history-node-id="1339842" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/doc-searls" lang="" about="https://www.linuxjournal.com/users/doc-searls" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Doc Searls&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;
When I learned that our new sister company, Private Internet
Access (PIA), was opening its source code, I immediately wanted to
know the backstory, especially since privacy is the theme of this month's
&lt;em&gt;Linux Journal&lt;/em&gt;. So I contacted Andrew Lee, who founded PIA, and an interview
ensued. Here it is.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;DS:&lt;/strong&gt; What made you start PIA in the first place? Did you have a particular
population or use case—or set of use cases—in mind?
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;AL:&lt;/strong&gt; Primarily PIA was rooted in my humble beginnings on IRC where it had
quickly become important to protect one's IP from exposure using an IRC
bouncer. However, due to jumping around in various industries thereafter, I
learned a lot and came to an understanding that it was time for privacy to
go mainstream, not in the "hide yourself" type of sense, but simply
in the "don't watch me" sense.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;DS:&lt;/strong&gt; Had you wanted to open-source the code base all along? If not, why now?
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;AL:&lt;/strong&gt; We always wanted to open-source the code base, and we finally got
around to it. It's late, but late is better than never. We were incredibly
busy, and we didn't prioritize it enough, but by analyzing our philosophies
deeply, we've been able to re-prioritize things internally. Along with
open-sourcing our software, there are a lot of great things to come.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;DS:&lt;/strong&gt; People always wonder if open-sourcing a code base affects a business
model. Our readers have long known that it doesn't, and that open-sourcing
in fact opens more possibilities than leaving code closed. But it would be
good to hear your position on the topic, since I'm sure you've thought
about it.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;AL:&lt;/strong&gt; Since Private Internet Access is a service, having
open-source code
does not affect the business' ability to generate revenue as a company
aiming for sustainable activism. Instead, I do believe we're going to end
up with better and stronger software as an outcome.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;DS:&lt;/strong&gt; Speaking of activism, back in March, you made a very strong statement,
directly to President Trump and Congress, with a two-page ad in &lt;em&gt;The New
York Times&lt;/em&gt;, urging them to kill off SESTA-FOSTA. I'm
curious to know if we'll be seeing more of that and to hear what the
response was at the time.
&lt;/p&gt;



&lt;p&gt;
&lt;strong&gt;AL:&lt;/strong&gt; Absolutely! We ran a few newspaper campaigns, including one for the
Internet Defense League. It's a very strong place to mobilize people for
important issues for society. As a result of the campaign, many tweets from
concerned Americans were received by President Trump. I would say it was a
success, but from here it's up to our President. Let's hope he does the
right thing and vetoes it. That said, if the bill is signed in its current
form [which it was after this interview was conducted], the internet is
routing, and the cypherpunks have the power of the
crypto. We will decentralize and route around bad policy.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/fight-control-andrew-lee-open-sourcing-pia" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 30 May 2018 13:08:08 +0000</pubDate>
    <dc:creator>Doc Searls</dc:creator>
    <guid isPermaLink="false">1339842 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Speeding Up Netfilter (by Avoiding Netfilter)</title>
  <link>https://www.linuxjournal.com/content/speeding-netfilter-avoiding-netfilter</link>
  <description>  &lt;div data-history-node-id="1339835" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/zack-brown" lang="" about="https://www.linuxjournal.com/users/zack-brown" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Zack Brown&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
&lt;strong&gt;Imre Palik&lt;/strong&gt; tried to speed up some of Linux's networking code but was met with stubborn
opposition. Essentially, he wanted networking packets to bypass the
&lt;strong&gt;netfilter&lt;/strong&gt; code
unless absolutely necessary. Netfilter, he said, was designed for flexibility at
the expense of speed. According to his tests, bypassing it could speed up the
system by as much as 15%.
&lt;/p&gt;

&lt;p&gt;
Netfilter is a piece of infrastructure that gives users a tremendous amount of
power and flexibility in processing and restricting networking traffic. Imre's idea
was that if the user didn't want to filter network packets, the netfilter code
shouldn't even be traversed. He therefore wanted to let users disable netfilter for
any given firewall that didn't need it.
&lt;/p&gt;
&lt;p&gt;
There was some initial interest and also some questions about how he'd calculated
his 15% speed increase. &lt;strong&gt;Florian Westphal&lt;/strong&gt; tried to reason out where the speedup
might have come from. But &lt;strong&gt;David S. Miller&lt;/strong&gt; put his foot down, saying that any
speedup estimates were just guesses until they were properly analyzed via
&lt;strong&gt;perf&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
David absolutely refused to apply networking patches without a more reliable
indication that they would improve the situation.
&lt;/p&gt;

&lt;p&gt;
Imre explained his testing methods and asserted that they seemed sound to him. But
&lt;strong&gt;Pablo Neira Ayuso&lt;/strong&gt; felt that Imre's approach was too haphazard. He said there needed
to be a more generic way to do that sort of testing.
&lt;/p&gt;

&lt;p&gt;
David was completely unsatisfied by Imre's tests. Instead of trying to work around
netfilter, even in cases where there were no actual filters configured, he said, the
proper solution was to speed up netfilter so it wouldn't be necessary to bypass it.
David said, "We need to find a clean and generic way to make the netfilter hooks as
cheap as possible when netfilter rules are not in use."
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;David Woodhouse&lt;/strong&gt;, on the other hand, felt that a 15% speedup was a 15% speedup, and
we shouldn't look a gift horse in the mouth.
&lt;/p&gt;

&lt;p&gt;
But, David M stood firm. The netfilter hooks were the fundamental issue, he said,
and "I definitely would rather see the fundamental issue addressed rather than
poking at it randomly with knobs for this case and that."
&lt;/p&gt;

&lt;p&gt;
David W and others started hunting around for ways to satisfy David M without
actually recoding the netfilter hooks. David W suggested having the hooks disable
themselves automatically if they detected that they wouldn't be useful.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/speeding-netfilter-avoiding-netfilter" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 16 May 2018 12:15:15 +0000</pubDate>
    <dc:creator>Zack Brown</dc:creator>
    <guid isPermaLink="false">1339835 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Userspace Networking with DPDK</title>
  <link>https://www.linuxjournal.com/content/userspace-networking-dpdk</link>
  <description>  &lt;div data-history-node-id="1339853" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/rami-rosen" lang="" about="https://www.linuxjournal.com/users/rami-rosen" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Rami Rosen&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
DPDK is a fully open-source project that operates in userspace.
It's a multi-vendor and multi-architecture project, and it aims at achieving high 
I/O performance and reaching high packet processing rates, which are
some of the most important features in the networking arena. It was created by
Intel in 2010 and moved to the Linux Foundation
in April 2017. This move positioned it as one of the most dominant and most
important open-source Linux projects. DPDK was created for the
telecom/datacom infrastructure, but today, it's used almost everywhere, including
the cloud, data centers, appliances, containers and more. In this article, I present a
high-level overview of the project and discuss features that were released
in DPDK 17.08 (August 2017).
&lt;/p&gt;

&lt;p&gt;
Undoubtedly, a lot of effort in many networking projects is geared toward achieving high speed and high performance. Several
factors contribute to achieving this goal with DPDK.
One is that DPDK is a userspace application that bypasses the heavy
layers of the Linux kernel networking stack and talks directly to the network hardware.
Another factor is usage of memory hugepages. By using hugepages (of 2MB or 1GB in 
size), a smaller number of memory pages is needed than when using standard
memory pages (which in many platforms are 4k in size). As a result, the
number of Translation Lookaside Buffers (TLBs) misses is reduced significantly,
and performance is increased. Yet another factor is that low-level
optimizations are done in the code, some of them related to
memory cache line alignment, aiming at achieving optimal cache use, prefetching and so on.
(Delving into the technical details of those optimizations is outside
the scope of this article.)
&lt;/p&gt;

&lt;p&gt;
DPDK has gained popularity in recent years, and it's used in many open-source
projects. Many Linux distributions
(Fedora, Ubuntu and others) have included DPDK support in their packaging
systems as well.
&lt;/p&gt;
&lt;p&gt;
The core DPDK ingredients are libraries and drivers, also known as Poll Mode
Drivers (PMDs). There are more than 35 libraries at the time of this writing. These libraries abstract
away the low-level implementation details, which provides flexibility as each vendor
implements its own low-level layers.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/userspace-networking-dpdk" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 23 Apr 2018 12:07:07 +0000</pubDate>
    <dc:creator>Rami Rosen</dc:creator>
    <guid isPermaLink="false">1339853 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
