TL&DR: Badly. The vagrant-libvirt plugin mysteriously crashes when an existing virtual network (with a different libvirt name) uses the same IP subnet as the desired management network.
Background: netlab is using the vagrant-libvirt plugin to manage libvirt/KVM virtual machines with Vagrant. As I already have that infrastructure, I use it to start standalone virtual machines (usually to test various Ubuntu releases) on my Linux server. Things work great… until they don’t.
Here’s how I managed to waste half a day chasing imaginary gremlins caused by a simple error.
Dalam beberapa tahun terakhir, inovasi otomotif tidak hanya berfokus pada kendaraan pribadi atau transportasi umum, tetapi juga berkembang ke ranah teknologi perkotaan yang berkelanjutan. Salah satu terobosan mutakhir saat ini adalah pengembangan kendaraan robot otonom pengangkut sistem perakitan jalan berpori yang berfungsi sebagai solusi efektif untuk mengatasi masalah banjir di wilayah perkotaan. Konsep jalan berpori yang kini semakin populer menjadi bagian integral dalam mendukung visi kota hijau dan manajemen air yang efisien, sementara teknologi otomotif otonom memberikan kemudahan dan efisiensi dalam proses instalasi dan perawatan sistem tersebut.
Jalan berpori, atau porous pavement, merupakan teknologi infrastruktur yang dirancang untuk memungkinkan air hujan meresap secara langsung ke tanah melalui permukaan jalan, sehingga mengurangi genangan dan risiko banjir. Saat ini, penggunaan jalan berpori semakin meluas karena dampaknya yang signifikan dalam mengelola limpasan air hujan di daerah perkotaan yang padat dan minim ruang resapan alami.
Keunggulan jalan berpori tidak hanya dari segi penyerapan air, tetapi juga pada kemampuannya menjaga kualitas air dengan memfilter kotoran dan polutan sebelum air kembali ke tanah. Ini sangat relevan dengan kondisi perkotaan yang semakin berkembang dan menghadapi tantangan penataan ruang hijau dan drainase tradisional yang mulai tidak memadai. Oleh karena Continue reading
Hornussen, olahraga tradisional Swiss yang mulai dikenal luas kembali dalam periode terbaru, telah merebut perhatian banyak pecinta olahraga karena kombinasi unik antara kecepatan proyektil dan refleks ekstrem yang dibutuhkan para pemainnya. Saat ini, hornussen bukan hanya sebagai warisan budaya, tetapi juga sebagai bentuk olahraga kompetitif yang menuntut keterampilan fisik dan mental tingkat tinggi. Artikel ini mengulas mengapa olahraga hornussen begitu menarik dari sisi teknis dan apa yang membuat perpaduan refleks ekstrem serta kecepatan proyektil menjadi inti dari permainan ini.
Hornussen merupakan olahraga yang berasal dari pedesaan Swiss dan selama beberapa dekade terakhir bertransformasi dari hiburan tradisional menjadi aktivitas kompetitif dengan standar aturan yang makin ketat. Saat ini, hornussen dimainkan secara aktif di berbagai wilayah Swiss dan beberapa komunitas di kawasan Eropa lainnya yang ingin melestarikan budaya serta mengembangkan potensi olahraga unik ini. Hornussen sering disebut sebagai olahraga yang memadukan unsur cricket, golf, dan bisbol, karena pelaksanaan pukulan dan permainan tim yang dinamis.
Esensi dari hornussen adalah memukul sebuah proyektil kecil bernama “Nouss” dengan alat khusus yang disebut “Hornussstock.” Proyektil ini meluncur dengan kecepatan luar biasa, bahkan bisa mencapai ratusan kilometer per jam, sehingga menarik dan menantang para pemain lawan untuk menangkis Continue reading
As we discussed in the BGP-Free Core with SR-MPLS blog post, SR-MPLS works as a drop-in replacement for the traditional MPLS control plane. No wonder it works well (when properly implemented) with MPLS/VPN services – the second “fun” scenario in my ITNOG10 Segment Routing workshop. It uses the same topology as the BGP-Free Core scenario:

Simplest possible MPLS/VPN network with SR-MPLS core
It goes without saying that if you want to configure (virtual) network devices with any semi-sane configuration mechanism1, the device must have a working IP address. Here’s the time-honored method2 to assign an IP address to a virtual network device:

If you manage GlobalProtect VPN certificates on Palo Alto and use Let's Encrypt, at some point you will start thinking about automation. Let's Encrypt certificates have a short lifespan, so renewing them manually every few months isn't really practical. In this post, we will look at automating this process using Ansible, Cloudflare DNS, and the PAN-OS Ansible collection to renew certificates and push them to the firewall.
Let's say your domain is mydomain.com and it's managed through Cloudflare. You want to generate a certificate for vpn.mydomain.com and have it automatically installed on your Palo Alto firewall as the GlobalProtect portal or gateway certificate, without logging in manually every time it's close to expiry. To do this, you will need:
certbot can complete the DNS-01 challenge. This doesn't have to be Cloudflare specifically, certbot supports several other DNS providers as well, but this post assumes Cloudflare since that's what we're using here.paloaltonetworks.panos collection installedIt’s time for Eyvonne, Tom, and Russ to gather round the hedge and talk about various items of interest. In this roundtable, we consider what we can learn about product development from Bastiat, and the various ins and outs of Parkinson’s Law.
download
Every time I wrote something along the lines of NAT is not a security feature, I got the expected pushback from people defending their bad suboptimal design choices.
Fortunately, rational1 engineers no longer need to have that discussion: the NatJack website documents2 a half-dozen attacks on typical NAT implementations.
Obvious next step: coping mechanisms like “this is all theoretical”, like the “but the remote host cannot reply” argument made 23 years after the Slammer worm 🤦♂️.
As I mentioned in a previous post I wanted to make a WASM version of the RF scanner / RF survey tool, so that it can be run without any drivers or tools installed on the local machine.
Well, now I have. It’s available at https://rf-survey.habets.se/ as a GitHub page, automatically deploying from the github repo.
If you don’t have a compatible SDR, then you can at least enjoy the video here.
Step by step for doing a screen recording on Sway.
I want to capture exact 16x9 dimensions, and exactly the the right content. I do it pretty rarely, but yeah this should be automated.
Run this command, and move the pointer to the window you want to record.
$ sleep 2;swaymsg -t get_tree | jq '.. | objects | select(.focused? == true) | {app_id, id, name, window_properties}'
{
"app_id": "brave-browser",
"id": 802,
"name": "WebUSB RF Survey - Brave",
"window_properties": null
}
swaymsg '[con_id=802] floating enable,move position 200 px 256 px, resize set width 1600 px height 901 px'
(yes, 901. This may be because of my 1.3 scaling on that monitor, giving an off by one pixel due to rounding)
sleep 2;swaymsg -t get_tree | jq '.. | objects | select(.focused? == true) | .rect'
{
"x": 2120,
"y": 256,
"width": 1600,
"height": 900
}
wf-recorder -g '2120,257 1600x900' -f output.mp4
(yes, 257. Add one. Probably same reason)
$ slurp
2163,333 1514x37
Continue reading