Maps

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([r1.lug.ch.massars.net]) r2lug([r2.lug.ch.massars.net]) r1lab([r1.lab.lug.ch.massars.net]) r2lab([r2.lab.lug.ch.massars.net]) m1lug([m1.lug.ch.massars.net]) m2lug([m2.lug.ch.massars.net]) %% 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([r1.zrh.ch.massars.net]) end subgraph IPngZRH [IPng Networks] ddln([ddln.ipng.ch]) ddln0([ddln0.ipng.ch]) ddln1([ddln1.ipng.ch]) ddln <--> ddln0 ddln <--> ddln1 ddln0 <--> internet ddln1 <--> internet end end subgraph Rumlang [Rumlang, Switzerland] subgraph MassarRMA [Massar's Network] r1rma([r1.rma.ch.massars.net]) r2rma([r2.rma.ch.massars.net]) r1fra([r1.fra.de.massars.net]) r1rma <--> r2rma r1rma <--> r1fra r2rma <--> r1fra end subgraph IPngRMA [IPng Networks] chrma0([chrma0.ipng.ch]) 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([r1.bve.fr.massars.net]) end subgraph Frankfurt [Frankfurt, Germany] decix([DE-CIX Frankfurt, Equinix FR5, Frankfurt]) end subgraph Amsterdam ["Amsterdam, The Netherlands"] x1ams([x1.ams.nl.massars.net]) 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
  • ³ = x1.ams.nl.massars.net 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([r1.lug.ch.massars.net
AS4205777711]) r2lug([r2.lug.ch.massars.net
AS4205777712]) r1lab([r1.lab.lug.ch.massars.net
AS4205777713]) r2lab([r2.lab.lug.ch.massars.net
AS4205777714]) maillug([http.lug.ch.massars.net
AS4205777753]) httplug([http.lug.ch.massars.net
AS4205777744]) mirrorlug([mirror.lug.ch.massars.net
AS4205777745]) dns1lug([dns1.lug.ch.massars.net
AS4205777753]) dns2lug([dns2.lug.ch.massars.net
AS4205777754]) mm01lug([mm01.lug.ch.massars.net
AS4205777740]) amber([amber.massars.net
AS4205777721]) acme([acme.massars.net
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([r1.zrh.ch.massars.net
AS57777]) mailzrh([mail.zrh.ch.massars.net
AS4205777773]) httpzrh([http.zrh.ch.massars.net
AS4205777774]) mirrorzrh([mirror.zrh.ch.massars.net
AS4205777775]) dns1zrh([dns1.zrh.ch.massars.net
AS4205777776]) dns2zrh([dns2.zrh.ch.massars.net
AS4205777777]) r1zrh <--> mailzrh r1zrh <--> httpzrh r1zrh <--> mirrorzrh r1zrh <--> dns1zrh r1zrh <--> dns2zrh end subgraph Rumlang [Rumlang, Switzerland] r1rma([r1.rma.ch.massars.net
AS57777]) r2rma([r2.rma.ch.massars.net
AS57777]) r1fra([r1.fra.de.massars.net
AS57777]) mailrma([http.rma.ch.massars.net
AS4205777927]) httprma([http.rma.ch.massars.net
AS4205777928]) mirrorrma([mirror.rma.ch.massars.net
AS4205777929]) dns1rma([dns1.rma.ch.massars.net
AS4205777953]) dns2rma([dns2.rma.ch.massars.net
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([r1.bve.fr.massars.net
AS4205777206]) 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]) %% x1.ams.nl x1ams([x1.ams.nl.massars.net]) 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([chbtl0.ipng.ch]) chbtl1([chbtl1.ipng.ch]) chgtg0([chgtg0.ipng.ch]) chplo0([chplo0.ipng.ch]) chrma0([chrma0.ipng.ch]) ddln0([ddln0.ipng.ch]) ddln1([ddln1.ipng.ch]) defra0([defra0.ipng.ch]) frpar0([frpar0.ipng.ch]) frggh0([frpar0.ipng.ch]) nlams0([nlams0.ipng.ch]) 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