Jupiter Broadcasting

Linux Takes The Fastpath | BSD Now 242

Headlines

TrueOS STABLE 18.03 Release

The TrueOS team is pleased to announce the availability of a new STABLE release of the TrueOS project (version 18.03). This is a special release due to the security issues impacting the computing world since the beginning of 2018. In particular, mitigating the “Meltdown” and “Spectre” system exploits make it necessary to update the entire package ecosystem for TrueOS. This release does not replace the scheduled June STABLE update, but provides the necessary and expected security updates for the STABLE release branch of TrueOS, even though this is part-way through our normal release cycle.

Most systems will need microcode updates for additional Spectre mitigations. The microcode updates are not enabled by default. This work is considered experimental because it is in active development by the upstream vendors. If desired, the microcode updates are available with the new devcpu-data package, which is available in the Appcafe. Install this package and enable the new microcode_update service to apply the latest runtime code when booting the system.


F-Stack

F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API. https://www.f-stack.org

In order to deal with the increasingly severe DDoS attacks, authorized DNS server of Tencent Cloud DNSPod switched from Gigabit Ethernet to 10-Gigabit at the end of 2012. We faced several options, one is to continue to use the original model another is to use kernel bypass technology. After several rounds of investigation, we finally chose to develop our next generation of DNS server based on DPDK. The reason is DPDK provides ultra-high performance and can be seamlessly extended to 40G, or even 100G NIC in the future.

After several months of development and testing, DKDNS, high-performance DNS server based on DPDK officially released in October 2013. It’s capable of achieving up to 11 million QPS with a single 10GE port and 18.2 million QPS with two 10GE ports. And then we developed a user-space TCP/IP stack called F-Stack that can process 0.6 million RPS with a single 10GE port.

With the fast growth of Tencent Cloud, more and more services need higher network access performance. Meanwhile, F-Stack was continuous improving driven by the business growth, and ultimately developed into a general network access framework. But this TCP/IP stack couldn’t meet the needs of these services while continue to develop and maintain a complete network stack will cost high, we’ve tried several plans and finally determined to port FreeBSD(11.0 stable) TCP/IP stack into F-Stack. Thus, we can reduce the cost of maintenance and follow up the improvement from community quickly.Thanks to libplebnet and libuinet, this work becomes a lot easier.

With the rapid development of all kinds of application, in order to help different APPs quick and easily use F-Stack, F-Stack has integrated Nginx, Redis and other commonly used APPs, and a micro thread framework, and provides a standard Epoll/Kqueue interface.

Currently, besides authorized DNS server of DNSPod, there are various products in Tencent Cloud has used the F-Stack, such as HttpDNS (D+), COS access module, CDN access module, etc..


iXsystems

Leadership Is The Secret To An Open Source Business Model


News Roundup

Introduction to Jails and Jail Networking on FreeBSD

Jails basically partition a FreeBSD system into various isolated sub-systems called jails. The syscall and userspace tools first appeared in FreeBSD 4.0 (~ March 2000) with subsequent releases expanding functionality and improving existing features as well as usability.
+ For Linux users, jails are similar to LXC, used for resource/process isolation. Unlike LXC however, jails are a first-class concept and are well integrated into the base system. Essentially however, both offer a chroot-with-extra-separation feeling.
Setting up a jail is a fairly simple process, which can essentially be split into three steps:
+ Place the stuff you want to run and the stuff it needs to run somewhere on your filesystem.
+ Add some basic configuration for the jail in jail.conf.
+ Fire up the jail.
To confirm that the jail started successfully we can use the jls utility:
We can now enter the jailed environment by using jexec, which will by default execute a root shell inside the named jail
A jail can only see and use addresses that have been passed down to it by the parent system. This creates a slight problem with the loopback address: The host would probably like to keep that address to itself and not share it with any jail.
Because of this, the loopback-address inside a jail is emulated by the system:
+ 127.0.0.1 is an alias for the first IPv4-address assigned to the jail.
+ ::1 is an alias for the first IPv6-address assigned to the jail.
While this looks simple enough and usually works just fine[tm], it is also a source of many problems. Just imagine if your jail has only one single global IPv4 assigned to it. A daemon binding its (possibly unsecured) control port to the loopback-address would then unwillingly be exposed to the rest of the internet, which is hardly ever a good idea.
+ So, create an extra loopback adapter, and make the first IP in each jail a private loopback address
+ The tutorial goes on to cover making multiple jails share a single public IP address using NAT
+ It also covers more advanced concepts like ‘thin’ jails, to save some disk space if you are going to create a large number of jails, and how to upgrade them after the fact
+ Finally, it covers the integration with a lot of common tools, like identifying and filter jailed processes using top and ps, or using the package managers support for jails to install packages in a jail from the outside.


**DigitalOcean**

SmartOS release-20180315

“`

Hello All,

The latest bi-weekly “release” branch build of SmartOS is up:

curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest.iso
curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest-USB.img.bz2
curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest.vmwarevm.tar.bz2

A generated changelog is here:

https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos.html#20180329T002644Z

The full build bits directory, for those interested, is here in Manta:

/Joyent_Dev/public/SmartOS/20180329T002644Z

Highlights

Firewall rules created with fwadm(1M) can now use the PRIORITY keyword to
specify a higher precedence for a rule.

This release has includes mitigation of the Intel Meltdown vulnerability in the
form of kpti (kernel page table isolation) with PCID (process context
identifier) support

This release also includes experimental support for bhyve branded zones.

General Info

Every second Thursday we roll a “release-YYYYMMDD” release branch and
builds for SmartOS (and Triton DataCenter and Manta, as well).

Cheers,
Josh Wilsdon, on behalf of the SmartOS developers
https://smartos.org
“`


FreeBSD Foundation March 2018 Update


Beastie Bits


Tarsnap

Feedback/Questions