Over the past year, I’ve spent a lot of time talking with engineering and platform teams about how they’re deploying AI agents. The conversations are changing. Six months ago, most were focused on getting agents into production. Now, increasingly, the question is how to secure them once they’re there.
It’s a familiar transition. We’ve seen it with containers, Kubernetes, microservices, and cloud infrastructure. New technology gets adopted, architectures evolve, and security has to catch up with how systems actually operate.
AI agents introduce some interesting challenges, though. Unlike traditional applications, agents make decisions about what to do next. They interact with models, invoke tools, communicate with other agents, access data, and execute code. A single user request can trigger a sequence of actions across multiple systems, sometimes with very little human involvement.
That changes the security problem.
An agent can be properly authenticated, operate within its assigned permissions, and still be led into doing something nobody intended.
It’s one of the reasons I believe securing agentic AI requires a defense-in-depth architecture, with controls operating at both the application and runtime layers.
AI gateways have become a natural place to introduce security Continue reading
We’re pleased to announce that Calico is supported on Red Hat OpenShift 5, the latest version of the industry’s leading hybrid cloud application platform powered by Kubernetes. Tested and validated to run on Red Hat OpenShift 5, Calico delivers high-performance networking and zero-trust network policy for containers, virtual machines on Red Hat OpenShift Virtualization, and AI workloads, with one consistent policy model across the cluster.
Calico has been a supported networking option for Red Hat OpenShift since OpenShift 4, and the Tigera Operator is listed in the Red Hat Ecosystem Catalog. Red Hat OpenShift customers can install Calico through the Tigera Operator on a new cluster, or move existing clusters from OVN-Kubernetes to Calico using Tigera’s documented migration path.
The Juniper Protect-RE Filter Generator on the Network Tools page picked up a round of additions. The trigger was simple: we compared it against the protect_re filter a Mist-managed EX4400 actually carries, and found a handful of things a real-world filter needs that the generator didn’t cover yet.
tcp-established, so a fresh inbound SYN doesn’t match.tcp-established), with the server list pulled live from system tacplus-server using the same apply-path trick the BGP, NTP and RADIUS terms use. It’s TCP-only on purpose: TACACS+ doesn’t run over UDP, and tcp-established can’t match UDP anyway, so a combined TCP/UDP term can only ever match TCP. Continue readingCloudflare is distributing the first $301,300 of the Vite Ecosystem Fund to 44 projects and maintainers across the Vite ecosystem.
When VoidZero joined Cloudflare, we committed $1 million to strengthen the open source ecosystem around Vite. This round is just the start.
Sponsoring open source has always mattered, but now AI has made funding urgent.
AI has made open source more valuable while triggering more maintainer burnout. Previously, contributing to a project through either an issue or pull request meant you cared about it. In return, maintainers would review and provide feedback. AI changed the social contract of open source. Anyone can now create and submit AI-authored pull requests.
The most visible result is the influx of pull requests. As the number of PRs has gone up, the number of maintainers reviewing them has stayed constant. So each maintainer’s workload has grown.
During reviews, maintainers often find themselves speaking with an agent and not a person like they used to. If that’s the case, then why not cut out the middleman? Maintainers now have their own agents they can prompt to produce better results since they have more knowledge of the codebase.
AI has raised Continue reading
I was reading the nice BGP Multi-Homed with Two ISPs and Two Routers scenario by Suresh Vinasiththamby - Packetswitch and thought wouldn’t it be nice if he were using netlab to build the lab, as that would give you the opportunity to build the same lab with zero hassle using non-Cisco devices. Guess what – Suresh already did just that. I was so glad to see someone using netlab in just the way I imagined it to be used.
When a distributed training job
is launched, the cluster scheduler or orchestration layer (such as SLURM or
Kubernetes) allocates the required compute nodes and provides job-specific
information to the job launcher. This information includes the JobID, the
allocated nodes, and the resources assigned to the job.
The launcher provides the
configuration required by the Torchrun agents, such as the number of nodes, the
number of local workers, and the rendezvous configuration. Torchrun uses this
configuration and the rendezvous mechanism to establish the worker-group
membership and determine the distributed identities of the worker processes. These
include the global rank (RANK), local rank (LOCAL_RANK), total number of
workers (WORLD_SIZE), and number of local workers (LOCAL_WORLD_SIZE).
In a typical multi-node PyTorch
deployment, one Torchrun agent runs on each allocated node. The agent is a
host-side process responsible for launching and managing the local worker
group. It starts the configured number of worker processes, typically one per
GPU. Each worker is an independent operating-system process that executes the
training application and uses its assigned GPU for computation.
The Torchrun agent monitors the worker processes and manages their lifecycle, including restarting the worker group if a failure occurs and Continue reading

