Archive

Category Archives for "Networking"

Pin, Unpin, and why Rust needs them

Pin, Unpin, and why Rust needs them
Pin, Unpin, and why Rust needs them

Using async Rust libraries is usually easy. It's just like using normal Rust code, with a little async or .await here and there. But writing your own async libraries can be hard. The first time I tried this, I got really confused by arcane, esoteric syntax like T: ?Unpin and Pin<&mut Self>. I had never seen these types before, and I didn't understand what they were doing. Now that I understand them, I've written the explainer I wish I could have read back then. In this post, we're gonna learn

  • What Futures are
  • What self-referential types are
  • Why they were unsafe
  • How Pin/Unpin made them safe
  • Using Pin/Unpin to write tricky nested futures

What are Futures?

A few years ago, I needed to write some code which would take some async function, run it and collect some metrics about it, e.g. how long it took to resolve. I wanted to write a type TimedWrapper that would work like this:

// Some async function, e.g. polling a URL with [https://docs.rs/reqwest]
// Remember, Rust functions do nothing until you .await them, so this isn't
// actually making a HTTP request yet.
let async_fn = reqwest::get("http://adamchalmers.com");

// Wrap the  Continue reading

A closer look at two newly announced Intel chips

Our initial look at Intel’s Architecture Day focused on the new Xeons and IPU processors. Now we’ll get into the fine details, as well as look at other upcoming technologies.Sapphire Rapids Intel’s upcoming next-generation Xeon is codenamed Sapphire Rapids and promises a radical new design and gains in performance. One of its key differentiators is its modular SoC design. The chip has multiple tiles that appears to the system as a monolithic CPU and all of the tiles communicate with each other, so every thread has full access to all resources on all tiles.To read this article in full, please click here

A closer look at two newly announced Intel chips

Our initial look at Intel’s Architecture Day focused on the new Xeons and IPU processors. Now we’ll get into the fine details, as well as look at other upcoming technologies.Sapphire Rapids Intel’s upcoming next-generation Xeon is codenamed Sapphire Rapids and promises a radical new design and gains in performance. One of its key differentiators is its modular SoC design. The chip has multiple tiles that appears to the system as a monolithic CPU and all of the tiles communicate with each other, so every thread has full access to all resources on all tiles.To read this article in full, please click here

Tech Bytes: DDOS and State Exhaustion With NETSCOUT – Updated

Its not widely that DDOS attacks also cause damage from state exhaustion in devices. A recent study why Netscout surprised me that many engineers are aware of overload bandwidth or routing devices but give less considerations to state exhaustion in application aware devices. 

The post Tech Bytes: DDOS and State Exhaustion With NETSCOUT – Updated appeared first on Packet Pushers.

How IT Pros Learn Online In 2021

I surveyed 53 IT professionals about online IT training in August 2021. Most of the folks I interact with are networking & cloud infrastructure professionals, and the answers reflect that. 53 responses isn’t enough to draw hard and fast conclusions from, but I still believe there are interesting trends & individual comments worth thinking about.

By the way, if you’d like to submit your own responses, I left the survey open. I told Google Forms to not collect email addresses, so your responses are anonymous.

1. Which online learning sites do you have a subscription to or have bought an IT course from?

  1. Udemy – 32
  2. Pluralsight – 24
  3. INE – 19
  4. A Cloud Guru – 16
  5. CBT Nuggets – 12
  6. Coursera – 9
  7. O’Reilly / Safari – 7
  8. ITProTV – 4
  9. LinkedIn Learning / Lynda – 3
  10. Juniper Learning Portal – 2
  11. Pearson – 2
  12. Skillshare – 2
  13. Adrian Cantrill – 1
  14. Cisco Learning Network – 1
  15. Global Knowledge – 1
  16. Ivan Pepelnjak – 1
  17. KBITS – 1
  18. Kirk Byers – 1
  19. Routehub – 1
  20. Skillsoft – 1
  21. TalkPython – 1
  22. Teachable – 1
  23. YouTube – 1

I believe Udemy is so popular because it’s a great platform to Continue reading

Hedge 97: Low Context DevOps

Language is deeply contextual—one of my favorite sayings from the theological world is if you take the text out of its context, you are just left with the con. What does context have to do with development and operations, though? Can there be low and high context situations in the daily life of building and running systems? Thomas Limoncelli joins Tom Ammon and Russ White to discuss the idea of low context devops, and the larger issue of context in managing projects and teams, on this episode of the Hedge.

download

Linux turns 30

