IPv6 for PPP Broadband: Prefix Assignment, DHCPv6 Behavior, and RADIUS Static Prefixes

⚠️ Modernization Notice These notes were written in 2018–2019. IPv6 CPE and OS support, DHCPv6 implementations, and ISP best practices have evolved significantly since then. Treat this as a record of real testing and the architectural decisions behind it, and validate against current RFCs, CPE datasheets, and OS release notes before deploying in production. Overview This post brings together two pieces of work I did on IPv6 for PPP broadband. The first is a set of notes and lab tests on running a single dual-stack PPP session per subscriber and assigning IPv6 prefixes to the CPE from a Cisco IOS XE BNG. The second is a design sketch for assigning static IPv6 prefixes per customer from a RADIUS/AAA backend. They belong together: the lab work shows how Cisco ISG/IOS XE actually behaves when prefixes arrive over RADIUS, and the design sketch is the natural next step once you decide that static, per-customer prefixes are what you want. ...

April 15, 2019 · 17 min · 3455 words · dnzydn

L2VPN VC Type 4 Interoperability Between Cisco ASR9000 and IOS XE

L2VPN pseudowire (PW) behavior differs between vendor platforms and device models, particularly around how VLAN tags are handled. Understanding the differences between VC type 4 (VLAN-based) and VC type 5 (Ethernet port-based) pseudowires, and the interoperability gotchas between EVC-based and non-EVC platforms, is critical when building multi-vendor L2VPN networks. L2VPN Packet Structure The basic structure of a packet traversing an L2VPN pseudowire is: Tunnel header + VC label + Control Word + L2 PDU Control Word The control word is a 4-byte field inserted between the VC label and the L2 payload. In Cisco IOS/IOS XR, the control word is enabled by default. ...

January 2, 2019 · 5 min · 992 words · dnzydn

Ping Command Packet Size Differences Across Vendors

When troubleshooting MTU and ICMP reachability across vendor platforms, understanding how each calculates the ping packet size is critical. Cisco, Juniper, and PC operating systems all interpret the ping size parameter differently, leading to different on-wire packet lengths. Cisco In Cisco, the ping size parameter specifies the total packet size including the IP header (20 bytes) and ICMP header (8 bytes). The data payload is what remains. The encapsulation headers added by the egress interface will be included on top of this size. Importantly, the MTU command under an interface specifies the L2 payload size — the maximum data + IP + ICMP that the interface will forward. So if you set MTU 1500 on an Ethernet interface, the on-wire frame size will be 1500 + 14 bytes (Ethernet header) = 1514 bytes. For VLAN-tagged frames, add another 4 bytes (802.1Q tag). ...

September 24, 2018 · 3 min · 492 words · dnzydn

Using GoBGP as BGP Server

We have been using a Perl based BGP script to announce some prefixes — for black hole routing, or to ban IP addresses as a result of law enforcement requests — from a database to the network. This project was the result of searching for a new BGP daemon that can be hooked into any need and that supports the L3 MPLS VPN Unicast address family. We have used osrg/gobgp (GoBGP) as a native library for the iBGP connection into our network. GoBGP can be embedded directly as a Go library, so instead of talking to a separate daemon over gRPC we drive the BGP server in-process and feed it routes straight from our database. ...

September 24, 2018 · 3 min · 514 words · dnzydn

ASR 1000 Parameterized QoS

⚠️ Modernization Notice This post was written in 2018 against Cisco IOS XE / ISG on the ASR 1000. Behavior around parameterized QoS, CoA, and policy-map chaining has changed across releases. Treat the configs and outputs here as a record of what I tested at the time, and validate against the current IOS XE configuration guides before deploying. Overview On the ASR 1000 (and IOS XE in general) there are broadly two ways to apply QoS to subscriber sessions: per-session and per-flow. They cannot be applied at the same time on the same session, so the first decision is which model fits your service. ...

September 19, 2018 · 11 min · 2316 words · dnzydn

İnternet Erişimini Kısıtlama, Engelleme veya Limitleme Yöntemleri

⚠️ Güncelleme Notu Bu yazı 2018’de aldığım notlara dayanıyor. Erişim engelleme yöntemleri ve özellikle HTTPS’in yaygınlaşmasıyla içerik tabanlı filtrelemenin sınırları o günden bu yana belirgin şekilde değişti. Buradaki yaklaşımları o dönemin bir kaydı olarak değerlendirin. İnternet erişimini kısıtlamak, engellemek veya limitlemek; çoğunlukla yasal kurumların talepleri ya da servis sağlayıcıların kendi politikaları gereği gündeme gelen, oldukça güncel bir konu. Engelleme dışında bu yöntemler, ağ içi ve ağ dışı P2P kullanımını kısıtlamak veya düzenlemek için de kullanılabiliyor. ...

September 19, 2018 · 3 min · 601 words · dnzydn

ISG Web Logon Across VRFs: Port-Bundle Host Key and L4 Redirection

⚠️ Modernization Notice This post is based on notes I took in 2018 against Cisco IOS XE / ISG on the ASR 1000. The VRF placement rules and the MPLS-VPN restriction described here reflect the behavior I observed at the time. Treat the specifics as a record of what I tested, and validate against the current IOS XE ISG configuration guides before deploying. Background On the ASR 1000, ISG (Intelligent Services Gateway) handles subscriber web logon — the “captive portal” experience where an unauthenticated subscriber’s HTTP traffic is intercepted and redirected to a login or service-selection portal. Two ISG features work together to make this happen: ...

September 19, 2018 · 4 min · 673 words · dnzydn