This post is part of an ongoing series on Ansible, and you can find all the other posts in the series here.
In the previous part, we backed up the config of our Junos routers in two different ways. First, we used the junos_config module, which saved the config as set commands. Then, to get a copy in the curly bracket format, we ran show configuration with the junos_command module and saved the output to a file. In this section, I'll show you a more direct way to do it, using a module called juniper.device.config, which can retrieve the config and save it in whichever format we like.
juniper.device.config is built on Juniper's PyEZ library, and it needs two extra Python packages, on top of the ones we installed in the previous part.
uv add junos-eznc jxmlease
The module doesn't create the directory for the backups, so let's create it first.
mkdir -p backups_native
Next, create a new playbook called backup_native.yml.
Continue reading

This post is part of an ongoing series on Ansible, and you can find all the other posts in the series here.
So far in this Ansible series, we've worked with Cisco and Arista devices. In this part, we're adding a third vendor, Juniper. We'll build a small lab with two Juniper routers, and use Ansible to configure their interfaces, IP addresses, and OSPF from scratch.
Juniper works quite differently from Cisco and Arista in a few areas, and that's really what this part is about. Instead of connecting over SSH and sending CLI commands, Ansible talks to Juniper devices using NETCONF. Every change goes into a candidate config and only takes effect once it's committed. And thanks to the way Junos compares configs, Ansible can show us exactly what it's going to change, in the same format as show | compare on the CLI.
This part is part of a series on Ansible for network engineers, so I won't go into every detail of things we've already covered, such as inventory, host_vars, loops, and check mode. If any of those are new to you, I recommend going through the earlier parts first. The OSPF example in this Continue reading
Pasar tradisional selama ini menjadi pusat ekonomi rakyat yang sulit tergantikan. Di sana, interaksi sosial, tawar-menawar, dan perputaran uang berlangsung setiap hari. Namun, di tengah perubahan pola belanja masyarakat, pasar tradisional menghadapi tantangan baru: persaingan dengan minimarket, marketplace daring, dan kebiasaan konsumen yang semakin mengutamakan kecepatan.
Untuk menjawab tantangan itu, banyak daerah mulai melirik revitalisasi pasar tradisional melalui sistem digital lokal. Tujuannya bukan mengubah pasar menjadi serba modern sampai kehilangan jati dirinya, melainkan membantu pedagang beradaptasi dengan kebiasaan belanja masa kini. Digitalisasi bisa menjadi jembatan antara tradisi dan kebutuhan zaman.
Pasar tradisional punya kekuatan besar: kedekatan dengan warga, harga yang fleksibel, dan ragam produk segar. Tetapi, kekuatan itu tidak cukup jika fasilitas kurang nyaman, kebersihan kurang terjaga, atau layanan pembelian masih sangat bergantung pada cara lama. Konsumen masa kini ingin transaksi cepat, informasi harga yang jelas, dan kemudahan pembayaran.
Di banyak kota, pasar yang tidak beradaptasi mulai ditinggalkan pembeli muda. Mereka lebih memilih tempat yang rapi, punya akses digital, dan menyediakan pembayaran non-tunai. Jika tidak ada perubahan, pasar tradisional berisiko kalah bersaing meski sebenarnya memiliki potensi besar untuk tumbuh.
Revitalisasi digital hadir untuk menjawab masalah itu secara bertahap. Dengan pendekatan yang tepat, pasar bisa tetap Continue reading
Social media services have largely become a marketplace designed to capture and hold your attention, rather than places where people share information and talk to one another. A large part of this is because they are hosted on large-scale platforms that must be paid for by large, centralized companies. NOSTR is taking a different direction, creating a protocol and system that can be hosted by anyone, anywhere, to build a social network. Wouter Constant joins Tom and Russ to explain what NOSTR is, and how it’s different.
You can learn more about NOSTR here.
download
The highest priorities for the transition to post-quantum cryptography are the basic building blocks of authenticated key-agreement protocols such as TLS. Without these building blocks in place, secure communication on the Internet will not be possible once cryptographically relevant quantum computers come online. However, today we rely on quantum-vulnerable cryptography for much more than TLS.
Privacy Pass is a protocol used by site operators like Cloudflare to help protect applications from abuse. One way we do this is by rate limiting individual clients so that no one client consumes too many of the site's resources. Normally this involves some combination of friction or loss of privacy for users: CAPTCHAs or other challenges to moderate traffic, along with accounts and fingerprinting to identify traffic.Privacy Pass was designed to avoid this tradeoff between friction and privacy. The basic idea is that a client gets issued a number of tokens, which they can redeem in exchange for access to the site. Crucially, each token is unlinkable to the client it was issued to, ensuring the client can use the site as they always had without sacrificing privacy.
With 10 years of deployment experience under our belts — using Privacy Pass for applications Continue reading
To optimize the performance metrics of this blog, I relied on Amazon CloudFront to serve the assets,1 and Route 53 for the geo-aware DNS2 to direct readers to the closest host serving the content. But Route 53 is expensive: US$0.50 per zone per month, US$0.70 per million geolocation queries, and US$0.75 per healthcheck per month, plus US$1 per month for the KMS key needed to sign zones with DNSSEC. When I discovered that Bunny DNS is almost free for up to 500 domains and features scriptable answers, I made the jump! Plus, it's a European company based in Slovenia.
Bunny.net started as BunnyCDN in 2015. They added IPv6
support in 2017. Switching was uneventful. I don't bring a custom domain: I
serve the content from the b-cdn.net domain. As I depend on content
negotiation to serve AVIF and WebP images, I configure the CDN to cache
each image format separately.
I disable logging to avoid collecting personal information. While the bunny.net GDPR page promises they anonymize data, it is unclear what CloudFront keeps Continue reading
Noction Flow Analyzer v26.04 is now available, introducing ClickHouse sharding and replication, host resource monitoring, and application upgrades directly from the web interface. This release focuses on expanding database deployment options, simplifying system administration, and providing more control over traffic analysis and monitoring configurations.
NFA v26.04 introduces support for sharding and replication, allowing flow and BGP data to be distributed across multiple database nodes rather than relying on a single database instance.
Sharding distributes data across multiple ClickHouse servers, providing a way to scale storage and query workloads as flow data volumes increase. Replication maintains copies of data across nodes, supporting database redundancy. Together, these capabilities provide additional deployment options for networks processing and retaining large volumes of flow data. For more details, check out our blog post or explore the documentation.
NFA now includes host resource utilization monitoring, providing visibility into the resource consumption of the server running the application. Administrators can monitor server resource usage alongside NFA operations, making it easier to identify resource constraints and assess infrastructure requirements. This provides additional context when investigating system performance or planning capacity for growing flow data volumes.
Noction Flow Analyzer (NFA) uses ClickHouse to store and analyze traffic information collected from NetFlow, sFlow, IPFIX, J-Flow, and NetStream exporters. In a typical installation, the ClickHouse database runs on the same server as NFA. This arrangement keeps deployment and administration relatively simple, and it works well when the server has enough resources for incoming data, historical storage, and analytical queries.
Larger monitoring environments can have different requirements. A growing number of exporters, longer retention periods, or more demanding reports may put increasing pressure on the database server. Some operators also want a second copy of their stored traffic data so that an individual storage-node failure doesn’t leave the dataset inaccessible.
NFA’s sharding-enabled ClickHouse architecture addresses these requirements by supporting multiple database shards and replicas. The implementation retains a single-node default configuration. Additional ClickHouse servers can be introduced when storage capacity or redundancy becomes a concern, without requiring a complete NFA application installation on every database node. The architecture covers both flow data and BGP routing information. Each uses a sharding key based on its own record attributes, while the underlying distributed storage and replication mechanisms remain the same.
NFA uses MySQL for Continue reading