This page explains in map style the layout of Massar's Network using the venerable MermaidJS.

Layer 1

The Layer 1 map displays how our sites are physically connected. We use Ethernet Virtual Leased Lines (VLL) from both IPng Networks and IP-Max to reach sites not directly connected to us. This map excludes any L2 switches.

graph LR subgraph World internet([Internet]) init7([Init7]) orange([Orange France]) sunrise([Sunrise]) end subgraph Lugano [Lugano, Switzerland] r1lug([]) r2lug([]) r1lab([]) r2lab([]) m1lug([]) m2lug([]) %% Modem connections r1lug <--> m1lug r1lug <--> m2lug r2lug <--> m1lug r2lug <--> m2lug %% Links r1lug <--> r2lug r1lab <--> r2lab r1lug <--> r1lab r1lug <--> r2lab r2lug <--> r1lab r2lug <--> r2lab end subgraph Zurich [Zurich, Switzerland] subgraph MassarZRH [Massar's Network] r1zrh([]) end subgraph IPngZRH [IPng Networks] ddln([]) ddln0([]) ddln1([]) ddln <--> ddln0 ddln <--> ddln1 ddln0 <--> internet ddln1 <--> internet end end subgraph Rumlang [Rumlang, Switzerland] subgraph MassarRMA [Massar's Network] r1rma([]) r2rma([]) r1fra([]) r1rma <--> r2rma r1rma <--> r1fra r2rma <--> r1fra end subgraph IPngRMA [IPng Networks] chrma0([]) end subgraph IPMaxRMA [IP-Max] ntt-swissix([IP-Max at NTT ZRH1, Rümlang]) ntt-decix([IP-Max at NTT ZRH1, Rümlang]) ntt-freeix([IP-Max at NTT ZRH1, Rümlang]) end swissix([SwissIX, NTT ZRH1, Rümlang]) freeix([Free-IX, NTT ZRH1, Rümlang]) end subgraph BriveLaGaillarde [Brive-La-Gaillarde, France] r1bve([]) end subgraph Frankfurt [Frankfurt, Germany] decix([DE-CIX Frankfurt, Equinix FR5, Frankfurt]) end subgraph Amsterdam ["Amsterdam, The Netherlands"] x1ams([]) obsda([OpenBSD.Amsterdam]) end %% Links m1lug <-- 500/150 G.Fast VDSL --> init7 m2lug <-- 2G/300 5G --> sunrise r1zrh <-- 1G Ethernet --> ddln r1zrh <-- 1G VLL --> ntt-swissix r1rma <--> rtr r1rma <-- 10G Ethernet --> chrma0 r2rma <---> rtr r2rma <-- 1G Ethernet --> ntt-freeix r1fra <-- 1G Ethernet --> ntt-decix r1bve <-- 1G Fiber --> orange x1ams <-- 1G --> obsda rtr([10G VLAN]) rtr <--> r1zrh %% Internet chrma0 <--> internet sunrise <--> internet init7 <--> internet orange <--> internet obsda <--> internet %% IX swissix <--> internet decix <--> internet freeix <--> internet %% Backhaul ntt-decix <-- 100mbit IP-Max VLL --> decix ntt-swissix <-- 1G IP-Max Ethernet --> swissix ntt-freeix <-- 1G IP-Max Ethernet --> freeix
  • ¹ = G.Fast VDSL physical Swisscom but terminated by Init7
  • ² = 5G link physical link by Sunrise but through Digital Republic
  • ³ = is a OpenBSD VM for external/fallback hosted at OpenBSD.Amsterdam

Layer 3

The Layer 3 diagram shows how on an IP level we run connectivity on top of the Layer 1 physical connections. We use L2TP to backhaul traffic and connect L1 disconnected sites.

While physically located on the same host, r1.rma handles transit, r2.rma handles local exchanges and r1.fra handles DE-CIX. Thus allowing a rolling upgrade of those routers thus minimizing connectivity loss during lifecycles.