Something happened back in 1991 that dramatically changed the future of computing. Linus Torvalds, a Finnish-American software engineer, released the Linux kernel and the second version of the GNU General Public License (GPLv2). A good portion of the technology we use today would not be what it is had this not happened.It all started on August 25th of that year when Torvalds announced in a usenet post that he was working on a free OS and that it would be ready within a few months. He also said it "won't be big and professional like gnu," but that wasn't exactly how things turned out!The GPL The beauty of the Gnu GPL was that, instead of restricting what users can do with the Linux kernel, it maximized their rights. Richard Stallman, GNU founder, referred to these rights as the "four freedoms." They include the freedom to run, copy, study/improve and distribute. This was akin to turning the function of a license inside out.To read this article in full, please click here

Linux turns 30

Something happened back in 1991 that dramatically changed the future of computing. Linus Torvalds, a Finnish-American software engineer, released the Linux kernel and the second version of the GNU General Public License (GPLv2). A good portion of the technology we use today would not be what it is had this not happened.It all started on August 25th of that year when Torvalds announced in a usenet post that he was working on a free OS and that it would be ready within a few months. He also said it "won't be big and professional like gnu," but that wasn't exactly how things turned out!The GPL The beauty of the Gnu GPL was that, instead of restricting what users can do with the Linux kernel, it maximized their rights. Richard Stallman, GNU founder, referred to these rights as the "four freedoms." They include the freedom to run, copy, study/improve and distribute. This was akin to turning the function of a license inside out.To read this article in full, please click here

MikroTik – RouterOSv7 first look – feedback on routing filters

Overview

Routing filters have been a hot topic lately in the world of RouterOSv7. The first implementation of routing filters in ROSv7 was difficult to work with and documented in the two articles below:

MikroTik – RouterOSv7 first look – Dynamic routing with IPv6 and OSPFv3/BGP

MikroTik RouterOS – v7.0.3 stable (chateau) and status of general release


MikroTik then made some changes and opened up discussion to get feedback. I did a lot of work and testing using ROS 7.1beta7 which never made it to public release and was close to publishing the results when 7.1rc1 came out so this post will use that version.

https://forum.mikrotik.com/viewtopic.php?f=1&t=175201#p867750


RouterOSv7.1rc1 syntax example

Here is an example of the latest syntax in ROSv7.1rc1

CLI

### MikroTik RouterOS 7.1rc1 ###

/routing filter rule
add chain=dead.beef.101 rule="if (dst==200:dead:beef:101::/64) {accept}"
add chain=dead.beef.102 rule="if (dst==200:dead:beef:102::/64) {accept}"
add chain=dead.beef.agg rule="if (dst in 200:dead:beef::/48) {accept}"
add chain=bgp-out-v6 rule="if (chain dead.beef.101) {set bgp-local-pref 300; accept}"
add chain=bgp-out-v6 rule="if (chain dead.beef.102) {accept}"
add chain=bgp-out-v6 rule="if (chain dead.beef.agg && dst-len<128) {set bgp-local-pref 150; accept}"

Winbox


And the corresponding routes received Continue reading

Introducing logs from the dashboard for Cloudflare Workers

Introducing logs from the dashboard for Cloudflare Workers
Introducing logs from the dashboard for Cloudflare Workers

If you’re writing code: what can go wrong, will go wrong.

Many developers know the feeling: “It worked in the local testing suite, it worked in our staging environment, but… it’s broken in production?” Testing can reduce mistakes and debugging can help find them, but logs give us the tools to understand and improve what we are creating.

if (this === undefined) {
  console.log("there’s no way… right?") // Narrator: there was.
}

While logging can help you understand when the seemingly impossible is actually possible, it’s something that no developer really wants to set up or maintain on their own. That’s why we’re excited to launch a new addition to the Cloudflare Workers platform: logs and exceptions from the dashboard.

Starting today, you can view and filter the console.log output and exceptions from a Worker… at no additional cost with no configuration needed!

View logs, just a click away

When you view a Worker in the dashboard, you’ll now see a “Logs” tab which you can click on to view a detailed stream of logs and exceptions. Here’s what it looks like in action:

Each log entry contains an event with a list of logs, exceptions, Continue reading

The Next Phase of Cloud-Grade Routing

In the past decade, the emergence of cloud networks has blurred the line between switching and routing versus traditional routers. Today the industry is at an inflection point, where the adoption of cloud principles for routing intersects the rapidly expanding capabilities of the merchant silicon feature set and scale, creating a disruption of legacy routing architectures.