<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" encoding="UTF-8" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:atom="http://www.w3.org/2005/Atom/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:fireside="http://fireside.fm/modules/rss/fireside">
  <channel>
    <fireside:hostname>web02.fireside.fm</fireside:hostname>
    <fireside:genDate>Thu, 05 Mar 2026 20:57:56 -0600</fireside:genDate>
    <generator>Fireside (https://fireside.fm)</generator>
    <title>BSD Now - Episodes Tagged with “Dtrace”</title>
    <link>https://www.bsdnow.tv/tags/dtrace</link>
    <pubDate>Thu, 29 Jun 2023 03:00:00 -0400</pubDate>
    <description>Created by three guys who love BSD, we cover the latest news and have an extensive series of tutorials, as well as interviews with various people from all areas of the BSD community. It also serves as a platform for support and questions. We love and advocate FreeBSD, OpenBSD, NetBSD, DragonFlyBSD and TrueOS. Our show aims to be helpful and informative for new users that want to learn about them, but still be entertaining for the people who are already pros.
The show airs on Wednesdays at 2:00PM (US Eastern time) and the edited version is usually up the following day. 
</description>
    <language>en-us</language>
    <itunes:type>episodic</itunes:type>
    <itunes:subtitle>A weekly podcast and the place to B...SD</itunes:subtitle>
    <itunes:author>JT Pennington</itunes:author>
    <itunes:summary>Created by three guys who love BSD, we cover the latest news and have an extensive series of tutorials, as well as interviews with various people from all areas of the BSD community. It also serves as a platform for support and questions. We love and advocate FreeBSD, OpenBSD, NetBSD, DragonFlyBSD and TrueOS. Our show aims to be helpful and informative for new users that want to learn about them, but still be entertaining for the people who are already pros.
The show airs on Wednesdays at 2:00PM (US Eastern time) and the edited version is usually up the following day. 
</itunes:summary>
    <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
    <itunes:explicit>no</itunes:explicit>
    <itunes:keywords>berkeley,freebsd,openbsd,netbsd,dragonflybsd,trueos,trident,hardenedbsd,tutorial,howto,guide,bsd,interview</itunes:keywords>
    <itunes:owner>
      <itunes:name>JT Pennington</itunes:name>
      <itunes:email>feedback@bsdnow.tv</itunes:email>
    </itunes:owner>
<itunes:category text="News">
  <itunes:category text="Tech News"/>
</itunes:category>
<itunes:category text="Education">
  <itunes:category text="How To"/>
</itunes:category>
<item>
  <title>513: New Host Interview</title>
  <link>https://www.bsdnow.tv/513</link>
  <guid isPermaLink="false">46ee8a53-e46a-4e48-a99e-bb347c35e8e0</guid>
  <pubDate>Thu, 29 Jun 2023 03:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/46ee8a53-e46a-4e48-a99e-bb347c35e8e0.mp3" length="51267072" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>We have a new show host, Understanding ZFS vdev Types, Don't abuse su for dropping user privileges, Dynamic Tracing on OpenBSD 7.3, new Libressl, Manual Jails on FreeBSD 12, and more</itunes:subtitle>
  <itunes:duration>53:24</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>We have a new show host, Understanding ZFS vdev Types, Don't abuse su for dropping user privileges, Dynamic Tracing on OpenBSD 7.3, new Libressl, Manual Jails on FreeBSD 12, and more
NOTES
This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow) and the BSDNow Patreon (https://www.patreon.com/bsdnow)
Host Introductions - Jason Tubnor - https://www.tubsta.com (https://www.tubsta.com) / @tubsta (https://twitter.com/tubsta) / @Tubsta@soc.feditime.com (https://soc.feditime.com)
Headlines
Understanding ZFS vdev Types (https://klarasystems.com/articles/openzfs-understanding-zfs-vdev-types/)
Don't abuse su for dropping user privileges (https://jdebp.uk/FGA/dont-abuse-su-for-dropping-privileges.html)
News Roundup
Dynamic Tracing on OpenBSD 7.3 (https://blog.lambda.cx/posts/openbsd-dynamic-tracing/)
new Libressl (https://undeadly.org/cgi?action=article;sid=20230528115900)
Manual Jails on FreeBSD 12 (https://ogris.de/howtos/freebsd-jails.html)
Tarsnap
This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
Feedback/Questions
Chris - questions (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/513/feedback/Chris%20-%20questions.md)
Dan - zfs questions (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/513/feedback/Dan%20-%20zfs%20questions.md)
Pablo - Jail question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/513/feedback/Pablo%20-%20Jail%20question.md)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)
***
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, open source, shell, cli, unix, os, berkeley, software, distribution, development, release, zfs, zpool, dataset, filesystem, storage, ports, packages, jails, interview, vdev types, dropping privileges, dtrace, dynamic tracing, process tracing, libressl</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>We have a new show host, Understanding ZFS vdev Types, Don&#39;t abuse su for dropping user privileges, Dynamic Tracing on OpenBSD 7.3, new Libressl, Manual Jails on FreeBSD 12, and more</p>

<p><strong><em>NOTES</em></strong></p>

<p>This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a> and the <a href="https://www.patreon.com/bsdnow" rel="nofollow">BSDNow Patreon</a></p>

<h2>Host Introductions - Jason Tubnor - <a href="https://www.tubsta.com" rel="nofollow">https://www.tubsta.com</a> / <a href="https://twitter.com/tubsta" rel="nofollow">@tubsta</a> / <a href="https://soc.feditime.com" rel="nofollow">@Tubsta@soc.feditime.com</a></h2>

<hr>

<h2>Headlines</h2>

<h3><a href="https://klarasystems.com/articles/openzfs-understanding-zfs-vdev-types/" rel="nofollow">Understanding ZFS vdev Types</a></h3>

<hr>

<h3><a href="https://jdebp.uk/FGA/dont-abuse-su-for-dropping-privileges.html" rel="nofollow">Don&#39;t abuse su for dropping user privileges</a></h3>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://blog.lambda.cx/posts/openbsd-dynamic-tracing/" rel="nofollow">Dynamic Tracing on OpenBSD 7.3</a></h3>

<hr>

<h3><a href="https://undeadly.org/cgi?action=article;sid=20230528115900" rel="nofollow">new Libressl</a></h3>

<hr>

<h3><a href="https://ogris.de/howtos/freebsd-jails.html" rel="nofollow">Manual Jails on FreeBSD 12</a></h3>

<hr>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/513/feedback/Chris%20-%20questions.md" rel="nofollow">Chris - questions</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/513/feedback/Dan%20-%20zfs%20questions.md" rel="nofollow">Dan - zfs questions</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/513/feedback/Pablo%20-%20Jail%20question.md" rel="nofollow">Pablo - Jail question</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>We have a new show host, Understanding ZFS vdev Types, Don&#39;t abuse su for dropping user privileges, Dynamic Tracing on OpenBSD 7.3, new Libressl, Manual Jails on FreeBSD 12, and more</p>

<p><strong><em>NOTES</em></strong></p>

<p>This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a> and the <a href="https://www.patreon.com/bsdnow" rel="nofollow">BSDNow Patreon</a></p>

<h2>Host Introductions - Jason Tubnor - <a href="https://www.tubsta.com" rel="nofollow">https://www.tubsta.com</a> / <a href="https://twitter.com/tubsta" rel="nofollow">@tubsta</a> / <a href="https://soc.feditime.com" rel="nofollow">@Tubsta@soc.feditime.com</a></h2>

<hr>

<h2>Headlines</h2>

<h3><a href="https://klarasystems.com/articles/openzfs-understanding-zfs-vdev-types/" rel="nofollow">Understanding ZFS vdev Types</a></h3>

<hr>

<h3><a href="https://jdebp.uk/FGA/dont-abuse-su-for-dropping-privileges.html" rel="nofollow">Don&#39;t abuse su for dropping user privileges</a></h3>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://blog.lambda.cx/posts/openbsd-dynamic-tracing/" rel="nofollow">Dynamic Tracing on OpenBSD 7.3</a></h3>

<hr>

<h3><a href="https://undeadly.org/cgi?action=article;sid=20230528115900" rel="nofollow">new Libressl</a></h3>

<hr>

<h3><a href="https://ogris.de/howtos/freebsd-jails.html" rel="nofollow">Manual Jails on FreeBSD 12</a></h3>

<hr>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/513/feedback/Chris%20-%20questions.md" rel="nofollow">Chris - questions</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/513/feedback/Dan%20-%20zfs%20questions.md" rel="nofollow">Dan - zfs questions</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/513/feedback/Pablo%20-%20Jail%20question.md" rel="nofollow">Pablo - Jail question</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
<item>
  <title>504: Release the BSD</title>
  <link>https://www.bsdnow.tv/504</link>
  <guid isPermaLink="false">2d02bfb1-4e33-4be1-8424-a707ddbeac55</guid>
  <pubDate>Thu, 27 Apr 2023 03:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/2d02bfb1-4e33-4be1-8424-a707ddbeac55.mp3" length="34665600" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>FreeBSD 13.2 Release, Using DTrace to find block sizes of ZFS, NFS, and iSCSI, Midnight BSD 3.0.1, Closing a stale SSH connection, How to automatically add identity to the SSH authentication agent, Pros and Cons of FreeBSD for virtual Servers, and more</itunes:subtitle>
  <itunes:duration>36:06</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>FreeBSD 13.2 Release, Using DTrace to find block sizes of ZFS, NFS, and iSCSI, Midnight BSD 3.0.1, Closing a stale SSH connection, How to automatically add identity to the SSH authentication agent, Pros and Cons of FreeBSD for virtual Servers, and more
NOTES
This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow) and the BSDNow Patreon (https://www.patreon.com/bsdnow)
Headlines
FreeBSD 13.2 Release Announcement (https://www.freebsd.org/releases/13.2R/announce/)
Using DTrace to find block sizes of ZFS, NFS, and iSCSI (https://axcient.com/blog/using-dtrace-to-find-block-sizes-of-zfs-nfs-and-iscsi/)
News Roundup
Midnight BSD 3.0.1 (https://www.phoronix.com/news/MidnightBSD-3.0.1)
Closing a stale SSH connection (https://davidisaksson.dev/posts/closing-stale-ssh-connections/)
How to automatically add identity to the SSH authentication agent (https://sleeplessbeastie.eu/2023/04/10/how-to-automatically-add-identity-to-the-ssh-authentication-agent/)
Tarsnap
This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
Feedback/Questions
Dan - ZFS question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/504/feedback/Dan%20-%20ZFS%20question.md)
Matt - Thanks (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/504/feedback/Matt%20-%20Thanks.md)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)
***
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, open source, shell, cli, unix, os, berkeley, software, distribution, development, release, zfs, zpool, dataset, filesystem, storage, ports, packages, jails, interview, dtrace, nfs, iscsi, block size, midnightbsd, ssh, connection, identity, public key, authentication, agent, virtual server</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>FreeBSD 13.2 Release, Using DTrace to find block sizes of ZFS, NFS, and iSCSI, Midnight BSD 3.0.1, Closing a stale SSH connection, How to automatically add identity to the SSH authentication agent, Pros and Cons of FreeBSD for virtual Servers, and more</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a> and the <a href="https://www.patreon.com/bsdnow" rel="nofollow">BSDNow Patreon</a></p>

<h2>Headlines</h2>

<h3><a href="https://www.freebsd.org/releases/13.2R/announce/" rel="nofollow">FreeBSD 13.2 Release Announcement</a></h3>

<hr>

<h3><a href="https://axcient.com/blog/using-dtrace-to-find-block-sizes-of-zfs-nfs-and-iscsi/" rel="nofollow">Using DTrace to find block sizes of ZFS, NFS, and iSCSI</a></h3>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://www.phoronix.com/news/MidnightBSD-3.0.1" rel="nofollow">Midnight BSD 3.0.1</a></h3>

<hr>

<h3><a href="https://davidisaksson.dev/posts/closing-stale-ssh-connections/" rel="nofollow">Closing a stale SSH connection</a></h3>

<hr>

<h3><a href="https://sleeplessbeastie.eu/2023/04/10/how-to-automatically-add-identity-to-the-ssh-authentication-agent/" rel="nofollow">How to automatically add identity to the SSH authentication agent</a></h3>

<hr>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/504/feedback/Dan%20-%20ZFS%20question.md" rel="nofollow">Dan - ZFS question</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/504/feedback/Matt%20-%20Thanks.md" rel="nofollow">Matt - Thanks</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>FreeBSD 13.2 Release, Using DTrace to find block sizes of ZFS, NFS, and iSCSI, Midnight BSD 3.0.1, Closing a stale SSH connection, How to automatically add identity to the SSH authentication agent, Pros and Cons of FreeBSD for virtual Servers, and more</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a> and the <a href="https://www.patreon.com/bsdnow" rel="nofollow">BSDNow Patreon</a></p>

<h2>Headlines</h2>

<h3><a href="https://www.freebsd.org/releases/13.2R/announce/" rel="nofollow">FreeBSD 13.2 Release Announcement</a></h3>

<hr>

<h3><a href="https://axcient.com/blog/using-dtrace-to-find-block-sizes-of-zfs-nfs-and-iscsi/" rel="nofollow">Using DTrace to find block sizes of ZFS, NFS, and iSCSI</a></h3>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://www.phoronix.com/news/MidnightBSD-3.0.1" rel="nofollow">Midnight BSD 3.0.1</a></h3>

<hr>

<h3><a href="https://davidisaksson.dev/posts/closing-stale-ssh-connections/" rel="nofollow">Closing a stale SSH connection</a></h3>

<hr>

<h3><a href="https://sleeplessbeastie.eu/2023/04/10/how-to-automatically-add-identity-to-the-ssh-authentication-agent/" rel="nofollow">How to automatically add identity to the SSH authentication agent</a></h3>

<hr>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/504/feedback/Dan%20-%20ZFS%20question.md" rel="nofollow">Dan - ZFS question</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/504/feedback/Matt%20-%20Thanks.md" rel="nofollow">Matt - Thanks</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
<item>
  <title>501: Boot that Snapshot</title>
  <link>https://www.bsdnow.tv/501</link>
  <guid isPermaLink="false">d498dc0c-a1f0-4c32-b783-7a39bbafa43a</guid>
  <pubDate>Thu, 06 Apr 2023 03:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/d498dc0c-a1f0-4c32-b783-7a39bbafa43a.mp3" length="36514176" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Nextcloud + OpenBSD = &lt;3, Understanding the Origins of DTrace, Bastille Templates for FreeBSD Jails, Initial support for guided disk encryption in the OpenBSD installer, Dynamic host configuration please, OpenBSD Storage Management tutorial at BSDCan 2023, Jan/Feb 2023 Column Out in the FreeBSD Journal, and more</itunes:subtitle>
  <itunes:duration>38:02</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Nextcloud + OpenBSD = &amp;lt;3, Understanding the Origins of DTrace, Bastille Templates for FreeBSD Jails, Initial support for guided disk encryption in the OpenBSD installer, Dynamic host configuration please, OpenBSD Storage Management tutorial at BSDCan 2023, Jan/Feb 2023 Column Out in the FreeBSD Journal, and more
NOTES
This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow) and the BSDNow Patreon (https://www.patreon.com/bsdnow)
Headlines
Nextcloud + OpenBSD = &amp;lt;3 (https://x61.sh/log/2023/02/20230217T112354-nextcloud_openbsd.html)
FreeBSD History Series - Understanding the Origins of DTrace (https://klarasystems.com/articles/freebsd-history-understanding-the-origins-of-dtrace/)
News Roundup
Bastille Templates for FreeBSD Jails (https://byte--sized-de.translate.goog/linux-unix/bastille-templates-fuer-freebsd-jails/?_x_tr_sl=de&amp;amp;_x_tr_tl=en&amp;amp;_x_tr_hl=en&amp;amp;_x_tr_pto=wapp)
Initial support for guided disk encryption in the installer (http://undeadly.org/cgi?action=article;sid=20230308063109)
Dynamic host configuration, please (http://undeadly.org/cgi?action=article;sid=20230308060219)
BSDCan 2023 Tutorial: OpenBSD Storage Management (https://mwl.io/archives/22621)
Jan/Feb 2023 Column Out in the FreeBSD Journal (https://mwl.io/archives/22619)
loader: Add support for booting from a ZFS snapshot (https://cgit.freebsd.org/src/commit/?id=a849842f510af48717e35ff709623e0dd1b80b20)
Tarsnap
This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, open source, shell, cli, unix, os, berkeley, software, distribution, development, release, zfs, zpool, dataset, filesystem, storage, ports, packages, jails, interview, nextcloud, dtrace, bastille, template, disk encryption, dhcp, dhcplease, storage management, bsdcan 2023, freebsd journal</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Nextcloud + OpenBSD = &lt;3, Understanding the Origins of DTrace, Bastille Templates for FreeBSD Jails, Initial support for guided disk encryption in the OpenBSD installer, Dynamic host configuration please, OpenBSD Storage Management tutorial at BSDCan 2023, Jan/Feb 2023 Column Out in the FreeBSD Journal, and more</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a> and the <a href="https://www.patreon.com/bsdnow" rel="nofollow">BSDNow Patreon</a></p>

<h2>Headlines</h2>

<h3><a href="https://x61.sh/log/2023/02/20230217T112354-nextcloud_openbsd.html" rel="nofollow">Nextcloud + OpenBSD = &lt;3</a></h3>

<hr>

<h3><a href="https://klarasystems.com/articles/freebsd-history-understanding-the-origins-of-dtrace/" rel="nofollow">FreeBSD History Series - Understanding the Origins of DTrace</a></h3>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://byte--sized-de.translate.goog/linux-unix/bastille-templates-fuer-freebsd-jails/?_x_tr_sl=de&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp" rel="nofollow">Bastille Templates for FreeBSD Jails</a></h3>

<hr>

<h3><a href="http://undeadly.org/cgi?action=article;sid=20230308063109" rel="nofollow">Initial support for guided disk encryption in the installer</a></h3>

<hr>

<h3><a href="http://undeadly.org/cgi?action=article;sid=20230308060219" rel="nofollow">Dynamic host configuration, please</a></h3>

<hr>

<h3><a href="https://mwl.io/archives/22621" rel="nofollow">BSDCan 2023 Tutorial: OpenBSD Storage Management</a></h3>

<hr>

<h3><a href="https://mwl.io/archives/22619" rel="nofollow">Jan/Feb 2023 Column Out in the FreeBSD Journal</a></h3>

<hr>

<h3><a href="https://cgit.freebsd.org/src/commit/?id=a849842f510af48717e35ff709623e0dd1b80b20" rel="nofollow">loader: Add support for booting from a ZFS snapshot</a></h3>

<hr>

<h3>Tarsnap</h3>

<p>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</p>

<hr>

<p>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></p>

<hr>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Nextcloud + OpenBSD = &lt;3, Understanding the Origins of DTrace, Bastille Templates for FreeBSD Jails, Initial support for guided disk encryption in the OpenBSD installer, Dynamic host configuration please, OpenBSD Storage Management tutorial at BSDCan 2023, Jan/Feb 2023 Column Out in the FreeBSD Journal, and more</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a> and the <a href="https://www.patreon.com/bsdnow" rel="nofollow">BSDNow Patreon</a></p>

<h2>Headlines</h2>

<h3><a href="https://x61.sh/log/2023/02/20230217T112354-nextcloud_openbsd.html" rel="nofollow">Nextcloud + OpenBSD = &lt;3</a></h3>

<hr>

<h3><a href="https://klarasystems.com/articles/freebsd-history-understanding-the-origins-of-dtrace/" rel="nofollow">FreeBSD History Series - Understanding the Origins of DTrace</a></h3>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://byte--sized-de.translate.goog/linux-unix/bastille-templates-fuer-freebsd-jails/?_x_tr_sl=de&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp" rel="nofollow">Bastille Templates for FreeBSD Jails</a></h3>

<hr>

<h3><a href="http://undeadly.org/cgi?action=article;sid=20230308063109" rel="nofollow">Initial support for guided disk encryption in the installer</a></h3>

<hr>

<h3><a href="http://undeadly.org/cgi?action=article;sid=20230308060219" rel="nofollow">Dynamic host configuration, please</a></h3>

<hr>

<h3><a href="https://mwl.io/archives/22621" rel="nofollow">BSDCan 2023 Tutorial: OpenBSD Storage Management</a></h3>

<hr>

<h3><a href="https://mwl.io/archives/22619" rel="nofollow">Jan/Feb 2023 Column Out in the FreeBSD Journal</a></h3>

<hr>

<h3><a href="https://cgit.freebsd.org/src/commit/?id=a849842f510af48717e35ff709623e0dd1b80b20" rel="nofollow">loader: Add support for booting from a ZFS snapshot</a></h3>

<hr>

<h3>Tarsnap</h3>

<p>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</p>

<hr>

<p>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></p>

<hr>]]>
  </itunes:summary>
</item>
<item>
  <title>409: The Filesystem Dungeon</title>
  <link>https://www.bsdnow.tv/409</link>
  <guid isPermaLink="false">de8a3516-c307-49bf-8afc-4f880bca5739</guid>
  <pubDate>Thu, 01 Jul 2021 03:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/de8a3516-c307-49bf-8afc-4f880bca5739.mp3" length="32932752" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>DTrace network probes, next 50 years of shell programming, NetBSD on the Vortex86DX CPU, system CPU time in top, your filesystem as a dungeon, diving into toolchains, and more</itunes:subtitle>
  <itunes:duration>52:03</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>DTrace network probes, next 50 years of shell programming, NetBSD on the Vortex86DX CPU, system CPU time in top, your filesystem as a dungeon, diving into toolchains, and more 
NOTES
This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow)
Headlines
DTrace Network Probes (https://klarasystems.com/articles/dtrace-network-probes/)
Unix Shell Programming: The Next 50 Years (https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s06-greenberg.pdf)
News Roundup
NetBSD on the Vortex86DX CPU (https://www.cambus.net/netbsd-on-the-vortex86dx-cpu/)
System CPU time – ‘sys’ time in top (https://blog.ycrash.io/2020/11/28/system-cpu-time-sys-time-in-top/)
rpg-cli —your filesystem as a dungeon! (https://github.com/facundoolano/rpg-cli)
Diving into toolchains (https://www.cambus.net/diving-into-toolchains/)
Tarsnap
This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
Feedback/Questions
• [Alfred - Advice](https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/409/feedback/Alfred%20-%20Advice)
• [CY - Portable Patch Util](https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/409/feedback/CY%20-%20Portable%20Patch%20Util)
• [Denis - State of ZFS Ecosystem](https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/409/feedback/Denis%20-%20State%20of%20ZFS%20Ecosystem)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)
***
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, open source, shell, unix, os, berkeley, software, distribution, release, zfs, zpool, dataset, interview, ports, packages, DTrace, network probes, shell, shell programming, vortex86dx, cpu time, top, filesystem, dungeon, diving, toolchain</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>DTrace network probes, next 50 years of shell programming, NetBSD on the Vortex86DX CPU, system CPU time in top, your filesystem as a dungeon, diving into toolchains, and more </p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="https://klarasystems.com/articles/dtrace-network-probes/" rel="nofollow">DTrace Network Probes</a></h3>

<hr>

<h3><a href="https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s06-greenberg.pdf" rel="nofollow">Unix Shell Programming: The Next 50 Years</a></h3>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://www.cambus.net/netbsd-on-the-vortex86dx-cpu/" rel="nofollow">NetBSD on the Vortex86DX CPU</a></h3>

<hr>

<h3><a href="https://blog.ycrash.io/2020/11/28/system-cpu-time-sys-time-in-top/" rel="nofollow">System CPU time – ‘sys’ time in top</a></h3>

<hr>

<h3><a href="https://github.com/facundoolano/rpg-cli" rel="nofollow">rpg-cli —your filesystem as a dungeon!</a></h3>

<hr>

<h3><a href="https://www.cambus.net/diving-into-toolchains/" rel="nofollow">Diving into toolchains</a></h3>

<hr>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<pre><code>• [Alfred - Advice](https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/409/feedback/Alfred%20-%20Advice)
• [CY - Portable Patch Util](https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/409/feedback/CY%20-%20Portable%20Patch%20Util)
• [Denis - State of ZFS Ecosystem](https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/409/feedback/Denis%20-%20State%20of%20ZFS%20Ecosystem)
</code></pre>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>DTrace network probes, next 50 years of shell programming, NetBSD on the Vortex86DX CPU, system CPU time in top, your filesystem as a dungeon, diving into toolchains, and more </p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="https://klarasystems.com/articles/dtrace-network-probes/" rel="nofollow">DTrace Network Probes</a></h3>

<hr>

<h3><a href="https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s06-greenberg.pdf" rel="nofollow">Unix Shell Programming: The Next 50 Years</a></h3>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://www.cambus.net/netbsd-on-the-vortex86dx-cpu/" rel="nofollow">NetBSD on the Vortex86DX CPU</a></h3>

<hr>

<h3><a href="https://blog.ycrash.io/2020/11/28/system-cpu-time-sys-time-in-top/" rel="nofollow">System CPU time – ‘sys’ time in top</a></h3>

<hr>

<h3><a href="https://github.com/facundoolano/rpg-cli" rel="nofollow">rpg-cli —your filesystem as a dungeon!</a></h3>

<hr>

<h3><a href="https://www.cambus.net/diving-into-toolchains/" rel="nofollow">Diving into toolchains</a></h3>

<hr>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<pre><code>• [Alfred - Advice](https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/409/feedback/Alfred%20-%20Advice)
• [CY - Portable Patch Util](https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/409/feedback/CY%20-%20Portable%20Patch%20Util)
• [Denis - State of ZFS Ecosystem](https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/409/feedback/Denis%20-%20State%20of%20ZFS%20Ecosystem)
</code></pre>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
<item>
  <title>298: BSD On The Road</title>
  <link>https://www.bsdnow.tv/298</link>
  <guid isPermaLink="false">85a43874-a080-4a57-9fb0-2a0210e9718e</guid>
  <pubDate>Wed, 15 May 2019 23:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/85a43874-a080-4a57-9fb0-2a0210e9718e.mp3" length="31937689" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more.</itunes:subtitle>
  <itunes:duration>52:22</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more.
&lt;h2&gt;Headlines&lt;/h2&gt;

&lt;h3&gt;&lt;a href="https://svnweb.freebsd.org/base?view=revision&amp;amp;revision=347066"&gt;36+ year old bug in FFS/UFS discovered and patched &lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;This update eliminates a kernel stack disclosure bug in UFS/FFS directory entries that is caused by uninitialized directory entry padding written to the disk.&lt;/p&gt;
  
  &lt;ul&gt;
  &lt;li&gt;When the directory entry is written to disk, it is written as a full 32bit entry, and the unused bytes were not initialized, so could possibly contain sensitive data from the kernel stack
  It can be viewed by any user with read access to that directory. Up to 3 bytes of kernel stack are disclosed per file entry, depending on the the amount of padding the kernel needs to pad out the entry to a 32 bit boundary. The offset in the kernel stack that is disclosed is a function of the filename size. Furthermore, if the user can create files in a directory, this 3 byte window can be expanded 3 bytes at a time to a 254 byte window with 75% of the data in that window exposed. The additional exposure is done by removing the entry, creating a new entry with a 4-byte longer name, extracting 3 more bytes by reading the directory, and repeating until a 252 byte name is created.
  This exploit works in part because the area of the kernel stack that is being disclosed is in an area that typically doesn't change that often (perhaps a few times a second on a lightly loaded system), and these file creates and unlinks themselves don't overwrite the area of kernel stack being disclosed.
  It appears that this bug originated with the creation of the Fast File System in 4.1b-BSD (Circa 1982, more than 36 years ago!), and is likely present in every Unix or Unix-like system that uses UFS/FFS. Amazingly, nobody noticed until now.
  This update also adds the -z flag to fsck_ffs to have it scrub the leaked information in the name padding of existing directories. It only needs to be run once on each UFS/FFS filesystem after a patched kernel is installed and running.
  Submitted by: David G. Lawrence &lt;a href="mailto:dg@dglawrence.com"&gt;dg@dglawrence.com&lt;/a&gt;
&lt;/li&gt;
  
  &lt;li&gt;So a patched kernel will no longer leak this data, and running the &lt;code&gt;fsck_ffs -z&lt;/code&gt; command will erase any leaked data that may exist on your system&lt;/li&gt;
  
  &lt;li&gt;
&lt;a href="https://marc.info/?l=openbsd-cvs&amp;amp;m=155699268122858&amp;amp;w=2"&gt;OpenBSD commit with additional detail on mitigations&lt;/a&gt;
  The impact on OpenBSD is very limited:
  1 - such stack bytes can be found in raw-device reads, from group operator. If you can read the raw disks you can undertake other more powerful actions.
  2 - read(2) upon directory fd was disabled July 1997 because I didn't like how grep * would display garbage and mess up the tty, and applying vis(3) for just directory reads seemed silly.  read(2) was changed to return 0 (EOF).  Sep 2016 this was further changed to EISDIR, so you still cannot see the bad bytes.
  3 - In 2013 when guenther adapted the getdents(2) directory-reading system call to 64-bit ino_t, the userland data format changed to 8-byte-alignment, making it incompatible with the 4-byte-alignment UFS on-disk format.  As a result of code refactoring the bad bytes were not copied to userland. Bad bytes will remain in old directories on old filesystems, but nothing makes those bytes user visible.
  There will be no errata or syspatch issued.  I urge other systems which do expose the information to userland to issue errata quickly, since this is a 254 byte infoleak of the stack which is great for ROP-chain building to attack some other bug. Especially if the kernel has no layout/link-order randomization ...&lt;/li&gt;
  &lt;/ul&gt;
  
  &lt;hr&gt;
&lt;/blockquote&gt;

&lt;h3&gt;&lt;a href="https://itsfoss.com/nomadbsd/"&gt;NomadBSD, a BSD for the Road&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;As regular It’s FOSS readers should know, I like diving into the world of BSDs. Recently, I came across an interesting BSD that is designed to live on a thumb drive. Let’s take a look at NomadBSD.
  NomadBSD is different than most available BSDs. NomadBSD is a live system based on FreeBSD. It comes with automatic hardware detection and an initial config tool. NomadBSD is designed to “be used as a desktop system that works out of the box, but can also be used for data recovery, for educational purposes, or to test FreeBSD’s hardware compatibility.”
  This German BSD comes with an OpenBox-based desktop with the Plank application dock. NomadBSD makes use of the DSB project. DSB stands for “Desktop Suite (for) (Free)BSD” and consists of a collection of programs designed to create a simple and working environment without needing a ton of dependencies to use one tool. DSB is created by Marcel Kaiser one of the lead devs of NomadBSD.
  Just like the original BSD projects, you can contact the NomadBSD developers via a mailing list.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Version 1.2 Released&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;NomadBSD recently released version 1.2 on April 21, 2019. This means that NomadBSD is now based on FreeBSD 12.0-p3. TRIM is now enabled by default. One of the biggest changes is that the initial command-line setup was replaced with a Qt graphical interface. They also added a Qt5 tool to install NomadBSD to your hard drive. A number of fixes were included to improve graphics support. They also added support for creating 32-bit images.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Thoughts on NomadBSD&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;I first discovered NomadBSD back in January when they released 1.2-RC1. At the time, I had been unable to install Project Trident on my laptop and was very frustrated with BSDs. I downloaded NomadBSD and tried it out. I initially ran into issues reaching the desktop, but RC2 fixed that issue. However, I was unable to get on the internet, even though I had an Ethernet cable plugged in. Luckily, I found the wifi manager in the menu and was able to connect to my wifi.
  Overall, my experience with NomadBSD was pleasant. Once I figured out a few things, I was good to go. I hope that NomadBSD is the first of a new generation of BSDs that focus on mobility and ease of use. BSD has conquered the server world, it’s about time they figured out how to be more user-friendly.&lt;/p&gt;
  
  &lt;hr&gt;
&lt;/blockquote&gt;

&lt;h2&gt;News Roundup&lt;/h2&gt;

&lt;h3&gt;[OpenBSD automatic&lt;/h3&gt;

&lt;p&gt;upgrade](https://www.tumfatig.net/20190426/openbsd-automatic-upgrade/)&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;OpenBSD 6.5 advertises for an installer improvement: rdsetroot(8) (a build-time tool) is now available for general use. Used in combination with autoinstall.8, it is now really easy to do automatic upgrades of your OpenBSD instances.
  I first manually upgraded my OpenBSD sandbox to 6.5. Once that was done, I could use the stock rdsetroot(8) tool. The plan is quite simple: write an unattended installation response file, insert it to a bsd.rd 6.5 installation image and reboot my other OpenBSD instances using that image.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Extra notes&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;There must be a way to run onetime commands (in the manner of fw_update) to automatically run sysmerge and packages upgrades. As for now, I’d rather do it manually.
  This worked like a charm on two Synology KVM instances using a single sd0 disk, on my Thinkpad X260 using Encrypted root with Keydisk and on a Vultr instance using Encrypted root with passphrase. And BTW, the upgrade on the X260 used the (iwn0) wireless connection.
  I just read that florian@ has released the sysupgrade(8) utility which should be released with OpenBSD 6.6. That will make upgrades even easier! Until then, happy upgrading.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h3&gt;&lt;a href="https://reviews.freebsd.org/D19848"&gt;FreeBSD Dtrace ext2fs Support&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Which logs were replaced by dtrace-probes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Misc printf's under DEBUG macro in the blocks allocation path.&lt;/li&gt;

&lt;li&gt;Different on-disk structures validation errors, now the filesystem will silently return EIO's.&lt;/li&gt;

&lt;li&gt;Misc checksum errors, same as above.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The only debug macro, which was leaved is EXT2FS&lt;em&gt;PRINT&lt;/em&gt;EXTENTS.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;It is impossible to replace it by dtrace-probes, because the additional logic is required to walk thru file extents.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;The user still be able to see mount errors in the dmesg in case of:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Filesystem features incompatibility.&lt;/li&gt;

&lt;p&gt;&lt;/p&gt;
&lt;li&gt;Superblock checksum error.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h3&gt;&lt;a href="https://dataswamp.org/~solene/2019-04-17-ssh-tunneling.html"&gt;Create a dedicated user for ssh tunneling only&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;I use ssh tunneling A LOT, for everything. Yesterday, I removed the public access of my IMAP server, it’s now only available through ssh tunneling to access the daemon listening on localhost. I have plenty of daemons listening only on localhost that I can only reach through a ssh tunnel. If you don’t want to bother with ssh and redirect ports you need, you can also make a VPN (using ssh, openvpn, iked, tinc…) between your system and your server. I tend to avoid setting up VPN for the current use case as it requires more work and more maintenance than running ssh server and a ssh client.
  The last change, for my IMAP server, added an issue. I want my phone to access the IMAP server but I don’t want to connect to my main account from my phone for security reasons. So, I need a dedicated user that will only be allowed to forward ports.
  This is done very easily on OpenBSD.
  The steps are: 1. generate ssh keys for the new user 2. add an user with no password 3. allow public key for port forwarding
  Obviously, you must allow users (or only this one) to make port forwarding in your sshd_config.&lt;/p&gt;
  
  &lt;hr&gt;
&lt;/blockquote&gt;

&lt;h3&gt;&lt;a href="https://openbsd.amsterdam/upgrade.html"&gt;That was easy. Some info on upgrading VMM VMs to 6.5&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;We're running dedicated vmm(4)/vmd(8) servers to host opinionated VMs.
  OpenBSD 6.5 is released! There are two ways you can upgrade your VM.
  Either do a manual upgrade or leverage autoinstall(8). You can take care of it via the console with vmctl(8).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade yourself&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;To get connected to the console you need to have access to the host your VM is running on. The same username and public SSH key, as provided for the VM, are used to create a local user on the host.
  When this is done you can use vmctl(8) to manage your VM. The options you have are:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;pre&gt;&lt;code class="$ vmctl console id``` language-$ vmctl console id```"&gt;```$ vmctl start id [-c]```
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;$ vmctl stop id [-fw]```&lt;/p&gt;

&lt;pre&gt;&lt;code class="-f Forcefully stop the VM without attempting a graceful shutdown.``` language--f Forcefully stop the VM without attempting a graceful shutdown.```"&gt;```-w Wait until the VM has been terminated.```
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;-c Automatically connect to the VM console.```&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;See the Article for the rest of the guide&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;h2&gt;Beastie Bits&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://inks.tedunangst.com/l/3791"&gt;powerpc64 architecture support in FreeBSD ports&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://twitter.com/ribalinux/status/1117856218251517956"&gt;GhostBSD 19.04 overview&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://twitter.com/lattera/status/1119018409575026688"&gt;HardenedBSD will have two user selectable ASLR implementations&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=S_aTzXVRRlM&amp;amp;feature=youtu.be"&gt;NYCBUG 2016 Talk Shell-Fu Uploaded&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.zarfhome.com/2019/04/what-is-zil-anyway.html"&gt;What is ZIL anyway?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;h2&gt;Feedback/Questions&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Quentin - &lt;a href="http://dpaste.com/0K9PQW9#wrap"&gt;Organize an Ada/BSD interview&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;DJ - &lt;a href="http://dpaste.com/3KTQ45G#wrap"&gt;Update&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;Patrick - &lt;a href="http://dpaste.com/07V6ZJN"&gt;Bhyve frontends&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;Send questions, comments, show ideas/topics, or stories you want mentioned on the show to &lt;a href="mailto:feedback@bsdnow.tv"&gt;feedback@bsdnow.tv&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

    
    Your browser does not support the HTML5 video tag.
 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, ssh, nomadbsd, dtrace, ext2, unleashed, vmm</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more.</p>

<h2 id="headlines">Headlines</h2>

<h3 id="36yearoldbuginffsufsdiscoveredandpatchedhttpssvnwebfreebsdorgbaseviewrevisionrevision347066"><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=347066">36+ year old bug in FFS/UFS discovered and patched </a></h3>

<blockquote>
  <p>This update eliminates a kernel stack disclosure bug in UFS/FFS directory entries that is caused by uninitialized directory entry padding written to the disk.</p>
  
  <ul>
  <li>When the directory entry is written to disk, it is written as a full 32bit entry, and the unused bytes were not initialized, so could possibly contain sensitive data from the kernel stack
  It can be viewed by any user with read access to that directory. Up to 3 bytes of kernel stack are disclosed per file entry, depending on the the amount of padding the kernel needs to pad out the entry to a 32 bit boundary. The offset in the kernel stack that is disclosed is a function of the filename size. Furthermore, if the user can create files in a directory, this 3 byte window can be expanded 3 bytes at a time to a 254 byte window with 75% of the data in that window exposed. The additional exposure is done by removing the entry, creating a new entry with a 4-byte longer name, extracting 3 more bytes by reading the directory, and repeating until a 252 byte name is created.
  This exploit works in part because the area of the kernel stack that is being disclosed is in an area that typically doesn't change that often (perhaps a few times a second on a lightly loaded system), and these file creates and unlinks themselves don't overwrite the area of kernel stack being disclosed.
  It appears that this bug originated with the creation of the Fast File System in 4.1b-BSD (Circa 1982, more than 36 years ago!), and is likely present in every Unix or Unix-like system that uses UFS/FFS. Amazingly, nobody noticed until now.
  This update also adds the -z flag to fsck_ffs to have it scrub the leaked information in the name padding of existing directories. It only needs to be run once on each UFS/FFS filesystem after a patched kernel is installed and running.
  Submitted by: David G. Lawrence <a href="&#109;a&#105;&#108;&#116;&#111;:&#x64;&#x67;&#64;&#100;&#103;&#x6c;&#97;&#x77;&#x72;&#101;n&#x63;&#101;&#x2e;&#x63;&#x6f;&#109;">&#x64;&#x67;&#64;&#100;&#103;&#x6c;&#97;&#x77;&#x72;&#101;n&#x63;&#101;&#x2e;&#x63;&#x6f;&#109;</a></li>
  
  <li>So a patched kernel will no longer leak this data, and running the <code>fsck_ffs -z</code> command will erase any leaked data that may exist on your system</li>
  
  <li><a href="https://marc.info/?l=openbsd-cvs&amp;m=155699268122858&amp;w=2">OpenBSD commit with additional detail on mitigations</a>
  The impact on OpenBSD is very limited:
  1 - such stack bytes can be found in raw-device reads, from group operator. If you can read the raw disks you can undertake other more powerful actions.
  2 - read(2) upon directory fd was disabled July 1997 because I didn't like how grep * would display garbage and mess up the tty, and applying vis(3) for just directory reads seemed silly.  read(2) was changed to return 0 (EOF).  Sep 2016 this was further changed to EISDIR, so you still cannot see the bad bytes.
  3 - In 2013 when guenther adapted the getdents(2) directory-reading system call to 64-bit ino_t, the userland data format changed to 8-byte-alignment, making it incompatible with the 4-byte-alignment UFS on-disk format.  As a result of code refactoring the bad bytes were not copied to userland. Bad bytes will remain in old directories on old filesystems, but nothing makes those bytes user visible.
  There will be no errata or syspatch issued.  I urge other systems which do expose the information to userland to issue errata quickly, since this is a 254 byte infoleak of the stack which is great for ROP-chain building to attack some other bug. Especially if the kernel has no layout/link-order randomization ...</li>
  </ul>
  
  <hr />
</blockquote>

<h3 id="nomadbsdabsdfortheroadhttpsitsfosscomnomadbsd"><a href="https://itsfoss.com/nomadbsd/">NomadBSD, a BSD for the Road</a></h3>

<blockquote>
  <p>As regular It’s FOSS readers should know, I like diving into the world of BSDs. Recently, I came across an interesting BSD that is designed to live on a thumb drive. Let’s take a look at NomadBSD.
  NomadBSD is different than most available BSDs. NomadBSD is a live system based on FreeBSD. It comes with automatic hardware detection and an initial config tool. NomadBSD is designed to “be used as a desktop system that works out of the box, but can also be used for data recovery, for educational purposes, or to test FreeBSD’s hardware compatibility.”
  This German BSD comes with an OpenBox-based desktop with the Plank application dock. NomadBSD makes use of the DSB project. DSB stands for “Desktop Suite (for) (Free)BSD” and consists of a collection of programs designed to create a simple and working environment without needing a ton of dependencies to use one tool. DSB is created by Marcel Kaiser one of the lead devs of NomadBSD.
  Just like the original BSD projects, you can contact the NomadBSD developers via a mailing list.</p>
</blockquote>

<ul>
<li>Version 1.2 Released</li>
</ul>

<blockquote>
  <p>NomadBSD recently released version 1.2 on April 21, 2019. This means that NomadBSD is now based on FreeBSD 12.0-p3. TRIM is now enabled by default. One of the biggest changes is that the initial command-line setup was replaced with a Qt graphical interface. They also added a Qt5 tool to install NomadBSD to your hard drive. A number of fixes were included to improve graphics support. They also added support for creating 32-bit images.</p>
</blockquote>

<ul>
<li>Thoughts on NomadBSD</li>
</ul>

<blockquote>
  <p>I first discovered NomadBSD back in January when they released 1.2-RC1. At the time, I had been unable to install Project Trident on my laptop and was very frustrated with BSDs. I downloaded NomadBSD and tried it out. I initially ran into issues reaching the desktop, but RC2 fixed that issue. However, I was unable to get on the internet, even though I had an Ethernet cable plugged in. Luckily, I found the wifi manager in the menu and was able to connect to my wifi.
  Overall, my experience with NomadBSD was pleasant. Once I figured out a few things, I was good to go. I hope that NomadBSD is the first of a new generation of BSDs that focus on mobility and ease of use. BSD has conquered the server world, it’s about time they figured out how to be more user-friendly.</p>
  
  <hr />
</blockquote>

<h2 id="newsroundup">News Roundup</h2>

<h3 id="openbsdautomatic">[OpenBSD automatic</h3>

<p>upgrade](https://www.tumfatig.net/20190426/openbsd-automatic-upgrade/)</p>

<blockquote>
  <p>OpenBSD 6.5 advertises for an installer improvement: rdsetroot(8) (a build-time tool) is now available for general use. Used in combination with autoinstall.8, it is now really easy to do automatic upgrades of your OpenBSD instances.
  I first manually upgraded my OpenBSD sandbox to 6.5. Once that was done, I could use the stock rdsetroot(8) tool. The plan is quite simple: write an unattended installation response file, insert it to a bsd.rd 6.5 installation image and reboot my other OpenBSD instances using that image.</p>
</blockquote>

<ul>
<li>Extra notes</li>
</ul>

<blockquote>
  <p>There must be a way to run onetime commands (in the manner of fw_update) to automatically run sysmerge and packages upgrades. As for now, I’d rather do it manually.
  This worked like a charm on two Synology KVM instances using a single sd0 disk, on my Thinkpad X260 using Encrypted root with Keydisk and on a Vultr instance using Encrypted root with passphrase. And BTW, the upgrade on the X260 used the (iwn0) wireless connection.
  I just read that florian@ has released the sysupgrade(8) utility which should be released with OpenBSD 6.6. That will make upgrades even easier! Until then, happy upgrading.</p>
</blockquote>

<p><hr /></p>

<h3 id="freebsddtraceext2fssupporthttpsreviewsfreebsdorgd19848"><a href="https://reviews.freebsd.org/D19848">FreeBSD Dtrace ext2fs Support</a></h3>

<ul>
<li><p>Which logs were replaced by dtrace-probes:</p>

<ul>
<li>Misc printf's under DEBUG macro in the blocks allocation path.</li>

<li>Different on-disk structures validation errors, now the filesystem will silently return EIO's.</li>

<li>Misc checksum errors, same as above.</li></ul></li>

<li><p>The only debug macro, which was leaved is EXT2FS<em>PRINT</em>EXTENTS.</p></li>

<li><p>It is impossible to replace it by dtrace-probes, because the additional logic is required to walk thru file extents.</p></li>

<li><p>The user still be able to see mount errors in the dmesg in case of:</p>

<p><ul>
<li>Filesystem features incompatibility.</li></p>

<p><li>Superblock checksum error.</li></ul>

<p></p></li>
</ul></p>

<hr />

<h3 id="createadedicateduserforsshtunnelingonlyhttpsdataswamporgtsolene20190417sshtunnelinghtml"><a href="https://dataswamp.org/~solene/2019-04-17-ssh-tunneling.html">Create a dedicated user for ssh tunneling only</a></h3>

<blockquote>
  <p>I use ssh tunneling A LOT, for everything. Yesterday, I removed the public access of my IMAP server, it’s now only available through ssh tunneling to access the daemon listening on localhost. I have plenty of daemons listening only on localhost that I can only reach through a ssh tunnel. If you don’t want to bother with ssh and redirect ports you need, you can also make a VPN (using ssh, openvpn, iked, tinc…) between your system and your server. I tend to avoid setting up VPN for the current use case as it requires more work and more maintenance than running ssh server and a ssh client.
  The last change, for my IMAP server, added an issue. I want my phone to access the IMAP server but I don’t want to connect to my main account from my phone for security reasons. So, I need a dedicated user that will only be allowed to forward ports.
  This is done very easily on OpenBSD.
  The steps are: 1. generate ssh keys for the new user 2. add an user with no password 3. allow public key for port forwarding
  Obviously, you must allow users (or only this one) to make port forwarding in your sshd_config.</p>
  
  <hr />
</blockquote>

<h3 id="thatwaseasysomeinfoonupgradingvmmvmsto65httpsopenbsdamsterdamupgradehtml"><a href="https://openbsd.amsterdam/upgrade.html">That was easy. Some info on upgrading VMM VMs to 6.5</a></h3>

<blockquote>
  <p>We're running dedicated vmm(4)/vmd(8) servers to host opinionated VMs.
  OpenBSD 6.5 is released! There are two ways you can upgrade your VM.
  Either do a manual upgrade or leverage autoinstall(8). You can take care of it via the console with vmctl(8).</p>
</blockquote>

<ul>
<li>Upgrade yourself</li>
</ul>

<blockquote>
  <p>To get connected to the console you need to have access to the host your VM is running on. The same username and public SSH key, as provided for the VM, are used to create a local user on the host.
  When this is done you can use vmctl(8) to manage your VM. The options you have are:</p>
</blockquote>

<pre><code class="$ vmctl console id``` language-$ vmctl console id```">```$ vmctl start id [-c]```
</code></pre>

<p>$ vmctl stop id [-fw]```</p>

<pre><code class="-f Forcefully stop the VM without attempting a graceful shutdown.``` language--f Forcefully stop the VM without attempting a graceful shutdown.```">```-w Wait until the VM has been terminated.```
</code></pre>

<p>-c Automatically connect to the VM console.```</p>

<ul>
<li>See the Article for the rest of the guide</li>
</ul>

<p><hr /></p>

<h2 id="beastiebits">Beastie Bits</h2>

<ul>
<li><a href="https://inks.tedunangst.com/l/3791">powerpc64 architecture support in FreeBSD ports</a></li>

<li><a href="https://twitter.com/ribalinux/status/1117856218251517956">GhostBSD 19.04 overview</a></li>

<li><a href="https://twitter.com/lattera/status/1119018409575026688">HardenedBSD will have two user selectable ASLR implementations</a></li>

<li><a href="https://www.youtube.com/watch?v=S_aTzXVRRlM&amp;feature=youtu.be">NYCBUG 2016 Talk Shell-Fu Uploaded</a></li>

<li><a href="http://blog.zarfhome.com/2019/04/what-is-zil-anyway.html">What is ZIL anyway?</a></li>
</ul>

<p><hr /></p>

<h2 id="feedbackquestions">Feedback/Questions</h2>

<ul>
<li>Quentin - <a href="http://dpaste.com/0K9PQW9#wrap">Organize an Ada/BSD interview</a></li>

<li>DJ - <a href="http://dpaste.com/3KTQ45G#wrap">Update</a></li>

<li>Patrick - <a href="http://dpaste.com/07V6ZJN">Bhyve frontends</a></li>

<li>A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.</li>
</ul>

<p><hr /></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>

<p><hr /></p>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0298.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more.</p>

<h2 id="headlines">Headlines</h2>

<h3 id="36yearoldbuginffsufsdiscoveredandpatchedhttpssvnwebfreebsdorgbaseviewrevisionrevision347066"><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=347066">36+ year old bug in FFS/UFS discovered and patched </a></h3>

<blockquote>
  <p>This update eliminates a kernel stack disclosure bug in UFS/FFS directory entries that is caused by uninitialized directory entry padding written to the disk.</p>
  
  <ul>
  <li>When the directory entry is written to disk, it is written as a full 32bit entry, and the unused bytes were not initialized, so could possibly contain sensitive data from the kernel stack
  It can be viewed by any user with read access to that directory. Up to 3 bytes of kernel stack are disclosed per file entry, depending on the the amount of padding the kernel needs to pad out the entry to a 32 bit boundary. The offset in the kernel stack that is disclosed is a function of the filename size. Furthermore, if the user can create files in a directory, this 3 byte window can be expanded 3 bytes at a time to a 254 byte window with 75% of the data in that window exposed. The additional exposure is done by removing the entry, creating a new entry with a 4-byte longer name, extracting 3 more bytes by reading the directory, and repeating until a 252 byte name is created.
  This exploit works in part because the area of the kernel stack that is being disclosed is in an area that typically doesn't change that often (perhaps a few times a second on a lightly loaded system), and these file creates and unlinks themselves don't overwrite the area of kernel stack being disclosed.
  It appears that this bug originated with the creation of the Fast File System in 4.1b-BSD (Circa 1982, more than 36 years ago!), and is likely present in every Unix or Unix-like system that uses UFS/FFS. Amazingly, nobody noticed until now.
  This update also adds the -z flag to fsck_ffs to have it scrub the leaked information in the name padding of existing directories. It only needs to be run once on each UFS/FFS filesystem after a patched kernel is installed and running.
  Submitted by: David G. Lawrence <a href="&#109;a&#105;&#108;&#116;&#111;:&#x64;&#x67;&#64;&#100;&#103;&#x6c;&#97;&#x77;&#x72;&#101;n&#x63;&#101;&#x2e;&#x63;&#x6f;&#109;">&#x64;&#x67;&#64;&#100;&#103;&#x6c;&#97;&#x77;&#x72;&#101;n&#x63;&#101;&#x2e;&#x63;&#x6f;&#109;</a></li>
  
  <li>So a patched kernel will no longer leak this data, and running the <code>fsck_ffs -z</code> command will erase any leaked data that may exist on your system</li>
  
  <li><a href="https://marc.info/?l=openbsd-cvs&amp;m=155699268122858&amp;w=2">OpenBSD commit with additional detail on mitigations</a>
  The impact on OpenBSD is very limited:
  1 - such stack bytes can be found in raw-device reads, from group operator. If you can read the raw disks you can undertake other more powerful actions.
  2 - read(2) upon directory fd was disabled July 1997 because I didn't like how grep * would display garbage and mess up the tty, and applying vis(3) for just directory reads seemed silly.  read(2) was changed to return 0 (EOF).  Sep 2016 this was further changed to EISDIR, so you still cannot see the bad bytes.
  3 - In 2013 when guenther adapted the getdents(2) directory-reading system call to 64-bit ino_t, the userland data format changed to 8-byte-alignment, making it incompatible with the 4-byte-alignment UFS on-disk format.  As a result of code refactoring the bad bytes were not copied to userland. Bad bytes will remain in old directories on old filesystems, but nothing makes those bytes user visible.
  There will be no errata or syspatch issued.  I urge other systems which do expose the information to userland to issue errata quickly, since this is a 254 byte infoleak of the stack which is great for ROP-chain building to attack some other bug. Especially if the kernel has no layout/link-order randomization ...</li>
  </ul>
  
  <hr />
</blockquote>

<h3 id="nomadbsdabsdfortheroadhttpsitsfosscomnomadbsd"><a href="https://itsfoss.com/nomadbsd/">NomadBSD, a BSD for the Road</a></h3>

<blockquote>
  <p>As regular It’s FOSS readers should know, I like diving into the world of BSDs. Recently, I came across an interesting BSD that is designed to live on a thumb drive. Let’s take a look at NomadBSD.
  NomadBSD is different than most available BSDs. NomadBSD is a live system based on FreeBSD. It comes with automatic hardware detection and an initial config tool. NomadBSD is designed to “be used as a desktop system that works out of the box, but can also be used for data recovery, for educational purposes, or to test FreeBSD’s hardware compatibility.”
  This German BSD comes with an OpenBox-based desktop with the Plank application dock. NomadBSD makes use of the DSB project. DSB stands for “Desktop Suite (for) (Free)BSD” and consists of a collection of programs designed to create a simple and working environment without needing a ton of dependencies to use one tool. DSB is created by Marcel Kaiser one of the lead devs of NomadBSD.
  Just like the original BSD projects, you can contact the NomadBSD developers via a mailing list.</p>
</blockquote>

<ul>
<li>Version 1.2 Released</li>
</ul>

<blockquote>
  <p>NomadBSD recently released version 1.2 on April 21, 2019. This means that NomadBSD is now based on FreeBSD 12.0-p3. TRIM is now enabled by default. One of the biggest changes is that the initial command-line setup was replaced with a Qt graphical interface. They also added a Qt5 tool to install NomadBSD to your hard drive. A number of fixes were included to improve graphics support. They also added support for creating 32-bit images.</p>
</blockquote>

<ul>
<li>Thoughts on NomadBSD</li>
</ul>

<blockquote>
  <p>I first discovered NomadBSD back in January when they released 1.2-RC1. At the time, I had been unable to install Project Trident on my laptop and was very frustrated with BSDs. I downloaded NomadBSD and tried it out. I initially ran into issues reaching the desktop, but RC2 fixed that issue. However, I was unable to get on the internet, even though I had an Ethernet cable plugged in. Luckily, I found the wifi manager in the menu and was able to connect to my wifi.
  Overall, my experience with NomadBSD was pleasant. Once I figured out a few things, I was good to go. I hope that NomadBSD is the first of a new generation of BSDs that focus on mobility and ease of use. BSD has conquered the server world, it’s about time they figured out how to be more user-friendly.</p>
  
  <hr />
</blockquote>

<h2 id="newsroundup">News Roundup</h2>

<h3 id="openbsdautomatic">[OpenBSD automatic</h3>

<p>upgrade](https://www.tumfatig.net/20190426/openbsd-automatic-upgrade/)</p>

<blockquote>
  <p>OpenBSD 6.5 advertises for an installer improvement: rdsetroot(8) (a build-time tool) is now available for general use. Used in combination with autoinstall.8, it is now really easy to do automatic upgrades of your OpenBSD instances.
  I first manually upgraded my OpenBSD sandbox to 6.5. Once that was done, I could use the stock rdsetroot(8) tool. The plan is quite simple: write an unattended installation response file, insert it to a bsd.rd 6.5 installation image and reboot my other OpenBSD instances using that image.</p>
</blockquote>

<ul>
<li>Extra notes</li>
</ul>

<blockquote>
  <p>There must be a way to run onetime commands (in the manner of fw_update) to automatically run sysmerge and packages upgrades. As for now, I’d rather do it manually.
  This worked like a charm on two Synology KVM instances using a single sd0 disk, on my Thinkpad X260 using Encrypted root with Keydisk and on a Vultr instance using Encrypted root with passphrase. And BTW, the upgrade on the X260 used the (iwn0) wireless connection.
  I just read that florian@ has released the sysupgrade(8) utility which should be released with OpenBSD 6.6. That will make upgrades even easier! Until then, happy upgrading.</p>
</blockquote>

<p><hr /></p>

<h3 id="freebsddtraceext2fssupporthttpsreviewsfreebsdorgd19848"><a href="https://reviews.freebsd.org/D19848">FreeBSD Dtrace ext2fs Support</a></h3>

<ul>
<li><p>Which logs were replaced by dtrace-probes:</p>

<ul>
<li>Misc printf's under DEBUG macro in the blocks allocation path.</li>

<li>Different on-disk structures validation errors, now the filesystem will silently return EIO's.</li>

<li>Misc checksum errors, same as above.</li></ul></li>

<li><p>The only debug macro, which was leaved is EXT2FS<em>PRINT</em>EXTENTS.</p></li>

<li><p>It is impossible to replace it by dtrace-probes, because the additional logic is required to walk thru file extents.</p></li>

<li><p>The user still be able to see mount errors in the dmesg in case of:</p>

<p><ul>
<li>Filesystem features incompatibility.</li></p>

<p><li>Superblock checksum error.</li></ul>

<p></p></li>
</ul></p>

<hr />

<h3 id="createadedicateduserforsshtunnelingonlyhttpsdataswamporgtsolene20190417sshtunnelinghtml"><a href="https://dataswamp.org/~solene/2019-04-17-ssh-tunneling.html">Create a dedicated user for ssh tunneling only</a></h3>

<blockquote>
  <p>I use ssh tunneling A LOT, for everything. Yesterday, I removed the public access of my IMAP server, it’s now only available through ssh tunneling to access the daemon listening on localhost. I have plenty of daemons listening only on localhost that I can only reach through a ssh tunnel. If you don’t want to bother with ssh and redirect ports you need, you can also make a VPN (using ssh, openvpn, iked, tinc…) between your system and your server. I tend to avoid setting up VPN for the current use case as it requires more work and more maintenance than running ssh server and a ssh client.
  The last change, for my IMAP server, added an issue. I want my phone to access the IMAP server but I don’t want to connect to my main account from my phone for security reasons. So, I need a dedicated user that will only be allowed to forward ports.
  This is done very easily on OpenBSD.
  The steps are: 1. generate ssh keys for the new user 2. add an user with no password 3. allow public key for port forwarding
  Obviously, you must allow users (or only this one) to make port forwarding in your sshd_config.</p>
  
  <hr />
</blockquote>

<h3 id="thatwaseasysomeinfoonupgradingvmmvmsto65httpsopenbsdamsterdamupgradehtml"><a href="https://openbsd.amsterdam/upgrade.html">That was easy. Some info on upgrading VMM VMs to 6.5</a></h3>

<blockquote>
  <p>We're running dedicated vmm(4)/vmd(8) servers to host opinionated VMs.
  OpenBSD 6.5 is released! There are two ways you can upgrade your VM.
  Either do a manual upgrade or leverage autoinstall(8). You can take care of it via the console with vmctl(8).</p>
</blockquote>

<ul>
<li>Upgrade yourself</li>
</ul>

<blockquote>
  <p>To get connected to the console you need to have access to the host your VM is running on. The same username and public SSH key, as provided for the VM, are used to create a local user on the host.
  When this is done you can use vmctl(8) to manage your VM. The options you have are:</p>
</blockquote>

<pre><code class="$ vmctl console id``` language-$ vmctl console id```">```$ vmctl start id [-c]```
</code></pre>

<p>$ vmctl stop id [-fw]```</p>

<pre><code class="-f Forcefully stop the VM without attempting a graceful shutdown.``` language--f Forcefully stop the VM without attempting a graceful shutdown.```">```-w Wait until the VM has been terminated.```
</code></pre>

<p>-c Automatically connect to the VM console.```</p>

<ul>
<li>See the Article for the rest of the guide</li>
</ul>

<p><hr /></p>

<h2 id="beastiebits">Beastie Bits</h2>

<ul>
<li><a href="https://inks.tedunangst.com/l/3791">powerpc64 architecture support in FreeBSD ports</a></li>

<li><a href="https://twitter.com/ribalinux/status/1117856218251517956">GhostBSD 19.04 overview</a></li>

<li><a href="https://twitter.com/lattera/status/1119018409575026688">HardenedBSD will have two user selectable ASLR implementations</a></li>

<li><a href="https://www.youtube.com/watch?v=S_aTzXVRRlM&amp;feature=youtu.be">NYCBUG 2016 Talk Shell-Fu Uploaded</a></li>

<li><a href="http://blog.zarfhome.com/2019/04/what-is-zil-anyway.html">What is ZIL anyway?</a></li>
</ul>

<p><hr /></p>

<h2 id="feedbackquestions">Feedback/Questions</h2>

<ul>
<li>Quentin - <a href="http://dpaste.com/0K9PQW9#wrap">Organize an Ada/BSD interview</a></li>

<li>DJ - <a href="http://dpaste.com/3KTQ45G#wrap">Update</a></li>

<li>Patrick - <a href="http://dpaste.com/07V6ZJN">Bhyve frontends</a></li>

<li>A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.</li>
</ul>

<p><hr /></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>

<p><hr /></p>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0298.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </itunes:summary>
</item>
<item>
  <title>Episode 249: Router On A Stick | BSD Now 249</title>
  <link>https://www.bsdnow.tv/249</link>
  <guid isPermaLink="false">http://feed.jupiter.zone/bsdnow#entry-2072</guid>
  <pubDate>Wed, 06 Jun 2018 14:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/9447bcc4-4425-4ae0-bc1e-0fb13362e0e2.mp3" length="51237875" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>OpenZFS and DTrace updates in NetBSD, NetBSD network security stack audit, Performance of MySQL on ZFS, OpenSMTP results from p2k18, legacy Windows backup to FreeNAS, ZFS block size importance, and NetBSD as router on a stick.</itunes:subtitle>
  <itunes:duration>1:25:17</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>OpenZFS and DTrace updates in NetBSD, NetBSD network security stack audit, Performance of MySQL on ZFS, OpenSMTP results from p2k18, legacy Windows backup to FreeNAS, ZFS block size importance, and NetBSD as router on a stick.
&lt;hr&gt;
&lt;p&gt;##Headlines&lt;br&gt;
&lt;a href="https://mail-index.netbsd.org/source-changes/2018/05/28/msg095541.html"&gt;ZFS and DTrace update lands in NetBSD&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;merge a new version of the CDDL dtrace and ZFS code. This changes the upstream vendor from OpenSolaris to FreeBSD, and this version is based on FreeBSD svn r315983.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;r315983 is from March 2017 (14 months ago), so there is still more work to do&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;in addition to the 10 years of improvements from upstream, this version also has these NetBSD-specific enhancements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;dtrace FBT probes can now be placed in kernel modules.&lt;/li&gt;
&lt;li&gt;ZFS now supports mmap().&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;This brings NetBSD 10 years forward, and they should be able to catch the rest of the way up fairly quickly&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;###&lt;a href="https://blog.netbsd.org/tnf/entry/network_security_audit"&gt;NetBSD network stack security audit&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Maxime Villard has been working on an audit of the NetBSD network stack, a project sponsored by The NetBSD Foundation, which has served all users of BSD-derived operating systems.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Over the last five months, hundreds of patches were committed to the source tree as a result of this work. Dozens of bugs were fixed, among which a good number of actual, remotely-triggerable vulnerabilities.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Changes were made to strengthen the networking subsystems and improve code quality: reinforce the mbuf API, add many KASSERTs to enforce assumptions, simplify packet handling, and verify compliance with RFCs. This was done in several layers of the NetBSD kernel, from device drivers to L4 handlers.&lt;br&gt;
In the course of investigating several bugs discovered in NetBSD, I happened to look at the network stacks of other operating systems, to see whether they had already fixed the issues, and if so how. Needless to say, I found bugs there too.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;A lot of code is shared between the BSDs, so it is especially helpful when one finds a bug, to check the other BSDs and share the fix.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The IPv6 Buffer Overflow: The overflow allowed an attacker to write one byte of packet-controlled data into ‘packetstorage+off’, where ‘off’ could be approximately controlled too. This allowed at least a pretty bad remote DoS/Crash&lt;br&gt;
The IPsec Infinite Loop: When receiving an IPv6-AH packet, the IPsec entry point was not correctly computing the length of the IPv6 suboptions, and this, before authentication. As a result, a specially-crafted IPv6 packet could trigger an infinite loop in the kernel (making it unresponsive). In addition this flaw allowed a limited buffer overflow - where the data being written was however not controllable by the attacker.&lt;br&gt;
The IPPROTO Typo: While looking at the IPv6 Multicast code, I stumbled across a pretty simple yet pretty bad mistake: at one point the Pim6 entry point would return IPPROTONONE instead of IPPROTODONE. Returning IPPROTONONE was entirely wrong: it caused the kernel to keep iterating on the IPv6 packet chain, while the packet storage was already freed.&lt;br&gt;
The PF Signedness Bug: A bug was found in NetBSD’s implementation of the PF firewall, that did not affect the other BSDs. In the initial PF code a particular macro was used as an alias to a number. This macro formed a signed integer. NetBSD replaced the macro with a sizeof(), which returns an unsigned result.&lt;br&gt;
The NPF Integer Overflow: An integer overflow could be triggered in NPF, when parsing an IPv6 packet with large options. This could cause NPF to look for the L4 payload at the wrong offset within the packet, and it allowed an attacker to bypass any L4 filtering rule on IPv6.&lt;br&gt;
The IPsec Fragment Attack: I noticed some time ago that when reassembling fragments (in either IPv4 or IPv6), the kernel was not removing the MPKTHDR flag on the secondary mbufs in mbuf chains. This flag is supposed to indicate that a given mbuf is the head of the chain it forms; having the flag on secondary mbufs was suspicious.&lt;br&gt;
What Now: Not all protocols and layers of the network stack were verified, because of time constraints, and also because of unexpected events: the recent x86 CPU bugs, which I was the only one able to fix promptly. A todo list will be left when the project end date is reached, for someone else to pick up. Me perhaps, later this year? We’ll see.&lt;br&gt;
This security audit of NetBSD’s network stack is sponsored by The NetBSD Foundation, and serves all users of BSD-derived operating systems. The NetBSD Foundation is a non-profit organization, and welcomes any donations that help continue funding projects of this kind.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;DigitalOcean&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;###&lt;a href="https://www.percona.com/blog/2018/05/15/about-zfs-performance/"&gt;MySQL on ZFS Performance&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I used sysbench to create a table of 10M rows and then, using export/import tablespace, I copied it 329 times. I ended up with 330 tables for a total size of about 850GB. The dataset generated by sysbench is not very compressible, so I used lz4 compression in ZFS. For the other ZFS settings, I used what can be found in my earlier ZFS posts but with the ARC size limited to 1GB. I then used that plain configuration for the first benchmarks. Here are the results with the sysbench point-select benchmark, a uniform distribution and eight threads. The InnoDB buffer pool was set to 2.5GB.&lt;br&gt;
In both cases, the load is IO bound. The disk is doing exactly the allowed 3000 IOPS. The above graph appears to be a clear demonstration that XFS is much faster than ZFS, right? But is that really the case? The way the dataset has been created is extremely favorable to XFS since there is absolutely no file fragmentation. Once you have all the files opened, a read IOP is just a single fseek call to an offset and ZFS doesn’t need to access any intermediate inode. The above result is about as fair as saying MyISAM is faster than InnoDB based only on table scan performance results of unfragmented tables and default configuration. ZFS is much less affected by the file level fragmentation, especially for point access type.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ZFS stores the files in B-trees in a very similar fashion as InnoDB stores data. To access a piece of data in a B-tree, you need to access the top level page (often called root node) and then one block per level down to a leaf-node containing the data. With no cache, to read something from a three levels B-tree thus requires 3 IOPS.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The extra IOPS performed by ZFS are needed to access those internal blocks in the B-trees of the files. These internal blocks are labeled as metadata. Essentially, in the above benchmark, the ARC is too small to contain all the internal blocks of the table files’ B-trees. If we continue the comparison with InnoDB, it would be like running with a buffer pool too small to contain the non-leaf pages. The test dataset I used has about 600MB of non-leaf pages, about 0.1% of the total size, which was well cached by the 3GB buffer pool. So only one InnoDB page, a leaf page, needed to be read per point-select statement.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;To correctly set the ARC size to cache the metadata, you have two choices. First, you can guess values for the ARC size and experiment. Second, you can try to evaluate it by looking at the ZFS internal data. Let’s review these two approaches.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;You’ll read/hear often the ratio 1GB of ARC for 1TB of data, which is about the same 0.1% ratio as for InnoDB. I wrote about that ratio a few times, having nothing better to propose. Actually, I found it depends a lot on the recordsize used. The 0.1% ratio implies a ZFS recordsize of 128KB. A ZFS filesystem with a recordsize of 128KB will use much less metadata than another one using a recordsize of 16KB because it has 8x fewer leaf pages. Fewer leaf pages require less B-tree internal nodes, hence less metadata. A filesystem with a recordsize of 128KB is excellent for sequential access as it maximizes compression and reduces the IOPS but it is poor for small random access operations like the ones MySQL/InnoDB does.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;In order to improve ZFS performance, I had 3 options:&lt;/li&gt;
&lt;li&gt;Increase the ARC size to 7GB&lt;/li&gt;
&lt;li&gt;Use a larger Innodb page size like 64KB&lt;/li&gt;
&lt;li&gt;Add a L2ARC&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;I was reluctant to grow the ARC to 7GB, which was nearly half the overall system memory. At best, the ZFS performance would only match XFS. A larger InnoDB page size would increase the CPU load for decompression on an instance with only two vCPUs; not great either. The last option, the L2ARC, was the most promising.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;ZFS is much more complex than XFS and EXT4 but, that also means it has more tunables/options. I used a simplistic setup and an unfair benchmark which initially led to poor ZFS results. With the same benchmark, very favorable to XFS, I added a ZFS L2ARC and that completely reversed the situation, more than tripling the ZFS results, now 66% above XFS.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;We have seen in this post why the general perception is that ZFS under-performs compared to XFS or EXT4. The presence of B-trees for the files has a big impact on the amount of metadata ZFS needs to handle, especially when the recordsize is small. The metadata consists mostly of the non-leaf pages (or internal nodes) of the B-trees. When properly cached, the performance of ZFS is excellent. ZFS allows you to optimize the use of EBS volumes, both in term of IOPS and size when the instance has fast ephemeral storage devices. Using the ephemeral device of an i3.large instance for the ZFS L2ARC, ZFS outperformed XFS by 66%.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;###&lt;a href="https://poolp.org/posts/2018-04-30/opensmtpd-new-config/"&gt;OpenSMTPD new config&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;TL;DR:
OpenBSD #p2k18 hackathon took place at Epitech in Nantes.
I was organizing the hackathon but managed to make progress on OpenSMTPD.
As mentioned at EuroBSDCon the one-line per rule config format was a design error.
A new configuration grammar is almost ready and the underlying structures are simplified.
Refactor removes ~750 lines of code and solves _many issues that were side-effects of the design error.
New features are going to be unlocked thanks to this.
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Anatomy of a design error&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.&lt;br&gt;
The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.&lt;br&gt;
When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.&lt;br&gt;
It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.&lt;br&gt;
That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.&lt;br&gt;
One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.&lt;br&gt;
To get to the point: we should move to two-line rules :-)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Anatomy of a design error&lt;br&gt;
OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.&lt;/p&gt;
&lt;p&gt;The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.&lt;/p&gt;
&lt;p&gt;When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.&lt;/p&gt;
&lt;p&gt;It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.&lt;/p&gt;
&lt;p&gt;That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.&lt;/p&gt;
&lt;p&gt;One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.&lt;/p&gt;
&lt;p&gt;To get to the point: we should move to two-line rules :-)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The problem with one-line rules&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;OpenSMTPD decides to accept or reject messages based on one-line rules such as:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;accept from any for domain poolp.org deliver to mbox&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Which can essentially be split into three units:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;the decision: accept/reject&lt;/li&gt;
&lt;li&gt;the matching: from any for domain &lt;a href="http://poolp.org"&gt;poolp.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;the (default) action: deliver to mbox&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;To ensure that we meet the requirements of the transactions, the matching must be performed during the SMTP transaction before we take a decision for the recipient.&lt;br&gt;
Given that the rule is atomic, that it doesn’t have an identifier and that the action is part of it, the two only ways to make sure we can remember the action to take later on at delivery time is to either:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;save the action in the envelope, which is what we do today&lt;/li&gt;
&lt;li&gt;evaluate the envelope again at delivery&lt;/li&gt;
&lt;li&gt;And this this where it gets tricky… both solutions are NOT ok.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The first solution, which we’ve been using for a decade, was to save the action within the envelope and kind of carve it in stone. This works fine… however it comes with the downsides that errors fixed in configuration files can’t be caught up by envelopes, that delivery action must be validated way ahead of time during the SMTP transaction which is much trickier, that the parsing of delivery methods takes place as the _smtpd user rather than the recipient user, and that envelope structures that are passed all over OpenSMTPD carry delivery-time informations, and more, and more, and more. The code becomes more complex in general, less safe in some particular places, and some areas are nightmarish to deal with because they have to deal with completely unrelated code that can’t be dealt with later in the code path.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The second solution can’t be done. An envelope may be the result of nested rules, for example an external client, hitting an alias, hitting a user with a .forward file resolving to a user. An envelope on disk may no longer match any rule or it may match a completely different rule If we could ensure that it matched the same rule, evaluating the ruleset may spawn new envelopes which would violate the transaction. Trying to imagine how we could work around this leads to more and more and more RFC violations, incoherent states, duplicate mails, etc…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;There is simply no way to deal with this with atomic rules, the matching and the action must be two separate units that are evaluated at two different times, failure to do so will necessarily imply that you’re either using our first solution and all its downsides, or that you are currently in a world of pain trying to figure out why everything is burning around you. The minute the action is written to an on-disk envelope, you have failed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;A proper ruleset must define a set of matching patterns resolving to an action identifier that is carved in stone, AND a set of named action set that is resolved dynamically at delivery time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Follow the link above to see the rest of the article&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Break&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;##News Roundup&lt;br&gt;
&lt;a href="http://fortysomethinggeek.blogspot.com/2012/09/legacy-windows-rsync-backup-to-freenas.html"&gt;Backing up a legacy Windows machine to a FreeNAS with rsync&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I have some old Windows servers (10 years and counting) and I have been using rsync to back them up to my FreeNAS box. It has been working great for me.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;First of all, I do have my Windows servers backup in virtualized format. However, those are only one-time snapshops that I run once in a while. These are classic ASP IIS web servers that I can easily put up on a new VM. However, many of these legacy servers generate gigabytes of data a day in their repositories. Running VM conversion daily is not ideal.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;My solution was to use some sort of rsync solution just for the data repos. I’ve tried some applications that didn’t work too well with Samba shares and these old servers have slow I/O. Copying files to external sata or usb drive was not ideal. We’ve moved on from Windows to Linux and do not have any Windows file servers of capacity to provide network backups.  Hence, I decided to use Delta Copy with FreeNAS. So here is a little write up on how to set it up. I have 4 Windows 2000 servers backing up daily with this method.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;First, download Delta Copy and install it. It is open-source and pretty much free. It is basically a wrapper for cygwin’s rsync. When you install it, it will ask you to install the Server services which allows you to run it as a Rsync server on Windows. You don’t need to do this. Instead, you will be just using the Delta Copy Client application. But before we do that, we will need to configure our Rsync service for our Windows Clients on FreeNAS.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;In FreeNAS, go under Services , Select Rsync &amp;gt;  Rsync Modules &amp;gt; Add Rsync Module.&lt;/li&gt;
&lt;li&gt;Then fill out the form; giving the module a name and set the path. In my example, I simply called it WIN and linked it to a user called backupuser.&lt;/li&gt;
&lt;li&gt;This process is much easier than trying to configure the daemon rsyncd.conf file by hand.&lt;/li&gt;
&lt;li&gt;Now, on the Windows Client, start the DeltaCopy Client. You will create a new Profile.&lt;/li&gt;
&lt;li&gt;You will need to enter the IP of the Rsync server (FreeNAS) and specify the module name which will be called “Virtual Directory Name.”  When you pull the select menu, the list of Rsync Modules you created earlier in FreeNAS will populate.&lt;/li&gt;
&lt;li&gt;You can set authentication. On the server, you can restrict by IP and do other things to lock down your rsync.&lt;/li&gt;
&lt;li&gt;Next, you will add folders (and/or files) you want to synchronize.&lt;/li&gt;
&lt;li&gt;Once the paths are set up, you can run a sync by right clicking the profile name.&lt;/li&gt;
&lt;li&gt;Here, I made a test sync to a home folder of a virtualized windows box. As you can see, I mounted the rsync volume on my mac to see the progress. The rsync worked beautifully. DeltaCopy did what it was told.&lt;/li&gt;
&lt;li&gt;Once you get everything working. The next thing to do is set schedules. If you done tasks schedules in Windows before, it is pretty straightforward. DeltaCopy has a link in the application to directly create a new task for you. I set my backups to run nightly and it has been working great.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;There you have it. Windows rsync to FreeNAS using DeltaCopy.&lt;br&gt;
The nice thing about FreeNAS is you don’t have to modify /etc/rsyncd.conf files. Everything can be done in the web admin.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;iXsystems&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;###&lt;a href="https://r3xnation.wordpress.com/2018/04/10/how-to-write-atf-tests-for-netbsd/amp/"&gt;How to write ATF tests for NetBSD&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I have recently started contributing to the amazing NetBSD foundation. I was thinking of trying out a new OS for a long time. Switching to the NetBSD OS has been a fun change.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;My first contribution to the NetBSD foundation was adding regression tests for the Address Sanitizer (ASan) in the Automated Testing Framework(ATF) which NetBSD has. I managed to complete it with the help of my really amazing mentor Kamil. This post is gonna be about the ATF framework that NetBSD has and how to you can add multiple tests with ease.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Intro&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;In ATF tests we will basically be talking about test programs which are a suite of test cases for a specific application or program.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;The ATF suite of Commands&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;There are a variety of commands that the atf suite offers. These include :&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;atf-check: The versatile command that is a vital part of the checking process. man page&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;atf-run: Command used to run a test program. man page&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;atf-fail: Report failure of a test case.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;atf-report: used to pretty print the atf-run. man page&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;atf-set: To set atf test conditions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We will be taking a better look at the syntax and usage later.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Let’s start with the Basics&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The ATF testing framework comes preinstalled with a default NetBSD installation. It is used to write tests for various applications and commands in NetBSD.  One can write the Test programs in either the C language or in shell script. In this post I will be dealing with the Bash part.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Follow the link above to see the rest of the article&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;###&lt;a href="http://brian.candler.me/posts/the-importance-of-zfs-blocksize/"&gt;The Importance of ZFS Block Size&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Warning! WARNING! Don’t just do things because some random blog says so&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;One of the important tunables in ZFS is the recordsize (for normal datasets) and volblocksize (for zvols). These default to 128KB and 8KB respectively.&lt;br&gt;
As I understand it, this is the unit of work in ZFS. If you modify one byte in a large file with the default 128KB record size, it causes the whole 128KB to be read in, one byte to be changed, and a new 128KB block to be written out.&lt;br&gt;
As a result, the official recommendation is to use a block size which aligns with the underlying workload: so for example if you are using a database which reads and writes 16KB chunks then you should use a 16KB block size, and if you are running VMs containing an ext4 filesystem, which uses a 4KB block size, you should set a 4KB block size&lt;br&gt;
You can see it has a 16GB total file size, of which 8.5G has been touched and consumes space - that is, it’s a “sparse” file. The used space is also visible by looking at the zfs filesystem which this file resides in&lt;br&gt;
Then I tried to copy the image file whilst maintaining its “sparseness”, that is, only touching the blocks of the zvol which needed to be touched. The original used only 8.42G, but the copy uses 14.6GB - almost the entire 16GB has been touched! What’s gone wrong?&lt;br&gt;
I finally realised that the difference between the zfs filesystem and the zvol is the block size. I recreated the zvol with a 128K block size&lt;br&gt;
That’s better. The disk usage of the zvol is now exactly the same as for the sparse file in the filesystem dataset&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;It does impact the read speed too. 4K blocks took 5:52, and 128K blocks took 3:20&lt;/li&gt;
&lt;li&gt;Part of this is the amount of metadata that has to be read, see the MySQL benchmarks from earlier in the show&lt;/li&gt;
&lt;li&gt;And yes, using a larger block size will increase the compression efficiency, since the compressor has more redundant data to optimize.&lt;/li&gt;
&lt;li&gt;Some of the savings, and the speedup is because a lot less metadata had to be written&lt;/li&gt;
&lt;li&gt;Your zpool layout also plays a big role, if you use 4Kn disks, and RAID-Z2, using a volblocksize of 8k will actually result in a large amount of wasted space because of RAID-Z padding. Although, if you enable compression, your 8k records may compress to only 4k, and then all the numbers change again.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;###&lt;a href="https://www.fukr.org.uk/?p=184"&gt;Using a Raspberry Pi 2 as a Router on a Stick Starring NetBSD&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sorry we didn’t answer you quickly enough&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;A few weeks ago I set about upgrading my feeble networking skills by playing around with a Cisco 2970 switch. I set up a couple of VLANs and found the urge to set up a router to route between them. The 2970 isn’t a modern layer 3 switch so what am I to do?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Why not make use of the Raspberry Pi 2 that I’ve never used and put it to some good use as a ‘router on a stick’.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I could install a Linux based OS as I am quite familiar with it but where’s the fun in that? In my home lab I use SmartOS which by the way is a shit hot hypervisor but as far as I know there aren’t any Illumos distributions for the Raspberry Pi. On the desktop I use Solus OS which is by far the slickest Linux based OS that I’ve had the pleasure to use but Solus’ focus is purely desktop. It’s looking like BSD then!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I believe FreeBSD is renowned for it’s top notch networking stack and so I wrote to the BSDNow show on Jupiter Broadcasting for some help but it seems that the FreeBSD chaps from the show are off on a jolly to some BSD conference or another(love the show by the way).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;It looks like me and the luvverly NetBSD are on a date this Saturday. I’ve always had a secret love for NetBSD. She’s a beautiful, charming and promiscuous lover(looking at the supported architectures) and I just can’t stop going back to her despite her misgivings(ahem, zfs). Just my type of grrrl!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Let’s crack on…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Follow the link above to see the rest of the article&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;##Beastie Bits&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.bsdjobs.com/"&gt;BSD Jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lists.freebsd.org/pipermail/freebsd-jobs/2018-May/000944.html"&gt;University of Aberdeen’s Internet Transport Research Group is hiring&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtu.be/YnNpgtjrM9U"&gt;VR demo on OpenBSD via OpenHMD with OSVR HDK2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rachelbythebay.com/w/2018/04/05/bangpatch/"&gt;patch runs ed, and ed can run anything (mentions FreeBSD and OpenBSD)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jwilm/alacritty/blob/master/README.md"&gt;Alacritty (OpenGL-powered terminal emulator) now supports OpenBSD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://undeadly.org/cgi?action=article;sid=20180413065457"&gt;MAP_STACK Stack Register Checking Committed to -current&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://2018.eurobsdcon.org/call-for-papers/"&gt;EuroBSDCon CfP till June 17, 2018&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Tarsnap&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;##Feedback/Questions&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NeutronDaemon - &lt;a href="http://dpaste.com/3E0SR5Y#wrap"&gt;Tutorial request&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Kurt - &lt;a href="http://dpaste.com/01CWKM5#wrap"&gt;Question about transferability/bi-directionality of ZFS snapshots and send/receive&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Peter - &lt;a href="http://dpaste.com/3N1BGQF#wrap"&gt;A Question and much love for BSD Now&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Peter - &lt;a href="http://dpaste.com/20R2DTG"&gt;netgraph state&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;Send questions, comments, show ideas/topics, or stories you want mentioned on the show to &lt;a href="mailto:feedback@bsdnow.tv"&gt;feedback@bsdnow.tv&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt; 
</description>
  <itunes:keywords>freebsd,openbsd,netbsd,dragonflybsd,trueos,tutorial,howto,guide,bsd,interview,dtrace,sysbench,InnoDB,OpenSMTPD,samba,rsync,ATF tests,raspberry pi 2</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>OpenZFS and DTrace updates in NetBSD, NetBSD network security stack audit, Performance of MySQL on ZFS, OpenSMTP results from p2k18, legacy Windows backup to FreeNAS, ZFS block size importance, and NetBSD as router on a stick.<br>
<hr></p>

<p>##Headlines<br>
###<a href="https://mail-index.netbsd.org/source-changes/2018/05/28/msg095541.html">ZFS and DTrace update lands in NetBSD</a></p>

<blockquote>
<p>merge a new version of the CDDL dtrace and ZFS code. This changes the upstream vendor from OpenSolaris to FreeBSD, and this version is based on FreeBSD svn r315983.</p>
</blockquote>

<ul>
<li>r315983 is from March 2017 (14 months ago), so there is still more work to do</li>
</ul>

<blockquote>
<p>in addition to the 10 years of improvements from upstream, this version also has these NetBSD-specific enhancements:</p>
<ul>
<li>dtrace FBT probes can now be placed in kernel modules.</li>
<li>ZFS now supports mmap().</li>
</ul>
</blockquote>

<ul>
<li>This brings NetBSD 10 years forward, and they should be able to catch the rest of the way up fairly quickly</li>
</ul>

<p><hr></p>

<p>###<a href="https://blog.netbsd.org/tnf/entry/network_security_audit">NetBSD network stack security audit</a></p>

<ul>
<li>Maxime Villard has been working on an audit of the NetBSD network stack, a project sponsored by The NetBSD Foundation, which has served all users of BSD-derived operating systems.</li>
</ul>

<blockquote>
<p>Over the last five months, hundreds of patches were committed to the source tree as a result of this work. Dozens of bugs were fixed, among which a good number of actual, remotely-triggerable vulnerabilities.</p>
</blockquote>

<blockquote>
<p>Changes were made to strengthen the networking subsystems and improve code quality: reinforce the mbuf API, add many KASSERTs to enforce assumptions, simplify packet handling, and verify compliance with RFCs. This was done in several layers of the NetBSD kernel, from device drivers to L4 handlers.<br>
In the course of investigating several bugs discovered in NetBSD, I happened to look at the network stacks of other operating systems, to see whether they had already fixed the issues, and if so how. Needless to say, I found bugs there too.</p>
</blockquote>

<ul>
<li>A lot of code is shared between the BSDs, so it is especially helpful when one finds a bug, to check the other BSDs and share the fix.</li>
</ul>

<blockquote>
<p>The IPv6 Buffer Overflow: The overflow allowed an attacker to write one byte of packet-controlled data into ‘packet_storage+off’, where ‘off’ could be approximately controlled too. This allowed at least a pretty bad remote DoS/Crash<br>
The IPsec Infinite Loop: When receiving an IPv6-AH packet, the IPsec entry point was not correctly computing the length of the IPv6 suboptions, and this, before authentication. As a result, a specially-crafted IPv6 packet could trigger an infinite loop in the kernel (making it unresponsive). In addition this flaw allowed a limited buffer overflow - where the data being written was however not controllable by the attacker.<br>
The IPPROTO Typo: While looking at the IPv6 Multicast code, I stumbled across a pretty simple yet pretty bad mistake: at one point the Pim6 entry point would return IPPROTO_NONE instead of IPPROTO_DONE. Returning IPPROTO_NONE was entirely wrong: it caused the kernel to keep iterating on the IPv6 packet chain, while the packet storage was already freed.<br>
The PF Signedness Bug: A bug was found in NetBSD’s implementation of the PF firewall, that did not affect the other BSDs. In the initial PF code a particular macro was used as an alias to a number. This macro formed a signed integer. NetBSD replaced the macro with a sizeof(), which returns an unsigned result.<br>
The NPF Integer Overflow: An integer overflow could be triggered in NPF, when parsing an IPv6 packet with large options. This could cause NPF to look for the L4 payload at the wrong offset within the packet, and it allowed an attacker to bypass any L4 filtering rule on IPv6.<br>
The IPsec Fragment Attack: I noticed some time ago that when reassembling fragments (in either IPv4 or IPv6), the kernel was not removing the M_PKTHDR flag on the secondary mbufs in mbuf chains. This flag is supposed to indicate that a given mbuf is the head of the chain it forms; having the flag on secondary mbufs was suspicious.<br>
What Now: Not all protocols and layers of the network stack were verified, because of time constraints, and also because of unexpected events: the recent x86 CPU bugs, which I was the only one able to fix promptly. A todo list will be left when the project end date is reached, for someone else to pick up. Me perhaps, later this year? We’ll see.<br>
This security audit of NetBSD’s network stack is sponsored by The NetBSD Foundation, and serves all users of BSD-derived operating systems. The NetBSD Foundation is a non-profit organization, and welcomes any donations that help continue funding projects of this kind.</p>
</blockquote>

<p><hr></p>

<p><strong>DigitalOcean</strong></p>

<p>###<a href="https://www.percona.com/blog/2018/05/15/about-zfs-performance/">MySQL on ZFS Performance</a></p>

<blockquote>
<p>I used sysbench to create a table of 10M rows and then, using export/import tablespace, I copied it 329 times. I ended up with 330 tables for a total size of about 850GB. The dataset generated by sysbench is not very compressible, so I used lz4 compression in ZFS. For the other ZFS settings, I used what can be found in my earlier ZFS posts but with the ARC size limited to 1GB. I then used that plain configuration for the first benchmarks. Here are the results with the sysbench point-select benchmark, a uniform distribution and eight threads. The InnoDB buffer pool was set to 2.5GB.<br>
In both cases, the load is IO bound. The disk is doing exactly the allowed 3000 IOPS. The above graph appears to be a clear demonstration that XFS is much faster than ZFS, right? But is that really the case? The way the dataset has been created is extremely favorable to XFS since there is absolutely no file fragmentation. Once you have all the files opened, a read IOP is just a single fseek call to an offset and ZFS doesn’t need to access any intermediate inode. The above result is about as fair as saying MyISAM is faster than InnoDB based only on table scan performance results of unfragmented tables and default configuration. ZFS is much less affected by the file level fragmentation, especially for point access type.</p>
</blockquote>

<blockquote>
<p>ZFS stores the files in B-trees in a very similar fashion as InnoDB stores data. To access a piece of data in a B-tree, you need to access the top level page (often called root node) and then one block per level down to a leaf-node containing the data. With no cache, to read something from a three levels B-tree thus requires 3 IOPS.</p>
</blockquote>

<blockquote>
<p>The extra IOPS performed by ZFS are needed to access those internal blocks in the B-trees of the files. These internal blocks are labeled as metadata. Essentially, in the above benchmark, the ARC is too small to contain all the internal blocks of the table files’ B-trees. If we continue the comparison with InnoDB, it would be like running with a buffer pool too small to contain the non-leaf pages. The test dataset I used has about 600MB of non-leaf pages, about 0.1% of the total size, which was well cached by the 3GB buffer pool. So only one InnoDB page, a leaf page, needed to be read per point-select statement.</p>
</blockquote>

<blockquote>
<p>To correctly set the ARC size to cache the metadata, you have two choices. First, you can guess values for the ARC size and experiment. Second, you can try to evaluate it by looking at the ZFS internal data. Let’s review these two approaches.</p>
</blockquote>

<blockquote>
<p>You’ll read/hear often the ratio 1GB of ARC for 1TB of data, which is about the same 0.1% ratio as for InnoDB. I wrote about that ratio a few times, having nothing better to propose. Actually, I found it depends a lot on the recordsize used. The 0.1% ratio implies a ZFS recordsize of 128KB. A ZFS filesystem with a recordsize of 128KB will use much less metadata than another one using a recordsize of 16KB because it has 8x fewer leaf pages. Fewer leaf pages require less B-tree internal nodes, hence less metadata. A filesystem with a recordsize of 128KB is excellent for sequential access as it maximizes compression and reduces the IOPS but it is poor for small random access operations like the ones MySQL/InnoDB does.</p>
</blockquote>

<ul>
<li>In order to improve ZFS performance, I had 3 options:</li>
<li>Increase the ARC size to 7GB</li>
<li>Use a larger Innodb page size like 64KB</li>
<li>Add a L2ARC</li>
</ul>

<blockquote>
<p>I was reluctant to grow the ARC to 7GB, which was nearly half the overall system memory. At best, the ZFS performance would only match XFS. A larger InnoDB page size would increase the CPU load for decompression on an instance with only two vCPUs; not great either. The last option, the L2ARC, was the most promising.</p>
</blockquote>

<blockquote>
<p>ZFS is much more complex than XFS and EXT4 but, that also means it has more tunables/options. I used a simplistic setup and an unfair benchmark which initially led to poor ZFS results. With the same benchmark, very favorable to XFS, I added a ZFS L2ARC and that completely reversed the situation, more than tripling the ZFS results, now 66% above XFS.</p>
</blockquote>

<ul>
<li>Conclusion</li>
</ul>

<blockquote>
<p>We have seen in this post why the general perception is that ZFS under-performs compared to XFS or EXT4. The presence of B-trees for the files has a big impact on the amount of metadata ZFS needs to handle, especially when the recordsize is small. The metadata consists mostly of the non-leaf pages (or internal nodes) of the B-trees. When properly cached, the performance of ZFS is excellent. ZFS allows you to optimize the use of EBS volumes, both in term of IOPS and size when the instance has fast ephemeral storage devices. Using the ephemeral device of an i3.large instance for the ZFS L2ARC, ZFS outperformed XFS by 66%.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://poolp.org/posts/2018-04-30/opensmtpd-new-config/">OpenSMTPD new config</a></p>

<pre><code>TL;DR:
OpenBSD #p2k18 hackathon took place at Epitech in Nantes.
I was organizing the hackathon but managed to make progress on OpenSMTPD.
As mentioned at EuroBSDCon the one-line per rule config format was a design error.
A new configuration grammar is almost ready and the underlying structures are simplified.
Refactor removes ~750 lines of code and solves _many_ issues that were side-effects of the design error.
New features are going to be unlocked thanks to this.
</code></pre>

<ul>
<li>Anatomy of a design error</li>
</ul>

<blockquote>
<p>OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.<br>
The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.<br>
When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.<br>
It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.<br>
That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.<br>
One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.<br>
To get to the point: we should move to two-line rules :-)</p>
</blockquote>

<p>Anatomy of a design error<br>
OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.</p>

<p>The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.</p>

<p>When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.</p>

<p>It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.</p>

<p>That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.</p>

<p>One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.</p>

<p>To get to the point: we should move to two-line rules :-)</p>

<ul>
<li>The problem with one-line rules</li>
</ul>

<blockquote>
<p>OpenSMTPD decides to accept or reject messages based on one-line rules such as:</p>
</blockquote>

<p><code>accept from any for domain poolp.org deliver to mbox</code></p>

<blockquote>
<p>Which can essentially be split into three units:</p>
</blockquote>

<ul>
<li>the decision: accept/reject</li>
<li>the matching: from any for domain <a href="http://poolp.org">poolp.org</a></li>
<li>the (default) action: deliver to mbox</li>
</ul>

<blockquote>
<p>To ensure that we meet the requirements of the transactions, the matching must be performed during the SMTP transaction before we take a decision for the recipient.<br>
Given that the rule is atomic, that it doesn’t have an identifier and that the action is part of it, the two only ways to make sure we can remember the action to take later on at delivery time is to either:</p>
</blockquote>

<ul>
<li>save the action in the envelope, which is what we do today</li>
<li>evaluate the envelope again at delivery</li>
<li>And this this where it gets tricky… both solutions are NOT ok.</li>
</ul>

<blockquote>
<p>The first solution, which we’ve been using for a decade, was to save the action within the envelope and kind of carve it in stone. This works fine… however it comes with the downsides that errors fixed in configuration files can’t be caught up by envelopes, that delivery action must be validated way ahead of time during the SMTP transaction which is much trickier, that the parsing of delivery methods takes place as the _smtpd user rather than the recipient user, and that envelope structures that are passed all over OpenSMTPD carry delivery-time informations, and more, and more, and more. The code becomes more complex in general, less safe in some particular places, and some areas are nightmarish to deal with because they have to deal with completely unrelated code that can’t be dealt with later in the code path.</p>
</blockquote>

<blockquote>
<p>The second solution can’t be done. An envelope may be the result of nested rules, for example an external client, hitting an alias, hitting a user with a .forward file resolving to a user. An envelope on disk may no longer match any rule or it may match a completely different rule If we could ensure that it matched the same rule, evaluating the ruleset may spawn new envelopes which would violate the transaction. Trying to imagine how we could work around this leads to more and more and more RFC violations, incoherent states, duplicate mails, etc…</p>
</blockquote>

<blockquote>
<p>There is simply no way to deal with this with atomic rules, the matching and the action must be two separate units that are evaluated at two different times, failure to do so will necessarily imply that you’re either using our first solution and all its downsides, or that you are currently in a world of pain trying to figure out why everything is burning around you. The minute the action is written to an on-disk envelope, you have failed.</p>
</blockquote>

<blockquote>
<p>A proper ruleset must define a set of matching patterns resolving to an action identifier that is carved in stone, AND a set of named action set that is resolved dynamically at delivery time.</p>
</blockquote>

<ul>
<li>Follow the link above to see the rest of the article</li>
</ul>

<p><hr></p>

<p><strong>Break</strong></p>

<p>##News Roundup<br>
###<a href="http://fortysomethinggeek.blogspot.com/2012/09/legacy-windows-rsync-backup-to-freenas.html">Backing up a legacy Windows machine to a FreeNAS with rsync</a></p>

<blockquote>
<p>I have some old Windows servers (10 years and counting) and I have been using rsync to back them up to my FreeNAS box. It has been working great for me.</p>
</blockquote>

<blockquote>
<p>First of all, I do have my Windows servers backup in virtualized format. However, those are only one-time snapshops that I run once in a while. These are classic ASP IIS web servers that I can easily put up on a new VM. However, many of these legacy servers generate gigabytes of data a day in their repositories. Running VM conversion daily is not ideal.</p>
</blockquote>

<blockquote>
<p>My solution was to use some sort of rsync solution just for the data repos. I’ve tried some applications that didn’t work too well with Samba shares and these old servers have slow I/O. Copying files to external sata or usb drive was not ideal. We’ve moved on from Windows to Linux and do not have any Windows file servers of capacity to provide network backups.  Hence, I decided to use Delta Copy with FreeNAS. So here is a little write up on how to set it up. I have 4 Windows 2000 servers backing up daily with this method.</p>
</blockquote>

<blockquote>
<p>First, download Delta Copy and install it. It is open-source and pretty much free. It is basically a wrapper for cygwin’s rsync. When you install it, it will ask you to install the Server services which allows you to run it as a Rsync server on Windows. You don’t need to do this. Instead, you will be just using the Delta Copy Client application. But before we do that, we will need to configure our Rsync service for our Windows Clients on FreeNAS.</p>
</blockquote>

<ul>
<li>In FreeNAS, go under Services , Select Rsync &gt;  Rsync Modules &gt; Add Rsync Module.</li>
<li>Then fill out the form; giving the module a name and set the path. In my example, I simply called it WIN and linked it to a user called backupuser.</li>
<li>This process is much easier than trying to configure the daemon rsyncd.conf file by hand.</li>
<li>Now, on the Windows Client, start the DeltaCopy Client. You will create a new Profile.</li>
<li>You will need to enter the IP of the Rsync server (FreeNAS) and specify the module name which will be called “Virtual Directory Name.”  When you pull the select menu, the list of Rsync Modules you created earlier in FreeNAS will populate.</li>
<li>You can set authentication. On the server, you can restrict by IP and do other things to lock down your rsync.</li>
<li>Next, you will add folders (and/or files) you want to synchronize.</li>
<li>Once the paths are set up, you can run a sync by right clicking the profile name.</li>
<li>Here, I made a test sync to a home folder of a virtualized windows box. As you can see, I mounted the rsync volume on my mac to see the progress. The rsync worked beautifully. DeltaCopy did what it was told.</li>
<li>Once you get everything working. The next thing to do is set schedules. If you done tasks schedules in Windows before, it is pretty straightforward. DeltaCopy has a link in the application to directly create a new task for you. I set my backups to run nightly and it has been working great.</li>
</ul>

<blockquote>
<p>There you have it. Windows rsync to FreeNAS using DeltaCopy.<br>
The nice thing about FreeNAS is you don’t have to modify /etc/rsyncd.conf files. Everything can be done in the web admin.</p>
</blockquote>

<p><hr></p>

<p><strong>iXsystems</strong></p>

<p>###<a href="https://r3xnation.wordpress.com/2018/04/10/how-to-write-atf-tests-for-netbsd/amp/">How to write ATF tests for NetBSD</a></p>

<blockquote>
<p>I have recently started contributing to the amazing NetBSD foundation. I was thinking of trying out a new OS for a long time. Switching to the NetBSD OS has been a fun change.</p>
</blockquote>

<blockquote>
<p>My first contribution to the NetBSD foundation was adding regression tests for the Address Sanitizer (ASan) in the Automated Testing Framework(ATF) which NetBSD has. I managed to complete it with the help of my really amazing mentor Kamil. This post is gonna be about the ATF framework that NetBSD has and how to you can add multiple tests with ease.</p>
</blockquote>

<ul>
<li>Intro</li>
</ul>

<blockquote>
<p>In ATF tests we will basically be talking about test programs which are a suite of test cases for a specific application or program.</p>
</blockquote>

<ul>
<li>The ATF suite of Commands</li>
</ul>

<blockquote>
<p>There are a variety of commands that the atf suite offers. These include :</p>
</blockquote>

<ul>
<li>
<p>atf-check: The versatile command that is a vital part of the checking process. man page</p>
</li>
<li>
<p>atf-run: Command used to run a test program. man page</p>
</li>
<li>
<p>atf-fail: Report failure of a test case.</p>
</li>
<li>
<p>atf-report: used to pretty print the atf-run. man page</p>
</li>
<li>
<p>atf-set: To set atf test conditions.</p>
</li>
<li>
<p>We will be taking a better look at the syntax and usage later.</p>
</li>
<li>
<p>Let’s start with the Basics</p>
</li>
</ul>

<blockquote>
<p>The ATF testing framework comes preinstalled with a default NetBSD installation. It is used to write tests for various applications and commands in NetBSD.  One can write the Test programs in either the C language or in shell script. In this post I will be dealing with the Bash part.</p>
</blockquote>

<ul>
<li>Follow the link above to see the rest of the article</li>
</ul>

<p><hr></p>

<p>###<a href="http://brian.candler.me/posts/the-importance-of-zfs-blocksize/">The Importance of ZFS Block Size</a></p>

<ul>
<li>Warning! WARNING! Don’t just do things because some random blog says so</li>
</ul>

<blockquote>
<p>One of the important tunables in ZFS is the recordsize (for normal datasets) and volblocksize (for zvols). These default to 128KB and 8KB respectively.<br>
As I understand it, this is the unit of work in ZFS. If you modify one byte in a large file with the default 128KB record size, it causes the whole 128KB to be read in, one byte to be changed, and a new 128KB block to be written out.<br>
As a result, the official recommendation is to use a block size which aligns with the underlying workload: so for example if you are using a database which reads and writes 16KB chunks then you should use a 16KB block size, and if you are running VMs containing an ext4 filesystem, which uses a 4KB block size, you should set a 4KB block size<br>
You can see it has a 16GB total file size, of which 8.5G has been touched and consumes space - that is, it’s a “sparse” file. The used space is also visible by looking at the zfs filesystem which this file resides in<br>
Then I tried to copy the image file whilst maintaining its “sparseness”, that is, only touching the blocks of the zvol which needed to be touched. The original used only 8.42G, but the copy uses 14.6GB - almost the entire 16GB has been touched! What’s gone wrong?<br>
I finally realised that the difference between the zfs filesystem and the zvol is the block size. I recreated the zvol with a 128K block size<br>
That’s better. The disk usage of the zvol is now exactly the same as for the sparse file in the filesystem dataset</p>
</blockquote>

<ul>
<li>It does impact the read speed too. 4K blocks took 5:52, and 128K blocks took 3:20</li>
<li>Part of this is the amount of metadata that has to be read, see the MySQL benchmarks from earlier in the show</li>
<li>And yes, using a larger block size will increase the compression efficiency, since the compressor has more redundant data to optimize.</li>
<li>Some of the savings, and the speedup is because a lot less metadata had to be written</li>
<li>Your zpool layout also plays a big role, if you use 4Kn disks, and RAID-Z2, using a volblocksize of 8k will actually result in a large amount of wasted space because of RAID-Z padding. Although, if you enable compression, your 8k records may compress to only 4k, and then all the numbers change again.</li>
</ul>

<p><hr></p>

<p>###<a href="https://www.fukr.org.uk/?p=184">Using a Raspberry Pi 2 as a Router on a Stick Starring NetBSD</a></p>

<ul>
<li>Sorry we didn’t answer you quickly enough</li>
</ul>

<blockquote>
<p>A few weeks ago I set about upgrading my feeble networking skills by playing around with a Cisco 2970 switch. I set up a couple of VLANs and found the urge to set up a router to route between them. The 2970 isn’t a modern layer 3 switch so what am I to do?</p>
</blockquote>

<blockquote>
<p>Why not make use of the Raspberry Pi 2 that I’ve never used and put it to some good use as a ‘router on a stick’.</p>
</blockquote>

<blockquote>
<p>I could install a Linux based OS as I am quite familiar with it but where’s the fun in that? In my home lab I use SmartOS which by the way is a shit hot hypervisor but as far as I know there aren’t any Illumos distributions for the Raspberry Pi. On the desktop I use Solus OS which is by far the slickest Linux based OS that I’ve had the pleasure to use but Solus’ focus is purely desktop. It’s looking like BSD then!</p>
</blockquote>

<blockquote>
<p>I believe FreeBSD is renowned for it’s top notch networking stack and so I wrote to the BSDNow show on Jupiter Broadcasting for some help but it seems that the FreeBSD chaps from the show are off on a jolly to some BSD conference or another(love the show by the way).</p>
</blockquote>

<blockquote>
<p>It looks like me and the luvverly NetBSD are on a date this Saturday. I’ve always had a secret love for NetBSD. She’s a beautiful, charming and promiscuous lover(looking at the supported architectures) and I just can’t stop going back to her despite her misgivings(ahem, zfs). Just my type of grrrl!</p>
</blockquote>

<blockquote>
<p>Let’s crack on…</p>
</blockquote>

<ul>
<li>Follow the link above to see the rest of the article</li>
</ul>

<p><hr></p>

<p>##Beastie Bits</p>

<ul>
<li><a href="https://www.bsdjobs.com/">BSD Jobs</a></li>
<li><a href="https://lists.freebsd.org/pipermail/freebsd-jobs/2018-May/000944.html">University of Aberdeen’s Internet Transport Research Group is hiring</a></li>
<li><a href="https://youtu.be/YnNpgtjrM9U">VR demo on OpenBSD via OpenHMD with OSVR HDK2</a></li>
<li><a href="https://rachelbythebay.com/w/2018/04/05/bangpatch/">patch runs ed, and ed can run anything (mentions FreeBSD and OpenBSD)</a></li>
<li><a href="https://github.com/jwilm/alacritty/blob/master/README.md">Alacritty (OpenGL-powered terminal emulator) now supports OpenBSD</a></li>
<li><a href="https://undeadly.org/cgi?action=article;sid=20180413065457">MAP_STACK Stack Register Checking Committed to -current</a></li>
<li><a href="https://2018.eurobsdcon.org/call-for-papers/">EuroBSDCon CfP till June 17, 2018</a></li>
</ul>

<p><hr></p>

<p><strong>Tarsnap</strong></p>

<p>##Feedback/Questions</p>

<ul>
<li>NeutronDaemon - <a href="http://dpaste.com/3E0SR5Y#wrap">Tutorial request</a></li>
<li>Kurt - <a href="http://dpaste.com/01CWKM5#wrap">Question about transferability/bi-directionality of ZFS snapshots and send/receive</a></li>
<li>Peter - <a href="http://dpaste.com/3N1BGQF#wrap">A Question and much love for BSD Now</a></li>
<li>Peter - <a href="http://dpaste.com/20R2DTG">netgraph state</a></li>
</ul>

<p><hr></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>

<p><hr></p>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>OpenZFS and DTrace updates in NetBSD, NetBSD network security stack audit, Performance of MySQL on ZFS, OpenSMTP results from p2k18, legacy Windows backup to FreeNAS, ZFS block size importance, and NetBSD as router on a stick.<br>
<hr></p>

<p>##Headlines<br>
###<a href="https://mail-index.netbsd.org/source-changes/2018/05/28/msg095541.html">ZFS and DTrace update lands in NetBSD</a></p>

<blockquote>
<p>merge a new version of the CDDL dtrace and ZFS code. This changes the upstream vendor from OpenSolaris to FreeBSD, and this version is based on FreeBSD svn r315983.</p>
</blockquote>

<ul>
<li>r315983 is from March 2017 (14 months ago), so there is still more work to do</li>
</ul>

<blockquote>
<p>in addition to the 10 years of improvements from upstream, this version also has these NetBSD-specific enhancements:</p>
<ul>
<li>dtrace FBT probes can now be placed in kernel modules.</li>
<li>ZFS now supports mmap().</li>
</ul>
</blockquote>

<ul>
<li>This brings NetBSD 10 years forward, and they should be able to catch the rest of the way up fairly quickly</li>
</ul>

<p><hr></p>

<p>###<a href="https://blog.netbsd.org/tnf/entry/network_security_audit">NetBSD network stack security audit</a></p>

<ul>
<li>Maxime Villard has been working on an audit of the NetBSD network stack, a project sponsored by The NetBSD Foundation, which has served all users of BSD-derived operating systems.</li>
</ul>

<blockquote>
<p>Over the last five months, hundreds of patches were committed to the source tree as a result of this work. Dozens of bugs were fixed, among which a good number of actual, remotely-triggerable vulnerabilities.</p>
</blockquote>

<blockquote>
<p>Changes were made to strengthen the networking subsystems and improve code quality: reinforce the mbuf API, add many KASSERTs to enforce assumptions, simplify packet handling, and verify compliance with RFCs. This was done in several layers of the NetBSD kernel, from device drivers to L4 handlers.<br>
In the course of investigating several bugs discovered in NetBSD, I happened to look at the network stacks of other operating systems, to see whether they had already fixed the issues, and if so how. Needless to say, I found bugs there too.</p>
</blockquote>

<ul>
<li>A lot of code is shared between the BSDs, so it is especially helpful when one finds a bug, to check the other BSDs and share the fix.</li>
</ul>

<blockquote>
<p>The IPv6 Buffer Overflow: The overflow allowed an attacker to write one byte of packet-controlled data into ‘packet_storage+off’, where ‘off’ could be approximately controlled too. This allowed at least a pretty bad remote DoS/Crash<br>
The IPsec Infinite Loop: When receiving an IPv6-AH packet, the IPsec entry point was not correctly computing the length of the IPv6 suboptions, and this, before authentication. As a result, a specially-crafted IPv6 packet could trigger an infinite loop in the kernel (making it unresponsive). In addition this flaw allowed a limited buffer overflow - where the data being written was however not controllable by the attacker.<br>
The IPPROTO Typo: While looking at the IPv6 Multicast code, I stumbled across a pretty simple yet pretty bad mistake: at one point the Pim6 entry point would return IPPROTO_NONE instead of IPPROTO_DONE. Returning IPPROTO_NONE was entirely wrong: it caused the kernel to keep iterating on the IPv6 packet chain, while the packet storage was already freed.<br>
The PF Signedness Bug: A bug was found in NetBSD’s implementation of the PF firewall, that did not affect the other BSDs. In the initial PF code a particular macro was used as an alias to a number. This macro formed a signed integer. NetBSD replaced the macro with a sizeof(), which returns an unsigned result.<br>
The NPF Integer Overflow: An integer overflow could be triggered in NPF, when parsing an IPv6 packet with large options. This could cause NPF to look for the L4 payload at the wrong offset within the packet, and it allowed an attacker to bypass any L4 filtering rule on IPv6.<br>
The IPsec Fragment Attack: I noticed some time ago that when reassembling fragments (in either IPv4 or IPv6), the kernel was not removing the M_PKTHDR flag on the secondary mbufs in mbuf chains. This flag is supposed to indicate that a given mbuf is the head of the chain it forms; having the flag on secondary mbufs was suspicious.<br>
What Now: Not all protocols and layers of the network stack were verified, because of time constraints, and also because of unexpected events: the recent x86 CPU bugs, which I was the only one able to fix promptly. A todo list will be left when the project end date is reached, for someone else to pick up. Me perhaps, later this year? We’ll see.<br>
This security audit of NetBSD’s network stack is sponsored by The NetBSD Foundation, and serves all users of BSD-derived operating systems. The NetBSD Foundation is a non-profit organization, and welcomes any donations that help continue funding projects of this kind.</p>
</blockquote>

<p><hr></p>

<p><strong>DigitalOcean</strong></p>

<p>###<a href="https://www.percona.com/blog/2018/05/15/about-zfs-performance/">MySQL on ZFS Performance</a></p>

<blockquote>
<p>I used sysbench to create a table of 10M rows and then, using export/import tablespace, I copied it 329 times. I ended up with 330 tables for a total size of about 850GB. The dataset generated by sysbench is not very compressible, so I used lz4 compression in ZFS. For the other ZFS settings, I used what can be found in my earlier ZFS posts but with the ARC size limited to 1GB. I then used that plain configuration for the first benchmarks. Here are the results with the sysbench point-select benchmark, a uniform distribution and eight threads. The InnoDB buffer pool was set to 2.5GB.<br>
In both cases, the load is IO bound. The disk is doing exactly the allowed 3000 IOPS. The above graph appears to be a clear demonstration that XFS is much faster than ZFS, right? But is that really the case? The way the dataset has been created is extremely favorable to XFS since there is absolutely no file fragmentation. Once you have all the files opened, a read IOP is just a single fseek call to an offset and ZFS doesn’t need to access any intermediate inode. The above result is about as fair as saying MyISAM is faster than InnoDB based only on table scan performance results of unfragmented tables and default configuration. ZFS is much less affected by the file level fragmentation, especially for point access type.</p>
</blockquote>

<blockquote>
<p>ZFS stores the files in B-trees in a very similar fashion as InnoDB stores data. To access a piece of data in a B-tree, you need to access the top level page (often called root node) and then one block per level down to a leaf-node containing the data. With no cache, to read something from a three levels B-tree thus requires 3 IOPS.</p>
</blockquote>

<blockquote>
<p>The extra IOPS performed by ZFS are needed to access those internal blocks in the B-trees of the files. These internal blocks are labeled as metadata. Essentially, in the above benchmark, the ARC is too small to contain all the internal blocks of the table files’ B-trees. If we continue the comparison with InnoDB, it would be like running with a buffer pool too small to contain the non-leaf pages. The test dataset I used has about 600MB of non-leaf pages, about 0.1% of the total size, which was well cached by the 3GB buffer pool. So only one InnoDB page, a leaf page, needed to be read per point-select statement.</p>
</blockquote>

<blockquote>
<p>To correctly set the ARC size to cache the metadata, you have two choices. First, you can guess values for the ARC size and experiment. Second, you can try to evaluate it by looking at the ZFS internal data. Let’s review these two approaches.</p>
</blockquote>

<blockquote>
<p>You’ll read/hear often the ratio 1GB of ARC for 1TB of data, which is about the same 0.1% ratio as for InnoDB. I wrote about that ratio a few times, having nothing better to propose. Actually, I found it depends a lot on the recordsize used. The 0.1% ratio implies a ZFS recordsize of 128KB. A ZFS filesystem with a recordsize of 128KB will use much less metadata than another one using a recordsize of 16KB because it has 8x fewer leaf pages. Fewer leaf pages require less B-tree internal nodes, hence less metadata. A filesystem with a recordsize of 128KB is excellent for sequential access as it maximizes compression and reduces the IOPS but it is poor for small random access operations like the ones MySQL/InnoDB does.</p>
</blockquote>

<ul>
<li>In order to improve ZFS performance, I had 3 options:</li>
<li>Increase the ARC size to 7GB</li>
<li>Use a larger Innodb page size like 64KB</li>
<li>Add a L2ARC</li>
</ul>

<blockquote>
<p>I was reluctant to grow the ARC to 7GB, which was nearly half the overall system memory. At best, the ZFS performance would only match XFS. A larger InnoDB page size would increase the CPU load for decompression on an instance with only two vCPUs; not great either. The last option, the L2ARC, was the most promising.</p>
</blockquote>

<blockquote>
<p>ZFS is much more complex than XFS and EXT4 but, that also means it has more tunables/options. I used a simplistic setup and an unfair benchmark which initially led to poor ZFS results. With the same benchmark, very favorable to XFS, I added a ZFS L2ARC and that completely reversed the situation, more than tripling the ZFS results, now 66% above XFS.</p>
</blockquote>

<ul>
<li>Conclusion</li>
</ul>

<blockquote>
<p>We have seen in this post why the general perception is that ZFS under-performs compared to XFS or EXT4. The presence of B-trees for the files has a big impact on the amount of metadata ZFS needs to handle, especially when the recordsize is small. The metadata consists mostly of the non-leaf pages (or internal nodes) of the B-trees. When properly cached, the performance of ZFS is excellent. ZFS allows you to optimize the use of EBS volumes, both in term of IOPS and size when the instance has fast ephemeral storage devices. Using the ephemeral device of an i3.large instance for the ZFS L2ARC, ZFS outperformed XFS by 66%.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://poolp.org/posts/2018-04-30/opensmtpd-new-config/">OpenSMTPD new config</a></p>

<pre><code>TL;DR:
OpenBSD #p2k18 hackathon took place at Epitech in Nantes.
I was organizing the hackathon but managed to make progress on OpenSMTPD.
As mentioned at EuroBSDCon the one-line per rule config format was a design error.
A new configuration grammar is almost ready and the underlying structures are simplified.
Refactor removes ~750 lines of code and solves _many_ issues that were side-effects of the design error.
New features are going to be unlocked thanks to this.
</code></pre>

<ul>
<li>Anatomy of a design error</li>
</ul>

<blockquote>
<p>OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.<br>
The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.<br>
When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.<br>
It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.<br>
That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.<br>
One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.<br>
To get to the point: we should move to two-line rules :-)</p>
</blockquote>

<p>Anatomy of a design error<br>
OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.</p>

<p>The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.</p>

<p>When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.</p>

<p>It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.</p>

<p>That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.</p>

<p>One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.</p>

<p>To get to the point: we should move to two-line rules :-)</p>

<ul>
<li>The problem with one-line rules</li>
</ul>

<blockquote>
<p>OpenSMTPD decides to accept or reject messages based on one-line rules such as:</p>
</blockquote>

<p><code>accept from any for domain poolp.org deliver to mbox</code></p>

<blockquote>
<p>Which can essentially be split into three units:</p>
</blockquote>

<ul>
<li>the decision: accept/reject</li>
<li>the matching: from any for domain <a href="http://poolp.org">poolp.org</a></li>
<li>the (default) action: deliver to mbox</li>
</ul>

<blockquote>
<p>To ensure that we meet the requirements of the transactions, the matching must be performed during the SMTP transaction before we take a decision for the recipient.<br>
Given that the rule is atomic, that it doesn’t have an identifier and that the action is part of it, the two only ways to make sure we can remember the action to take later on at delivery time is to either:</p>
</blockquote>

<ul>
<li>save the action in the envelope, which is what we do today</li>
<li>evaluate the envelope again at delivery</li>
<li>And this this where it gets tricky… both solutions are NOT ok.</li>
</ul>

<blockquote>
<p>The first solution, which we’ve been using for a decade, was to save the action within the envelope and kind of carve it in stone. This works fine… however it comes with the downsides that errors fixed in configuration files can’t be caught up by envelopes, that delivery action must be validated way ahead of time during the SMTP transaction which is much trickier, that the parsing of delivery methods takes place as the _smtpd user rather than the recipient user, and that envelope structures that are passed all over OpenSMTPD carry delivery-time informations, and more, and more, and more. The code becomes more complex in general, less safe in some particular places, and some areas are nightmarish to deal with because they have to deal with completely unrelated code that can’t be dealt with later in the code path.</p>
</blockquote>

<blockquote>
<p>The second solution can’t be done. An envelope may be the result of nested rules, for example an external client, hitting an alias, hitting a user with a .forward file resolving to a user. An envelope on disk may no longer match any rule or it may match a completely different rule If we could ensure that it matched the same rule, evaluating the ruleset may spawn new envelopes which would violate the transaction. Trying to imagine how we could work around this leads to more and more and more RFC violations, incoherent states, duplicate mails, etc…</p>
</blockquote>

<blockquote>
<p>There is simply no way to deal with this with atomic rules, the matching and the action must be two separate units that are evaluated at two different times, failure to do so will necessarily imply that you’re either using our first solution and all its downsides, or that you are currently in a world of pain trying to figure out why everything is burning around you. The minute the action is written to an on-disk envelope, you have failed.</p>
</blockquote>

<blockquote>
<p>A proper ruleset must define a set of matching patterns resolving to an action identifier that is carved in stone, AND a set of named action set that is resolved dynamically at delivery time.</p>
</blockquote>

<ul>
<li>Follow the link above to see the rest of the article</li>
</ul>

<p><hr></p>

<p><strong>Break</strong></p>

<p>##News Roundup<br>
###<a href="http://fortysomethinggeek.blogspot.com/2012/09/legacy-windows-rsync-backup-to-freenas.html">Backing up a legacy Windows machine to a FreeNAS with rsync</a></p>

<blockquote>
<p>I have some old Windows servers (10 years and counting) and I have been using rsync to back them up to my FreeNAS box. It has been working great for me.</p>
</blockquote>

<blockquote>
<p>First of all, I do have my Windows servers backup in virtualized format. However, those are only one-time snapshops that I run once in a while. These are classic ASP IIS web servers that I can easily put up on a new VM. However, many of these legacy servers generate gigabytes of data a day in their repositories. Running VM conversion daily is not ideal.</p>
</blockquote>

<blockquote>
<p>My solution was to use some sort of rsync solution just for the data repos. I’ve tried some applications that didn’t work too well with Samba shares and these old servers have slow I/O. Copying files to external sata or usb drive was not ideal. We’ve moved on from Windows to Linux and do not have any Windows file servers of capacity to provide network backups.  Hence, I decided to use Delta Copy with FreeNAS. So here is a little write up on how to set it up. I have 4 Windows 2000 servers backing up daily with this method.</p>
</blockquote>

<blockquote>
<p>First, download Delta Copy and install it. It is open-source and pretty much free. It is basically a wrapper for cygwin’s rsync. When you install it, it will ask you to install the Server services which allows you to run it as a Rsync server on Windows. You don’t need to do this. Instead, you will be just using the Delta Copy Client application. But before we do that, we will need to configure our Rsync service for our Windows Clients on FreeNAS.</p>
</blockquote>

<ul>
<li>In FreeNAS, go under Services , Select Rsync &gt;  Rsync Modules &gt; Add Rsync Module.</li>
<li>Then fill out the form; giving the module a name and set the path. In my example, I simply called it WIN and linked it to a user called backupuser.</li>
<li>This process is much easier than trying to configure the daemon rsyncd.conf file by hand.</li>
<li>Now, on the Windows Client, start the DeltaCopy Client. You will create a new Profile.</li>
<li>You will need to enter the IP of the Rsync server (FreeNAS) and specify the module name which will be called “Virtual Directory Name.”  When you pull the select menu, the list of Rsync Modules you created earlier in FreeNAS will populate.</li>
<li>You can set authentication. On the server, you can restrict by IP and do other things to lock down your rsync.</li>
<li>Next, you will add folders (and/or files) you want to synchronize.</li>
<li>Once the paths are set up, you can run a sync by right clicking the profile name.</li>
<li>Here, I made a test sync to a home folder of a virtualized windows box. As you can see, I mounted the rsync volume on my mac to see the progress. The rsync worked beautifully. DeltaCopy did what it was told.</li>
<li>Once you get everything working. The next thing to do is set schedules. If you done tasks schedules in Windows before, it is pretty straightforward. DeltaCopy has a link in the application to directly create a new task for you. I set my backups to run nightly and it has been working great.</li>
</ul>

<blockquote>
<p>There you have it. Windows rsync to FreeNAS using DeltaCopy.<br>
The nice thing about FreeNAS is you don’t have to modify /etc/rsyncd.conf files. Everything can be done in the web admin.</p>
</blockquote>

<p><hr></p>

<p><strong>iXsystems</strong></p>

<p>###<a href="https://r3xnation.wordpress.com/2018/04/10/how-to-write-atf-tests-for-netbsd/amp/">How to write ATF tests for NetBSD</a></p>

<blockquote>
<p>I have recently started contributing to the amazing NetBSD foundation. I was thinking of trying out a new OS for a long time. Switching to the NetBSD OS has been a fun change.</p>
</blockquote>

<blockquote>
<p>My first contribution to the NetBSD foundation was adding regression tests for the Address Sanitizer (ASan) in the Automated Testing Framework(ATF) which NetBSD has. I managed to complete it with the help of my really amazing mentor Kamil. This post is gonna be about the ATF framework that NetBSD has and how to you can add multiple tests with ease.</p>
</blockquote>

<ul>
<li>Intro</li>
</ul>

<blockquote>
<p>In ATF tests we will basically be talking about test programs which are a suite of test cases for a specific application or program.</p>
</blockquote>

<ul>
<li>The ATF suite of Commands</li>
</ul>

<blockquote>
<p>There are a variety of commands that the atf suite offers. These include :</p>
</blockquote>

<ul>
<li>
<p>atf-check: The versatile command that is a vital part of the checking process. man page</p>
</li>
<li>
<p>atf-run: Command used to run a test program. man page</p>
</li>
<li>
<p>atf-fail: Report failure of a test case.</p>
</li>
<li>
<p>atf-report: used to pretty print the atf-run. man page</p>
</li>
<li>
<p>atf-set: To set atf test conditions.</p>
</li>
<li>
<p>We will be taking a better look at the syntax and usage later.</p>
</li>
<li>
<p>Let’s start with the Basics</p>
</li>
</ul>

<blockquote>
<p>The ATF testing framework comes preinstalled with a default NetBSD installation. It is used to write tests for various applications and commands in NetBSD.  One can write the Test programs in either the C language or in shell script. In this post I will be dealing with the Bash part.</p>
</blockquote>

<ul>
<li>Follow the link above to see the rest of the article</li>
</ul>

<p><hr></p>

<p>###<a href="http://brian.candler.me/posts/the-importance-of-zfs-blocksize/">The Importance of ZFS Block Size</a></p>

<ul>
<li>Warning! WARNING! Don’t just do things because some random blog says so</li>
</ul>

<blockquote>
<p>One of the important tunables in ZFS is the recordsize (for normal datasets) and volblocksize (for zvols). These default to 128KB and 8KB respectively.<br>
As I understand it, this is the unit of work in ZFS. If you modify one byte in a large file with the default 128KB record size, it causes the whole 128KB to be read in, one byte to be changed, and a new 128KB block to be written out.<br>
As a result, the official recommendation is to use a block size which aligns with the underlying workload: so for example if you are using a database which reads and writes 16KB chunks then you should use a 16KB block size, and if you are running VMs containing an ext4 filesystem, which uses a 4KB block size, you should set a 4KB block size<br>
You can see it has a 16GB total file size, of which 8.5G has been touched and consumes space - that is, it’s a “sparse” file. The used space is also visible by looking at the zfs filesystem which this file resides in<br>
Then I tried to copy the image file whilst maintaining its “sparseness”, that is, only touching the blocks of the zvol which needed to be touched. The original used only 8.42G, but the copy uses 14.6GB - almost the entire 16GB has been touched! What’s gone wrong?<br>
I finally realised that the difference between the zfs filesystem and the zvol is the block size. I recreated the zvol with a 128K block size<br>
That’s better. The disk usage of the zvol is now exactly the same as for the sparse file in the filesystem dataset</p>
</blockquote>

<ul>
<li>It does impact the read speed too. 4K blocks took 5:52, and 128K blocks took 3:20</li>
<li>Part of this is the amount of metadata that has to be read, see the MySQL benchmarks from earlier in the show</li>
<li>And yes, using a larger block size will increase the compression efficiency, since the compressor has more redundant data to optimize.</li>
<li>Some of the savings, and the speedup is because a lot less metadata had to be written</li>
<li>Your zpool layout also plays a big role, if you use 4Kn disks, and RAID-Z2, using a volblocksize of 8k will actually result in a large amount of wasted space because of RAID-Z padding. Although, if you enable compression, your 8k records may compress to only 4k, and then all the numbers change again.</li>
</ul>

<p><hr></p>

<p>###<a href="https://www.fukr.org.uk/?p=184">Using a Raspberry Pi 2 as a Router on a Stick Starring NetBSD</a></p>

<ul>
<li>Sorry we didn’t answer you quickly enough</li>
</ul>

<blockquote>
<p>A few weeks ago I set about upgrading my feeble networking skills by playing around with a Cisco 2970 switch. I set up a couple of VLANs and found the urge to set up a router to route between them. The 2970 isn’t a modern layer 3 switch so what am I to do?</p>
</blockquote>

<blockquote>
<p>Why not make use of the Raspberry Pi 2 that I’ve never used and put it to some good use as a ‘router on a stick’.</p>
</blockquote>

<blockquote>
<p>I could install a Linux based OS as I am quite familiar with it but where’s the fun in that? In my home lab I use SmartOS which by the way is a shit hot hypervisor but as far as I know there aren’t any Illumos distributions for the Raspberry Pi. On the desktop I use Solus OS which is by far the slickest Linux based OS that I’ve had the pleasure to use but Solus’ focus is purely desktop. It’s looking like BSD then!</p>
</blockquote>

<blockquote>
<p>I believe FreeBSD is renowned for it’s top notch networking stack and so I wrote to the BSDNow show on Jupiter Broadcasting for some help but it seems that the FreeBSD chaps from the show are off on a jolly to some BSD conference or another(love the show by the way).</p>
</blockquote>

<blockquote>
<p>It looks like me and the luvverly NetBSD are on a date this Saturday. I’ve always had a secret love for NetBSD. She’s a beautiful, charming and promiscuous lover(looking at the supported architectures) and I just can’t stop going back to her despite her misgivings(ahem, zfs). Just my type of grrrl!</p>
</blockquote>

<blockquote>
<p>Let’s crack on…</p>
</blockquote>

<ul>
<li>Follow the link above to see the rest of the article</li>
</ul>

<p><hr></p>

<p>##Beastie Bits</p>

<ul>
<li><a href="https://www.bsdjobs.com/">BSD Jobs</a></li>
<li><a href="https://lists.freebsd.org/pipermail/freebsd-jobs/2018-May/000944.html">University of Aberdeen’s Internet Transport Research Group is hiring</a></li>
<li><a href="https://youtu.be/YnNpgtjrM9U">VR demo on OpenBSD via OpenHMD with OSVR HDK2</a></li>
<li><a href="https://rachelbythebay.com/w/2018/04/05/bangpatch/">patch runs ed, and ed can run anything (mentions FreeBSD and OpenBSD)</a></li>
<li><a href="https://github.com/jwilm/alacritty/blob/master/README.md">Alacritty (OpenGL-powered terminal emulator) now supports OpenBSD</a></li>
<li><a href="https://undeadly.org/cgi?action=article;sid=20180413065457">MAP_STACK Stack Register Checking Committed to -current</a></li>
<li><a href="https://2018.eurobsdcon.org/call-for-papers/">EuroBSDCon CfP till June 17, 2018</a></li>
</ul>

<p><hr></p>

<p><strong>Tarsnap</strong></p>

<p>##Feedback/Questions</p>

<ul>
<li>NeutronDaemon - <a href="http://dpaste.com/3E0SR5Y#wrap">Tutorial request</a></li>
<li>Kurt - <a href="http://dpaste.com/01CWKM5#wrap">Question about transferability/bi-directionality of ZFS snapshots and send/receive</a></li>
<li>Peter - <a href="http://dpaste.com/3N1BGQF#wrap">A Question and much love for BSD Now</a></li>
<li>Peter - <a href="http://dpaste.com/20R2DTG">netgraph state</a></li>
</ul>

<p><hr></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>

<p><hr></p>]]>
  </itunes:summary>
</item>
<item>
  <title>103: Ubuntu Slaughters Kittens</title>
  <link>https://www.bsdnow.tv/103</link>
  <guid isPermaLink="false">227b2929-398f-4d82-b29d-80981ddcc4d7</guid>
  <pubDate>Wed, 19 Aug 2015 08:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/227b2929-398f-4d82-b29d-80981ddcc4d7.mp3" length="86734228" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Allan's away at BSDCam this week, but we've still got an exciting episode for you. We sat down with Bryan Cantrill, CTO of Joyent, to talk about a wide variety of topics: dtrace, ZFS, pkgsrc, containers and much more. This is easily our longest interview to date!</itunes:subtitle>
  <itunes:duration>2:00:27</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Allan's away at BSDCam this week, but we've still got an exciting episode for you. We sat down with Bryan Cantrill, CTO of Joyent, to talk about a wide variety of topics: dtrace, ZFS, pkgsrc, containers and much more. This is easily our longest interview to date!
This episode was brought to you by
&lt;a href="http://www.ixsystems.com/bsdnow" title="iXsystems"&gt;&lt;img src="/images/1.png" alt="iXsystems - Enterprise Servers and Storage for Open Source"&gt;&lt;/a&gt;&lt;a href="http://www.digitalocean.com/" title="DigitalOcean"&gt;&lt;img src="/images/2.png" alt="DigitalOcean - Simple Cloud Hosting, Built for Developers"&gt;&lt;/a&gt;&lt;a href="http://www.tarsnap.com/bsdnow" title="Tarsnap"&gt;&lt;img src="/images/3.png" alt="Tarsnap - Online Backups for the Truly Paranoid"&gt;&lt;/a&gt;
Interview - Bryan Cantrill - bryan@joyent.com (mailto:bryan@joyent.com) / @bcantrill (https://twitter.com/bcantrill)
BSD and Solaris history, illumos, dtrace, Joyent, pkgsrc, various topics (and rants)
Feedback/Questions
Randy writes in (http://slexy.org/view/s2b6dA7fAr)
Jared writes in (http://slexy.org/view/s2vABMHiok)
Steve writes in (http://slexy.org/view/s2194ADVUL)
*** 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, pcbsd, tutorial, howto, guide, bsd, interview, multipath, tcp, performance, dtrace, zfs, illumos, opensolaris, solaris, joyent, pkgsrc, omnios</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Allan&#39;s away at BSDCam this week, but we&#39;ve still got an exciting episode for you. We sat down with Bryan Cantrill, CTO of Joyent, to talk about a wide variety of topics: dtrace, ZFS, pkgsrc, containers and much more. This is easily our longest interview to date!</p>

<h2>This episode was brought to you by</h2>

<p><a href="http://www.ixsystems.com/bsdnow" title="iXsystems"><img src="/images/1.png" alt="iXsystems - Enterprise Servers and Storage for Open Source" /></a><a href="http://www.digitalocean.com/" title="DigitalOcean"><img src="/images/2.png" alt="DigitalOcean - Simple Cloud Hosting, Built for Developers" /></a><a href="http://www.tarsnap.com/bsdnow" title="Tarsnap"><img src="/images/3.png" alt="Tarsnap - Online Backups for the Truly Paranoid" /></a></p>

<hr>

<h2>Interview - Bryan Cantrill - <a href="mailto:bryan@joyent.com" rel="nofollow">bryan@joyent.com</a> / <a href="https://twitter.com/bcantrill" rel="nofollow">@bcantrill</a></h2>

<p>BSD and Solaris history, illumos, dtrace, Joyent, pkgsrc, various topics (and rants)</p>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="http://slexy.org/view/s2b6dA7fAr" rel="nofollow">Randy writes in</a></li>
<li><a href="http://slexy.org/view/s2vABMHiok" rel="nofollow">Jared writes in</a></li>
<li><a href="http://slexy.org/view/s2194ADVUL" rel="nofollow">Steve writes in</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Allan&#39;s away at BSDCam this week, but we&#39;ve still got an exciting episode for you. We sat down with Bryan Cantrill, CTO of Joyent, to talk about a wide variety of topics: dtrace, ZFS, pkgsrc, containers and much more. This is easily our longest interview to date!</p>

<h2>This episode was brought to you by</h2>

<p><a href="http://www.ixsystems.com/bsdnow" title="iXsystems"><img src="/images/1.png" alt="iXsystems - Enterprise Servers and Storage for Open Source" /></a><a href="http://www.digitalocean.com/" title="DigitalOcean"><img src="/images/2.png" alt="DigitalOcean - Simple Cloud Hosting, Built for Developers" /></a><a href="http://www.tarsnap.com/bsdnow" title="Tarsnap"><img src="/images/3.png" alt="Tarsnap - Online Backups for the Truly Paranoid" /></a></p>

<hr>

<h2>Interview - Bryan Cantrill - <a href="mailto:bryan@joyent.com" rel="nofollow">bryan@joyent.com</a> / <a href="https://twitter.com/bcantrill" rel="nofollow">@bcantrill</a></h2>

<p>BSD and Solaris history, illumos, dtrace, Joyent, pkgsrc, various topics (and rants)</p>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="http://slexy.org/view/s2b6dA7fAr" rel="nofollow">Randy writes in</a></li>
<li><a href="http://slexy.org/view/s2vABMHiok" rel="nofollow">Jared writes in</a></li>
<li><a href="http://slexy.org/view/s2194ADVUL" rel="nofollow">Steve writes in</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
<item>
  <title>65: 8,000,000 Mogofoo-ops</title>
  <link>https://www.bsdnow.tv/65</link>
  <guid isPermaLink="false">c905fcf9-ebc6-4a15-8d34-631dc9742cea</guid>
  <pubDate>Wed, 26 Nov 2014 08:00:00 -0500</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/c905fcf9-ebc6-4a15-8d34-631dc9742cea.mp3" length="66537364" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Coming up on the show this week, we've got an interview with Brendan Gregg of Netflix. He's got a lot to say about performance tuning and benchmarks, and even some pretty funny stories about how people have done them incorrectly. As always, this week's news and answers to your emails, on BSD Now - the place to B.. SD.</itunes:subtitle>
  <itunes:duration>1:32:24</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Coming up on the show this week, we've got an interview with Brendan Gregg of Netflix. He's got a lot to say about performance tuning and benchmarks, and even some pretty funny stories about how people have done them incorrectly. As always, this week's news and answers to your emails, on BSD Now - the place to B.. SD.
This episode was brought to you by
&lt;a href="http://www.ixsystems.com/bsdnow" title="iXsystems"&gt;&lt;img src="/images/iXlogo2.png" alt="iXsystems - Enterprise servers and storage for open source"&gt;&lt;/a&gt;&lt;a href="http://www.tarsnap.com/bsdnow" title="Tarsnap"&gt;&lt;img src="/images/tarsnap1.png" alt="Tarsnap - online backups for the truly paranoid"&gt;&lt;/a&gt;
Headlines
Even more BSD presentation videos (https://www.meetbsd.com/)
More videos from this year's MeetBSD and OpenZFS devsummit were uploaded since last week
Robert Ryan, At the Heart of the Digital Economy (https://www.youtube.com/watch?v=Rc9k1xEepWU)
FreeNAS &amp;amp; ZFS, The Indestructible Duo - Except for the Hard Drives (https://www.youtube.com/watch?v=d1C6DELK7fc)
Richard Yao, libzfs_core and ioctl stabilization (https://www.youtube.com/watch?v=PIC0dwLRBZU)
OpenZFS, Company lightning talks (https://www.youtube.com/watch?v=LmbI7F7XTTc)
OpenZFS, Hackathon Presentation and Awards (https://www.youtube.com/watch?v=gPbVPwScMGk)
Pavel Zakharov, Fast File Cloning (https://www.youtube.com/watch?v=_lGOAZFXra8)
Rick Reed, Half a billion unsuspecting FreeBSD users (https://www.youtube.com/watch?v=TneLO5TdW_M)
Alex Reece &amp;amp; Matt Ahrens, Device Removal (https://www.youtube.com/watch?v=Xs6MsJ9kKKE)
Chris Side, Channel Programs (https://www.youtube.com/watch?v=RMTxyqcomPA)
David Maxwell, The Unix command pipeline (https://www.youtube.com/watch?v=CZHEZHK4jRc)
Be sure to check out the giant list of videos from last week's episode (http://www.bsdnow.tv/episodes/2014_11_19-rump_kernels_revisited) if you haven't seen them already
***
NetBSD on a Cobalt Qube 2 (http://www.jarredcapellman.com/2014/3/9/NetBSD-and-a-Cobalt-Qube-2)
The Cobalt Qube was a very expensive networking appliance around 2000
In 2014, you can apparently get one of these MIPS-based machines for about forty bucks
This blog post details getting NetBSD installed and set up on the rare relic of our networking past
If you're an old-time fan of RISC or MIPS CPUs, this'll be a treat for you
Lots of great pictures of the hardware too
***
OpenBSD vs. AFL (https://www.marc.info/?l=openbsd-cvs&amp;amp;w=2&amp;amp;r=1&amp;amp;s=afl&amp;amp;q=b)
In their never-ending security audit, some OpenBSD developers have been hitting various parts of the tree (https://twitter.com/damienmiller/status/534156368391831552) with a fuzzer
If you're not familiar, fuzzing (https://en.wikipedia.org/wiki/Fuzz_testing) is a semi-automated way to test programs for crashes and potential security problems
The program being subjected to torture gets all sorts of random and invalid input, in the hopes of uncovering overflows and other bugs
American Fuzzy Lop (http://lcamtuf.coredump.cx/afl/), in particular, has provided some interesting results across various open source projects recently
So far, it's fixed some NULL pointer dereferences in OpenSSH, various crashes in tcpdump and mandoc (http://www.bsdnow.tv/episodes/2014_11_12-a_mans_man) and a few other things (https://www.marc.info/?l=openbsd-cvs&amp;amp;m=141646270127039&amp;amp;w=2)
AFL has an impressive list of CVEs (vulnerabilities) that it's helped developers discover and fix
It also made its way into OpenBSD ports, FreeBSD ports and NetBSD's pkgsrc very recently, so you can try it out for yourself
***
GNOME 3 hits the FreeBSD ports tree (https://svnweb.freebsd.org/ports?view=revision&amp;amp;revision=372768)
While you've been able to run GNOME 3 on PC-BSD and OpenBSD for a while, it hasn't actually hit the FreeBSD ports tree.. until now
Now you can play with GNOME 3 and all its goodies (as well as Cinnamon 2.2, which this also brings in) on vanilla FreeBSD
Be sure to check the commit message and /usr/ports/UPDATING (http://www.bsdnow.tv/tutorials/ports) if you're upgrading from GNOME 2
You might also want to go back and listen to our interview (http://www.bsdnow.tv/episodes/2014_02_26-port_authority) with Joe Marcus Clark about GNOME's portability
***
Interview - Brendan Gregg - bgregg@netflix.com (mailto:bgregg@netflix.com) / @brendangregg (https://twitter.com/brendangregg)
Performance tuning, benchmarks, debugging
News Roundup
DragonFlyBSD 4.0 released (http://www.dragonflybsd.org/release40/)
A new major version of DragonFly, 4.0.1, was just recently announced
This version includes support for Haswell GPUs, lots of SMP improvements (including some in PF) and support for up to 256 CPUs
It's also the first release to drop support for i386, so it joins PCBSD in the 64 bit-only club
Check the release notes for all the details, including networking and kernel improvements, as well as some crypto changes
***
Can we talk about FreeBSD vs Linux (https://news.ycombinator.com/item?id=8645443)
Hackernews had a recent thread about discussing Linux vs BSD, and the trolls stayed away for once
Rather than rehashing why one is "better" than the other, it was focused on explaining some of the differences between ecosystems and communities
If you're one of the many people who watch our show just out of curiosity about the BSD world, this might be a good thread to read
Someone in the comments even gave bsdnow.tv a mention as a good resource to learn, thanks guy
***
OpenBSD IPSEC tunnel guide (http://www.packetmischief.ca/openbsd-ipsec-tunnel-guide/)
If you've ever wanted to connect two networks with OpenBSD gateways, this is the article for you
It shows how to set up an IPSEC tunnel between destinations, how to lock it down and how to access all the machines on the other network just like they were on your LAN
The article also explains some of the basics of IPSEC if you're not familiar with all the terminology, so this isn't just for experts
Though the article itself is a few years old, it mostly still applies to the latest stuff today
All the tools used are in the OpenBSD base system, so that's pretty handy too
***
DragonFly starts work on IPFW2 (http://www.dragonflybsd.org/docs/ipfw2/)
DragonFlyBSD, much like FreeBSD, comes with more than one firewall you can use
Now it looks like you're going to have yet another choice, as someone is working on a fork of IPFW (which is actually already in its second version, so it should be "IPFW3")
Not a whole lot is known yet; it's still in heavy development, but there's a brief roadmap (http://www.dragonflybsd.org/docs/ipfw2/#index6h1) page with some planned additions
The guy who's working on this has already agreed to come on the show for an interview, but we're going to give him a chance to get some more work done first
Expect that sometime next year, once he's made some progress
***
Feedback/Questions
Michael writes in (http://slexy.org/view/s2NYgVifXN)
Samael writes in (http://slexy.org/view/s21X02saI3)
Steven writes in (http://slexy.org/view/s21Dj7zImH)
Remy writes in (http://slexy.org/view/s218lXg38C)
Michael writes in (http://slexy.org/view/s20SEuKlaH)
*** 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, pcbsd, tutorial, howto, guide, bsd, interview, dtrace, benchmarks, zfs, solaris, pmstat, performance, high availability, ktrace, strace, iops, freenas, ipfw2, gnome3, afl, fuzzing, american fuzzy lop, ipsec, tunnel</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Coming up on the show this week, we&#39;ve got an interview with Brendan Gregg of Netflix. He&#39;s got a lot to say about performance tuning and benchmarks, and even some pretty funny stories about how people have done them incorrectly. As always, this week&#39;s news and answers to your emails, on BSD Now - the place to B.. SD.</p>

<h2>This episode was brought to you by</h2>

<p><a href="http://www.ixsystems.com/bsdnow" title="iXsystems"><img src="/images/iXlogo2.png" alt="iXsystems - Enterprise servers and storage for open source" /></a><a href="http://www.tarsnap.com/bsdnow" title="Tarsnap"><img src="/images/tarsnap1.png" alt="Tarsnap - online backups for the truly paranoid" /></a></p>

<hr>

<h2>Headlines</h2>

<h3><a href="https://www.meetbsd.com/" rel="nofollow">Even more BSD presentation videos</a></h3>

<ul>
<li>More videos from this year&#39;s MeetBSD and OpenZFS devsummit were uploaded since last week</li>
<li>Robert Ryan, <a href="https://www.youtube.com/watch?v=Rc9k1xEepWU" rel="nofollow">At the Heart of the Digital Economy</a></li>
<li>FreeNAS &amp; ZFS, The Indestructible Duo - <a href="https://www.youtube.com/watch?v=d1C6DELK7fc" rel="nofollow">Except for the Hard Drives</a></li>
<li>Richard Yao, <a href="https://www.youtube.com/watch?v=PIC0dwLRBZU" rel="nofollow">libzfs_core and ioctl stabilization</a></li>
<li>OpenZFS, <a href="https://www.youtube.com/watch?v=LmbI7F7XTTc" rel="nofollow">Company lightning talks</a></li>
<li>OpenZFS, <a href="https://www.youtube.com/watch?v=gPbVPwScMGk" rel="nofollow">Hackathon Presentation and Awards</a></li>
<li>Pavel Zakharov, <a href="https://www.youtube.com/watch?v=_lGOAZFXra8" rel="nofollow">Fast File Cloning</a></li>
<li>Rick Reed, <a href="https://www.youtube.com/watch?v=TneLO5TdW_M" rel="nofollow">Half a billion unsuspecting FreeBSD users</a></li>
<li>Alex Reece &amp; Matt Ahrens, <a href="https://www.youtube.com/watch?v=Xs6MsJ9kKKE" rel="nofollow">Device Removal</a></li>
<li>Chris Side, <a href="https://www.youtube.com/watch?v=RMTxyqcomPA" rel="nofollow">Channel Programs</a></li>
<li>David Maxwell, <a href="https://www.youtube.com/watch?v=CZHEZHK4jRc" rel="nofollow">The Unix command pipeline</a></li>
<li>Be sure to check out the <strong>giant list of videos</strong> from <a href="http://www.bsdnow.tv/episodes/2014_11_19-rump_kernels_revisited" rel="nofollow">last week&#39;s episode</a> if you haven&#39;t seen them already
***</li>
</ul>

<h3><a href="http://www.jarredcapellman.com/2014/3/9/NetBSD-and-a-Cobalt-Qube-2" rel="nofollow">NetBSD on a Cobalt Qube 2</a></h3>

<ul>
<li>The Cobalt Qube was a very expensive networking appliance around 2000</li>
<li>In 2014, you can apparently get one of these MIPS-based machines for about forty bucks</li>
<li>This blog post details getting NetBSD installed and set up on the rare relic of our networking past</li>
<li>If you&#39;re an old-time fan of RISC or MIPS CPUs, this&#39;ll be a treat for you</li>
<li>Lots of great pictures of the hardware too
***</li>
</ul>

<h3><a href="https://www.marc.info/?l=openbsd-cvs&w=2&r=1&s=afl&q=b" rel="nofollow">OpenBSD vs. AFL</a></h3>

<ul>
<li>In their never-ending security audit, some OpenBSD developers have been <a href="https://twitter.com/damienmiller/status/534156368391831552" rel="nofollow">hitting various parts of the tree</a> with a fuzzer</li>
<li>If you&#39;re not familiar, <a href="https://en.wikipedia.org/wiki/Fuzz_testing" rel="nofollow">fuzzing</a> is a semi-automated way to test programs for crashes and potential security problems</li>
<li>The program being subjected to torture gets all sorts of random and invalid input, in the hopes of uncovering overflows and other bugs</li>
<li><a href="http://lcamtuf.coredump.cx/afl/" rel="nofollow">American Fuzzy Lop</a>, in particular, has provided some interesting results across various open source projects recently</li>
<li>So far, it&#39;s fixed some NULL pointer dereferences in OpenSSH, various crashes in tcpdump and <a href="http://www.bsdnow.tv/episodes/2014_11_12-a_mans_man" rel="nofollow">mandoc</a> and <a href="https://www.marc.info/?l=openbsd-cvs&m=141646270127039&w=2" rel="nofollow">a few other things</a></li>
<li>AFL has an impressive list of CVEs (vulnerabilities) that it&#39;s helped developers discover and fix</li>
<li>It also made its way into OpenBSD ports, FreeBSD ports and NetBSD&#39;s pkgsrc very recently, so you can try it out for yourself
***</li>
</ul>

<h3><a href="https://svnweb.freebsd.org/ports?view=revision&revision=372768" rel="nofollow">GNOME 3 hits the FreeBSD ports tree</a></h3>

<ul>
<li>While you&#39;ve been able to run GNOME 3 on PC-BSD and OpenBSD for a while, it hasn&#39;t actually hit the FreeBSD ports tree.. until now</li>
<li>Now you can play with GNOME 3 and all its goodies (as well as Cinnamon 2.2, which this also brings in) on vanilla FreeBSD</li>
<li>Be sure to check the commit message and <a href="http://www.bsdnow.tv/tutorials/ports" rel="nofollow">/usr/ports/UPDATING</a> if you&#39;re upgrading from GNOME 2</li>
<li>You might also want to go back and listen to <a href="http://www.bsdnow.tv/episodes/2014_02_26-port_authority" rel="nofollow">our interview</a> with Joe Marcus Clark about GNOME&#39;s portability
***</li>
</ul>

<h2>Interview - Brendan Gregg - <a href="mailto:bgregg@netflix.com" rel="nofollow">bgregg@netflix.com</a> / <a href="https://twitter.com/brendangregg" rel="nofollow">@brendangregg</a></h2>

<p>Performance tuning, benchmarks, debugging</p>

<hr>

<h2>News Roundup</h2>

<h3><a href="http://www.dragonflybsd.org/release40/" rel="nofollow">DragonFlyBSD 4.0 released</a></h3>

<ul>
<li>A new major version of DragonFly, 4.0.1, was just recently announced</li>
<li>This version includes support for Haswell GPUs, lots of SMP improvements (including some in PF) and support for up to 256 CPUs</li>
<li>It&#39;s also the first release to drop support for i386, so it joins PCBSD in the 64 bit-only club</li>
<li>Check the release notes for all the details, including networking and kernel improvements, as well as some crypto changes
***</li>
</ul>

<h3><a href="https://news.ycombinator.com/item?id=8645443" rel="nofollow">Can we talk about FreeBSD vs Linux</a></h3>

<ul>
<li>Hackernews had a recent thread about discussing Linux vs BSD, and the trolls stayed away for once</li>
<li>Rather than rehashing why one is &quot;better&quot; than the other, it was focused on explaining some of the differences between ecosystems and communities</li>
<li>If you&#39;re one of the many people who watch our show just out of curiosity about the BSD world, this might be a good thread to read</li>
<li>Someone in the comments even gave bsdnow.tv a mention as a good resource to learn, thanks guy
***</li>
</ul>

<h3><a href="http://www.packetmischief.ca/openbsd-ipsec-tunnel-guide/" rel="nofollow">OpenBSD IPSEC tunnel guide</a></h3>

<ul>
<li>If you&#39;ve ever wanted to connect two networks with OpenBSD gateways, this is the article for you</li>
<li>It shows how to set up an IPSEC tunnel between destinations, how to lock it down and how to access all the machines on the other network just like they were on your LAN</li>
<li>The article also explains some of the basics of IPSEC if you&#39;re not familiar with all the terminology, so this isn&#39;t just for experts</li>
<li>Though the article itself is a few years old, it mostly still applies to the latest stuff today</li>
<li>All the tools used are in the OpenBSD base system, so that&#39;s pretty handy too
***</li>
</ul>

<h3><a href="http://www.dragonflybsd.org/docs/ipfw2/" rel="nofollow">DragonFly starts work on IPFW2</a></h3>

<ul>
<li>DragonFlyBSD, much like FreeBSD, comes with more than one firewall you can use</li>
<li>Now it looks like you&#39;re going to have yet another choice, as someone is working on a fork of IPFW (which is actually already in its second version, so it should be &quot;IPFW3&quot;)</li>
<li>Not a whole lot is known yet; it&#39;s still in heavy development, but there&#39;s a brief <a href="http://www.dragonflybsd.org/docs/ipfw2/#index6h1" rel="nofollow">roadmap</a> page with some planned additions</li>
<li>The guy who&#39;s working on this has already agreed to come on the show for an interview, but we&#39;re going to give him a chance to get some more work done first</li>
<li>Expect that sometime next year, once he&#39;s made some progress
***</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="http://slexy.org/view/s2NYgVifXN" rel="nofollow">Michael writes in</a></li>
<li><a href="http://slexy.org/view/s21X02saI3" rel="nofollow">Samael writes in</a></li>
<li><a href="http://slexy.org/view/s21Dj7zImH" rel="nofollow">Steven writes in</a></li>
<li><a href="http://slexy.org/view/s218lXg38C" rel="nofollow">Remy writes in</a></li>
<li><a href="http://slexy.org/view/s20SEuKlaH" rel="nofollow">Michael writes in</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Coming up on the show this week, we&#39;ve got an interview with Brendan Gregg of Netflix. He&#39;s got a lot to say about performance tuning and benchmarks, and even some pretty funny stories about how people have done them incorrectly. As always, this week&#39;s news and answers to your emails, on BSD Now - the place to B.. SD.</p>

<h2>This episode was brought to you by</h2>

<p><a href="http://www.ixsystems.com/bsdnow" title="iXsystems"><img src="/images/iXlogo2.png" alt="iXsystems - Enterprise servers and storage for open source" /></a><a href="http://www.tarsnap.com/bsdnow" title="Tarsnap"><img src="/images/tarsnap1.png" alt="Tarsnap - online backups for the truly paranoid" /></a></p>

<hr>

<h2>Headlines</h2>

<h3><a href="https://www.meetbsd.com/" rel="nofollow">Even more BSD presentation videos</a></h3>

<ul>
<li>More videos from this year&#39;s MeetBSD and OpenZFS devsummit were uploaded since last week</li>
<li>Robert Ryan, <a href="https://www.youtube.com/watch?v=Rc9k1xEepWU" rel="nofollow">At the Heart of the Digital Economy</a></li>
<li>FreeNAS &amp; ZFS, The Indestructible Duo - <a href="https://www.youtube.com/watch?v=d1C6DELK7fc" rel="nofollow">Except for the Hard Drives</a></li>
<li>Richard Yao, <a href="https://www.youtube.com/watch?v=PIC0dwLRBZU" rel="nofollow">libzfs_core and ioctl stabilization</a></li>
<li>OpenZFS, <a href="https://www.youtube.com/watch?v=LmbI7F7XTTc" rel="nofollow">Company lightning talks</a></li>
<li>OpenZFS, <a href="https://www.youtube.com/watch?v=gPbVPwScMGk" rel="nofollow">Hackathon Presentation and Awards</a></li>
<li>Pavel Zakharov, <a href="https://www.youtube.com/watch?v=_lGOAZFXra8" rel="nofollow">Fast File Cloning</a></li>
<li>Rick Reed, <a href="https://www.youtube.com/watch?v=TneLO5TdW_M" rel="nofollow">Half a billion unsuspecting FreeBSD users</a></li>
<li>Alex Reece &amp; Matt Ahrens, <a href="https://www.youtube.com/watch?v=Xs6MsJ9kKKE" rel="nofollow">Device Removal</a></li>
<li>Chris Side, <a href="https://www.youtube.com/watch?v=RMTxyqcomPA" rel="nofollow">Channel Programs</a></li>
<li>David Maxwell, <a href="https://www.youtube.com/watch?v=CZHEZHK4jRc" rel="nofollow">The Unix command pipeline</a></li>
<li>Be sure to check out the <strong>giant list of videos</strong> from <a href="http://www.bsdnow.tv/episodes/2014_11_19-rump_kernels_revisited" rel="nofollow">last week&#39;s episode</a> if you haven&#39;t seen them already
***</li>
</ul>

<h3><a href="http://www.jarredcapellman.com/2014/3/9/NetBSD-and-a-Cobalt-Qube-2" rel="nofollow">NetBSD on a Cobalt Qube 2</a></h3>

<ul>
<li>The Cobalt Qube was a very expensive networking appliance around 2000</li>
<li>In 2014, you can apparently get one of these MIPS-based machines for about forty bucks</li>
<li>This blog post details getting NetBSD installed and set up on the rare relic of our networking past</li>
<li>If you&#39;re an old-time fan of RISC or MIPS CPUs, this&#39;ll be a treat for you</li>
<li>Lots of great pictures of the hardware too
***</li>
</ul>

<h3><a href="https://www.marc.info/?l=openbsd-cvs&w=2&r=1&s=afl&q=b" rel="nofollow">OpenBSD vs. AFL</a></h3>

<ul>
<li>In their never-ending security audit, some OpenBSD developers have been <a href="https://twitter.com/damienmiller/status/534156368391831552" rel="nofollow">hitting various parts of the tree</a> with a fuzzer</li>
<li>If you&#39;re not familiar, <a href="https://en.wikipedia.org/wiki/Fuzz_testing" rel="nofollow">fuzzing</a> is a semi-automated way to test programs for crashes and potential security problems</li>
<li>The program being subjected to torture gets all sorts of random and invalid input, in the hopes of uncovering overflows and other bugs</li>
<li><a href="http://lcamtuf.coredump.cx/afl/" rel="nofollow">American Fuzzy Lop</a>, in particular, has provided some interesting results across various open source projects recently</li>
<li>So far, it&#39;s fixed some NULL pointer dereferences in OpenSSH, various crashes in tcpdump and <a href="http://www.bsdnow.tv/episodes/2014_11_12-a_mans_man" rel="nofollow">mandoc</a> and <a href="https://www.marc.info/?l=openbsd-cvs&m=141646270127039&w=2" rel="nofollow">a few other things</a></li>
<li>AFL has an impressive list of CVEs (vulnerabilities) that it&#39;s helped developers discover and fix</li>
<li>It also made its way into OpenBSD ports, FreeBSD ports and NetBSD&#39;s pkgsrc very recently, so you can try it out for yourself
***</li>
</ul>

<h3><a href="https://svnweb.freebsd.org/ports?view=revision&revision=372768" rel="nofollow">GNOME 3 hits the FreeBSD ports tree</a></h3>

<ul>
<li>While you&#39;ve been able to run GNOME 3 on PC-BSD and OpenBSD for a while, it hasn&#39;t actually hit the FreeBSD ports tree.. until now</li>
<li>Now you can play with GNOME 3 and all its goodies (as well as Cinnamon 2.2, which this also brings in) on vanilla FreeBSD</li>
<li>Be sure to check the commit message and <a href="http://www.bsdnow.tv/tutorials/ports" rel="nofollow">/usr/ports/UPDATING</a> if you&#39;re upgrading from GNOME 2</li>
<li>You might also want to go back and listen to <a href="http://www.bsdnow.tv/episodes/2014_02_26-port_authority" rel="nofollow">our interview</a> with Joe Marcus Clark about GNOME&#39;s portability
***</li>
</ul>

<h2>Interview - Brendan Gregg - <a href="mailto:bgregg@netflix.com" rel="nofollow">bgregg@netflix.com</a> / <a href="https://twitter.com/brendangregg" rel="nofollow">@brendangregg</a></h2>

<p>Performance tuning, benchmarks, debugging</p>

<hr>

<h2>News Roundup</h2>

<h3><a href="http://www.dragonflybsd.org/release40/" rel="nofollow">DragonFlyBSD 4.0 released</a></h3>

<ul>
<li>A new major version of DragonFly, 4.0.1, was just recently announced</li>
<li>This version includes support for Haswell GPUs, lots of SMP improvements (including some in PF) and support for up to 256 CPUs</li>
<li>It&#39;s also the first release to drop support for i386, so it joins PCBSD in the 64 bit-only club</li>
<li>Check the release notes for all the details, including networking and kernel improvements, as well as some crypto changes
***</li>
</ul>

<h3><a href="https://news.ycombinator.com/item?id=8645443" rel="nofollow">Can we talk about FreeBSD vs Linux</a></h3>

<ul>
<li>Hackernews had a recent thread about discussing Linux vs BSD, and the trolls stayed away for once</li>
<li>Rather than rehashing why one is &quot;better&quot; than the other, it was focused on explaining some of the differences between ecosystems and communities</li>
<li>If you&#39;re one of the many people who watch our show just out of curiosity about the BSD world, this might be a good thread to read</li>
<li>Someone in the comments even gave bsdnow.tv a mention as a good resource to learn, thanks guy
***</li>
</ul>

<h3><a href="http://www.packetmischief.ca/openbsd-ipsec-tunnel-guide/" rel="nofollow">OpenBSD IPSEC tunnel guide</a></h3>

<ul>
<li>If you&#39;ve ever wanted to connect two networks with OpenBSD gateways, this is the article for you</li>
<li>It shows how to set up an IPSEC tunnel between destinations, how to lock it down and how to access all the machines on the other network just like they were on your LAN</li>
<li>The article also explains some of the basics of IPSEC if you&#39;re not familiar with all the terminology, so this isn&#39;t just for experts</li>
<li>Though the article itself is a few years old, it mostly still applies to the latest stuff today</li>
<li>All the tools used are in the OpenBSD base system, so that&#39;s pretty handy too
***</li>
</ul>

<h3><a href="http://www.dragonflybsd.org/docs/ipfw2/" rel="nofollow">DragonFly starts work on IPFW2</a></h3>

<ul>
<li>DragonFlyBSD, much like FreeBSD, comes with more than one firewall you can use</li>
<li>Now it looks like you&#39;re going to have yet another choice, as someone is working on a fork of IPFW (which is actually already in its second version, so it should be &quot;IPFW3&quot;)</li>
<li>Not a whole lot is known yet; it&#39;s still in heavy development, but there&#39;s a brief <a href="http://www.dragonflybsd.org/docs/ipfw2/#index6h1" rel="nofollow">roadmap</a> page with some planned additions</li>
<li>The guy who&#39;s working on this has already agreed to come on the show for an interview, but we&#39;re going to give him a chance to get some more work done first</li>
<li>Expect that sometime next year, once he&#39;s made some progress
***</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="http://slexy.org/view/s2NYgVifXN" rel="nofollow">Michael writes in</a></li>
<li><a href="http://slexy.org/view/s21X02saI3" rel="nofollow">Samael writes in</a></li>
<li><a href="http://slexy.org/view/s21Dj7zImH" rel="nofollow">Steven writes in</a></li>
<li><a href="http://slexy.org/view/s218lXg38C" rel="nofollow">Remy writes in</a></li>
<li><a href="http://slexy.org/view/s20SEuKlaH" rel="nofollow">Michael writes in</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
  </channel>
</rss>