graph LR subgraph AS57777 massar([Massar's Network
AS57777]) subgraph Lugano [Lugano, Switzerland] r1lug([
AS4205777711]) r2lug([
AS4205777712]) r1lab([
AS4205777713]) r2lab([
AS4205777714]) maillug([
AS4205777753]) httplug([
AS4205777774]) mirrorlug([
AS4205777744]) dns1lug([
AS4205777753]) dns2lug([
AS4205777754]) mm01lug([
AS4205777740]) amber([
AS4205777721]) acme([
AS4205777722]) r1lug <--> r2lug r1lab <--> r2lab r1lug <--> r1lab r1lug <--> r2lab r2lug <--> r1lab r2lug <--> r2lab r1lug <--> maillug r2lug <--> maillug r1lug <--> httplug r2lug <--> httplug r1lug <--> mirrorlug r2lug <--> mirrorlug r1lug <--> dns1lug r2lug <--> dns1lug r1lug <--> dns2lug r2lug <--> dns2lug r1lug <--> mm01lug r2lug <--> mm01lug mm01lug <--> amber mm01lug <--> acme end subgraph Zurich [Zurich, Switzerland] r1zrh([
AS57777]) mailzrh([
AS4205777773]) httpzrh([
AS4205777774]) mirrorzrh([
AS4205777775]) dns1zrh([
AS4205777776]) dns2zrh([
AS4205777777]) r1zrh <--> mailzrh r1zrh <--> httpzrh r1zrh <--> mirrorzrh r1zrh <--> dns1zrh r1zrh <--> dns2zrh end subgraph Rumlang [Rumlang, Switzerland] r1rma([
AS57777]) r2rma([
AS57777]) r1fra([
AS57777]) mailrma([
AS4205777927]) httprma([
AS4205777928]) mirrorrma([
AS4205777929]) dns1rma([
AS4205777953]) dns2rma([
AS4205777954]) r1rma <--> mailrma r1rma <--> httprma r1rma <--> mirrorrma r1rma <--> dns1rma r1rma <--> dns2rma r2rma <--> mailrma r2rma <--> httprma r2rma <--> mirrorrma r2rma <--> dns1rma r2rma <--> dns2rma end subgraph BrivelaGaillarde [Brive-La-Gaillarde, France] r1bve([
Brive-la-Gaillarde, France]) end r1lug <-- L2TP --> r1zrh r2lug <-- L2TP --> r1zrh r1zrh <-- Wireguard --> r1bve r1rma <-- Wireguard --> r1bve r1lug <-- L2TP --> r1rma r2lug <-- L2TP --> r1rma r1zrh <-- Ethernet --> r1rma end subgraph TheInternet [The Internet] internet([Internet]) decix([DE-CIX Frankfurt]) freeix([Free-IX, NTT ZRH1, Rumlang]) nlix([NL-ix Amsterdam]) swissix([SwissIX, NTT ZRH1, Rumlang]) init7([Init7
AS13030]) orange([Orange France
AS3215]) sunrise([Sunrise]) %% x1ams([]) obsda([OpenBSD.Amsterdam]) high5([High5
AS60131]) a2b([A2B
AS51088]) x1ams <--> obsda obsda <--> high5 high5 <--> a2b a2b <--> internet end subgraph AS8298 ipng([IPng Networks
AS8298]) chbtl0([]) chbtl1([]) chgtg0([]) chplo0([]) chrma0([]) ddln0([]) ddln1([]) defra0([]) frpar0([]) frggh0([]) nlams0([]) ddln0 <--> ddln1 ddln0 <--> chrma0 ddln1 <--> chgtg0 chbtl0 <--> chbtl1 chgtg0 <--> chrma0 chrma0 <--> chbtl0 chgtg0 <--> chbtl1 chgtg0 <--> chplo0 chrma0 <--> defra0 defra0 <--> nlams0 nlams0 <--> frggh0 frggh0 <--> frpar0 frpar0 <--> chplo0 defra0 <--> decix nlams0 <--> nlix chrma0 <--> swissix chrma0 <--> freeix end r1zrh <-- Transit --> ddln0 r1zrh <-- Transit --> ddln1 r1zrh <-- Peering --> swissix r1rma <-- Transit --> chrma0 r1fra <-- Peering --> decix r2rma <-- Peering --> freeix r1rma <--> r1fra r1rma <--> r2rma init7 <--> internet orange <--> internet sunrise <--> internet decix <--> internet freeix <--> internet nlix <--> internet swissix <--> internet