Introductie Internet

De Internet dienst biedt hoogwaardige en veilige toegang tot internet. SURF zorgt voor uitstekende connectiviteit met andere netwerken. Hiervoor wordt gebruik gemaakt van directe koppelingen, aansluitingen op meerdere internet exchanges, transit providers of directe koppelingen met andere netwerken. Daarnaast hebben wij hoogwaardige verbindingen met andere research netwerken (NREN's) om in het bijzonder onderzoek en onderwijs te faciliteren.

Bij het aansluiten kan gekozen worden uit een of meerdere aansluiting van 10 of 100 gigabit per seconde. Uiteraard ondersteunt Internet zowel IPv6 als IPv4. 

Internet wordt in verschillende vormen geleverd. Deze verschillende vormen uiten zich in verschillende aansluitmodellen, waarbij er voor een dynamische of statisch gerouteerde aansluiting kan worden gekozen. Via al deze aansluitmodellen wordt toegang tot het internet mogelijk via IPv4 en IPv6.


Aanvraagproces

Aansluitvarianten

Er zijn drie aansluitvarianten beschikbaar. Meer hierover lees je bij de Functionele beschrijving van Internet.

Variant

Naam Aansluiting

Fysieke aansluiting

Routering

A

Protected statisch

1x 10/100Gbit/s SP

Statisch

B

Protected BGP

1x 10/100Gbit/s SP

BGP (2 sessies; 1 sessie per SURF-router) + optioneel BFD

C

Redundant BGP

1 x 10/100Gbit/s + 1 x 10/100Gbit/s SP (via 2 gescheiden instellingsrouters)

BGP (2 sessies; 1 sessie per SURF-router/instellingsrouter) + optioneel BFD


Benodigde gegevens voor aanvraag Internet

Voor het aanvragen van Internet, stuur een mail naar changes@surf.nl. Geef hierbij de volgende informatie:

Combineer onderstaande gegevens met de benodigde gegevens voor een Poort op de pagina Service Port.
AansluitvariantRedundant BGP*
Huidige poort ID's (bij upgrade)
anti-DDos filter?ja*
Indien protected BGP: VLAN-nrs. voor kant van instelling (niet nodig bij VRRP)
IP-prefixen (IPv6/IPv4)worden door SURF uitgegeven bij nieuwe instelling
AS-nummer1103*
BFD enabling?nee*
MD5?nee*
Gracefull-restart helpernee*

*default setting


Technische Details

Adresruimte en DNS 

De IP-ranges, zowel IPv4 als IPv6, benodigd voor de adressering van systemen binnen het instellingsnetwerk, worden door SURF verstrekt. Neem je voor het eerst Internet bij SURF af? Dan ontvangen wij graag de naam (+ e-mailadres) van de contactpersoon binnen jouw organisatie die ermee instemt om in de publiekelijk toegankelijke RIPE database te worden opgenomen, dit mag ook een generieke informatie zijn van bijvoorbeeld een afdeling binnen jouw instelling. 

De instelling is zelf verantwoordelijk voor het verzorgen van (reverse) DNS voor de IP-range die voor haar op het Internet wordt gerouteerd. SURF zal zorg dragen voor benodigde koppeling voor reverse DNS en biedt daarbij op verzoek een secundaire (back-up) DNS server.

Voordat de prefix door jouw instelling in gebruik wordt genomen, is het verstandig om de DNS-administratie te controleren en indien nodig aan te vullen. Wij adviseren om ook voor deze prefix een reverse DNS zone te configureren. Je kunt aan dns-beheer@surf.nl doorgeven welke nameservers je hiervoor wenst te gebruiken. We verzoeken je wel om ten minste 1 SURF nameserver op te nemen. Daarvoor kun je kiezen uit ns1.surfnet.nl, ns2.surfnet.nl, ns3.surfnet.nl of ns1.zurich.surf.net.

Aanvraag extra IP-adresruimte

Het verstrekken van IPv6 adresruimte zal aan de hand van een nummerplan soepel verlopen. Vanwege de schaarste aan IPv4 adressen zal duidelijk beargumenteerd moeten worden hoeveel adressen benodigd zijn en waarvoor deze ingezet zullen worden. De verstrekte adresruimte wordt altijd geregistreerd bij RIPE. 

Een aanvraag voor extra IP-adresruimte kan gedaan worden door de Infraverantwoordelijke via het Netwerk dashboard.

Routering

De router van de aangesloten instelling die direct met het SURF-netwerk is verbonden krijgt vanuit SURF één of, indien noodzakelijk, meerdere IP adressen toegewezen.

De routering zorgt voor de uitwisseling van informatie met betrekking tot de onderlinge bereikbaarheid van netwerkcomponenten en IP-netwerken. Afhankelijk van een aantal factoren (zoals locatie en apparatuur) zijn de volgende mogelijkheden beschikbaar voor routering tussen SURF en de aangesloten instelling:

  • Statische routering; SURF zal vanuit het netwerk de toegewezen IP-ranges naar de instelling routeren en de instelling dient de route richting SURF op te zetten.
  • Dynamische routering; hierbij dient de instelling zelf haar IP-ranges middels BGP te adverteren aan SURF. SURF zal een default route of een (deel van) de gehele routeringstabel aan de instelling adverteren.

Koppeling tussen instellingsnetwerk en SURF

SURF levert de IP-adressen van de koppelnetwerken tussen het instellingsnetwerk en SURF. Deze zijn echter pas bekend op het moment dat wij de verbinding provisionen in ons Automation platform.


Voorwaarden voor gebruik van IP-adressen

SURF stelt IP-adresruimte volgens de procedures van RIPE NCC (Réseaux IP Européens Network Coordination Center) beschikbaar aan de instellingen die op SURF zijn aangesloten. Kort samengevat worden IP-adressen onder de volgende voorwaarden beschikbaar gesteld:

  • IP-adresruimte is geen eigendom van de instelling. SURF kent adresruimte in bruikleen toe aan de instelling. De toegekende adresruimte moet in ieder geval geretourneerd worden wanneer de met SURF afgesloten gebruiksovereenkomst wordt beëindigd.
  • De instelling moet de toegekende adresruimte binnen zes maanden na toekenning in gebruik nemen. De instelling is verplicht mee te werken aan processen die inzichtelijk maken dat de toegekende adresruimte daadwerkelijk in gebruik is.
  • SURF zorgt ervoor dat de door haar toegekende adresruimte wereldwijd uniek is. Hiertoe zullen gegevens met betrekking tot de adresruimte worden opgenomen in de publiek toegankelijke database van RIPE. De instelling moet eventuele mutaties in deze gegevens doorgeven aan SURF, zodat SURF de publieke database up-to-date kan houden.
  • De instelling moet zorgen voor een correct geconfigureerde DNS met de reverse zone behorend bij de toegekende adresruimte. 

Aansluitmodellen

Voor internet hebben we verschillende ondersteunde aansluitmodellen. Allen zijn gebasseerd op BGP of een statisch gerouteerde aansluiting.

Enkelvoudig statisch

Met enkelvoudig statisch sluiten instellingen aan met één fysieke poort op het SURF-netwerk. De instelling zet vanuit haar interne netwerk een statische default route op naar het SURF adres op de router (zie figuur hiernaast). SURF zet vanaf haar PE router een statische route van de bij de instelling behorende IP-range richting de instellingsrouter.

Bij protected statisch is alles behalve de SURF PE router zelf volledig redundant. De SURF PE router is niet dubbel uitgevoerd maar, heeft altijd minimaal twee redundante uplinks naar de rest van het SURFnetwerk. Binnen het SURFnetwerk wordt alles dynamisch gerouteerd en is volledig redundant.

In dit schema alloceert SURF één /127 IPv6 en één /31 IPv4 nummerblok op de koppeling tussen de instellingsrouter (CE) en de SURF router (PE)





Enkelvoudig Statisch


Enkelvoudig BGP

Met 'Enkelvoudig BGP' sluiten instellingen aan middels één fysieke poort op het SURF-netwerk.

Deze configuratie is verder volledig gelijk aan de redundante BGP aansluiting met de van de extra BGP sessies met de redundante routers en van de iBGP sessie tussen de CE routers. Voordeel is dat een upgrade naar een redundante configuratie relatief wat eenvoudiger is.

Bij protected BGP is alles behalve de SURF PE router zelf, volledig redundant. De SURF PE router is niet dubbel uitgevoerd, maar heeft altijd minimaal twee redundante uplinks naar de rest van het SURFnetwerk. Binnen het SURFnetwerk wordt alles dynamisch gerouteerd en is volledig redundant.

In dit schema alloceert SURF een /127 IPv6 en een /31 IPv4 nummerblokken ten behoeve van de BGP peerings. Daarnaast alloceren we een private AS nummer voor uw netwerk, tenzij een al een publiek AS heeft.









 

Enkelvoudig BGP

Redundant BGP - Redundante klant routers

Met 'SURFinternet Redundant BGP' sluit de instelling met twee fysieke interfaces (door middel van twee fysiek gescheiden routers) aan op het SURF-netwerk.

Voor de routering dient BGP te worden geconfigureerd op beide routers van SURF en op beide routers van de instelling. De instelling en SURF zetten hiervoor twee BGP peerings op. Éen peering tussen instellingsrouter A en SURF router A en een peering tussen instellingsrouter B en SURF router B.

Optioneel kan gebruik gemaakt worden van BFD om de eventuele overschakeling naar het back-up pad aanzienlijk sneller te laten verlopen. De router van de aangesloten instelling dient echter wel BFD voor BGP te ondersteunen om hiervan gebruik te kunnen maken.

BFD kan via Self-service op het Netwerkdashboard worden aangezet: Self-service acties

In dit schema alloceert SURF voor twee /127 en twee /31 IPv4 nummerblokken ten behoeve van de BGP peerings.

Redundant BGP - Redundante klant routers

Redundant BGP - Klantrouters firewall combinatie

In deze variant worden aparte borderrouters ingezet voor BGP met daarachter firewalls verbonden via een switch.

Redundant BGP -Klantrouters firewall combinatie


Redundant BGP - BGP firewalls

In dit aansluitmodel wordt de BGP peering direct opgezet vanuit de firewall cluster. Om er voor te zorgen dat alle BGP sessies altijd op zullen zijn, voor snelle convergentie, moet er een switch tussen de SURF apparatuur en de firewalls zitten. 


Graceful-restart helper

In dit aansluit model kan het voordelen hebben om de graceful-restart helper mode aan te zetten op de SURF router. Bij een fail-over van de firewall naar de backup-firewall - door upgrades of failures - worden vaak alle BGP sessies tegeijk herstart. Dit betekend dat er een onderbreking komt in het verkeer. Door de graceful-restart helper (en graceful-restart te configureren op de firewall) blijft gedurende een periode het verkeer doorstromen ondanks dat er een restart plaatsvind ven de BGP sessie. Dit verbeterd aanzienlijk de convergentie tijd bij een fail-over van de firewall. Kijk in de documentatie van uw firewall product naar de aanbevelingen rondom graceful-restart/BF/BGP in dit scenario.

Redundant BGP - BGP firewalls


Informatie BGP instellingen SURF Internet

Primary vs Secondary

Bij de BGP instelling van SURFinternet kennen we het concept van Primary, Secondary, Tertiary en Quaternary verbindingen. Iedere variant krijgt zijn eigen set aan routeringsinstellingen mee om er voor te zorgen dat verkeer over de correcte verbinding wordt gerouteerd.

Local-preference

Dit is de voorkeur die SURF geeft aan routes die we over een SURFinternet BGP sessie ontvangen. De aansluiting die als Primary is ingesteld krijgt te hoogste local-preference de quarternary de laagste. De hoogste waarde wint.

Metric-out (Multi Exit Discriminator)

SURF stuurt ook een BGP MED (metric) mee met de route(s) die we over de SURFinternet BGP sessie versturen. Hiermee 'vragen' wij aan de instellingsrouters verkeer over een bepaalde verbinding te preferen. Over de aansluiting die als Primary is ingesteld, krijgen de routes een MED van 10 en bij de quarternary een waarde van 40. De laagste metric wint.




Primary50010
Secondary46020
Tertiary42030
Quaternary40040

Zelf invloed hebben op loadbalancing (traffic engineering)

Standaard configureert SURF altijd een Primary en Secondary BGP sessie. Hierdoor wordt alle verkeer aan een instelling over de Primary aansluiting verstuurd en verschuift dat naar de Secondary aansluiting als deze onbeschikbaar is. Een instelling kan hier zelf op de volgende manier invloed op uitoefenen en verkeer zelf balanceren over de verschillende aansluitingen;

Zelf de prioriteit van een aansluiting aanpassen

Via het Netwerkdashboard kun je zelf de prioriteit veranderen van aan aansluting. Wil je bijvoorbeeld de huidige Secondary verbinding omzetten naar een Primary verbinding dan kun je deze gewoon omdraaien. Secondary wordt primary en primary wordt secondary. Lees meer op: Self-service acties

Let wel; het aanpassen van de prioriteit van een verbinding zal ervoor zorgen dat de betreffende BGP sessie wordt herstart. Voor het aanpassen van een Secondary verbinding naar Primary zou dit onmerkbaar moeten zijn. Maar het aanpassen van een Primary verbinding naar Secondary kan invloed hebben op het verkeer. Doe dit dus liefst in een eigen maintenance window.

Beinvloeding door gebruik te maken van een BGP Multi Exit Discriminator (MED)

In BGP gaat de local-preference voor de MED. Een route wordt dus in eerste instantie gekozen op basis van de hoogste local-preference. Bij gelijke local-preference zal gekeken worden naar de MED (metric), waarbij de laagste MED de voorkeur krijgt. Daarom zullen wij in een Primary/Secondary scenario verkeer altijd sturen over de Primary aansluiting (zolang deze beschikbaar is).

Een instelling heeft zelf de mogelijkheid via het Netwerkdashboard om beide BGP sessies als Primary te configureren. Vervolgens kan de instelling zelf kiezen welke prefix primair over welke aansluiting gerouteerd wordt door een metric-out (MED) mee te sturen met de routes aan SURF. Hierbij zal SURF het verkeer sturen naar de aansluiting waar de route met de laagste BGP MED wordt ontvangen.

Beivloeding met meer specifieke prefixen

SURF staat alleen de IP prefixen toe die bij een instelling horen. Deze zijn op het Netwerkdashboard ook in te zien. Wij zullen in de routering naar externe netwerken deze IP prefixen zoveel mogelijk aggregeren.

Een instelling kan meer specifieke prefixen aan SURF annonceren (binnen de set aan bekende prefixen) om te zorgen dat we verkeer voor de prefix naar een bepaalde aansluiting routeren.

Een meer specifieke route gaat altijd voor een minder specifieke route, ook al heeft de minder specifieke route bijvoorbeeld een betere local-preference of metric.

Dit kan handig zijn bij bijvoorbeeld dislocaties, waarbij delen van de IP adresruimte op verschillende vestigingen gebruikt wordt. Het is te adviseren om de meest specifieke route altijd op beide aansluitingen aan SURF te annonceren, zodat er altijd redundantie is voor de gehele adresruimte. Daarnaast kunnen dan meer specifieke routes over de aansluitingen geanonnceerd worden in BGP om te zorgen dat het verkeer voor die prefixen primair op die aansluiting gerouteerd wordt vanuit SURF.


Tools voor troubleshooting en testen

SURFspeedtest


SURFspeedtest is een speedtester. Het werkt met de browser om eenvoudig een simpele speed en delay test te doen. We hebben door het hele land in het SURFnetwerk nodes geplaatst welke gebruikt kunnen worden. De nodes hebben ieder een 10Gb/s IP aansluiting direct op het SURFnetwerk. Het is mogelijk om te kiezen uit verschillende nodes in:

  • Amsterdam
  • Breda
  • Groningen
  • Nijmegen

Ga simpelweg met de browser naar: http://speedtest.surf.nl

Iperf3

Om wat meer gedetailleerd te kunnen testen, draaien de nodes naast librespeed ook iperf3. Iperf3 is ook een tool om speedtests te kunnen doen maar heeft meer mogelijkheden zoals het aantal streams of rapporteren van de packetloss.

Delay monitoring

De testnodes onderling doen ook delay metingen. Deze metingen zijn zichtbaar op: https://stats.surf.net/d/OenvUS_nz/smokeping




BGP Configureren op Cisco apparatuur

Introductie

Voor de routering met SURF wilt u gebruik gaan maken van BGP. In dit deel van de wiki wordt beschreven hoe u op eenvoudige wijze uw router kunt configureren m.b.t. BGP. Het voorbeeld is gebaseerd op een Cisco configuratie.

U heeft van SURF de IP adressen van onze SURF core routers en uw BGP AS nummer gekregen. Het is de bedoeling dat u met beide routers een “peering” opzet. Nadat deze “peering” tot stand is gekomen, krijgt u van beide routers een defaultroute (0.0.0.0/0) toegestuurd. SURF optimaliseert de BGP attributen, zodat SURF kiest via welke SURF router het verkeer zal gaan lopen. U hoeft dus zelf geen extra configuratie hiervoor te verrichten.

Voor dit voorbeeld gebruiken wij de volgende gegevens:

  • SURFnet router 1 het IP adres: 145.145.1.1/30 (255.255.255.252)
  • SURFnet router 2 het IP adres: 145.145.2.1/30 (255.255.255.252)
  • Klant prefix: 192.87.1.0/26 (255.255.255.192)
  • Uw BGP AS nummer: 64600

Klant aansluiting met 1 klant router

In deze situatie sluit u met een router aan, waarbij vanaf deze router zowel de primary als backup BGP sessie onderhoud. Voor de situatie waar u met twee routers (redundant) aansluit vindt u de procedure onder “Klant aansluiting met 2 klant routers”


ip prefix-list SURFnet-default seq 5 permit 0.0.0.0/0 ;Filter waarmee u de default route vanuit SURF accepteert


router bgp 64600 ;uw AS nummer
no auto-summary
neighbor 145.145.1.1 remote-as 1103
neighbor 145.145.1.1 description SURFnet router 1
neighbor 145.145.1.1 prefix-list SURFnet-default in
neighbor 145.145.2.1 remote-as 1103
neighbor 145.145.2.1 description SURFnet router 2
neighbor 145.145.2.1 prefix-list SURFnet-default in


Indien u een wachtwoord heeft afgesproken voor de BGP koppeling met SURF, dan dient u de volgende regels toe te voegen aan uw configuratie.


neighbor 145.145.1.1 password “wachtwoord”
neighbor 145.145.2.1 password “wachtwoord”


Verder moet u de door SURF toegewezen netwerken adverteren aan SURF. Dit doet u d.m.v. het “network” commando.

Voorbeeld: u wilt de netwerk/prefix “192.87.1.0/26” aan SURFnet6 adverteren


network 192.87.1.0 255.255.255.192


De volgende regel zorgt ervoor dat uw router het netwerk als één geheel adverteert aan SURF.


aggregate-address 192.87.1.0 255.255.255.192 summary-only


LETOP voor BGP is het noodzakelijk een onderliggende route te hebben voordat het een route adverteert. Als de prefix bekend is in uw IGP hoeft U niets te doen, is deze

nog niet in gebruik kunt u een static naar null zetten, waarmee er een onderliggende route is en BGP deze kan adverteren.

Een IPv6 BGP configuratie maakt u op dezelfde wijze als hierboven staat beschreven, alleen moet u het ipv4 adres vervangen voor een ipv6 adres en onder de BGP

configuratie mode eerst naar het “address-family ipv6 unicast” gaan.

Klant aansluiting met 2 klant routers

In deze situatie sluit u met twee routers redundant aan op SURF, waarmee zowel aan uw kant als die van SURF het falen van 1 router geen impact heeft in uw verbinding naar SURF. Afhankelijk hoe geïmplementeerd is volledige redundantie mogelijk.


Op beide routers:

IP prefix-list SURFnet-default seq 5 permit 0.0.0.0/0
router bgp 64600 ;Uw AS nummer.
no auto-summary


Op router A:

neighbor 145.145.1.1 remote-as 1103
neighbor 145.145.1.1 description SURF router 1
neighbor 145.145.1.1 prefix-list SURF-default in


Op router B:

neighbor 145.145.2.1 remote-as 1103
neighbor 145.145.2.1 description SURF router 2
neighbor 145.145.2.1 prefix-list SURF-default in


Indien u een wachtwoord heeft afgesproken voor de BGP koppeling met SURF, dan dient u de volgende regels toe te voegen aan uw configuratie.


Op router A:

neighbor 145.145.1.1 password “wachtwoord”


Op router B:

neighbor 145.145.2.1 password “wachtwoord”


Verder moet u de door SURF toegewezen netwerken adverteren via beide routers aan SURF. Dit doet u d.m.v. het “network” commando.

Voorbeeld: u wilt de netwerk/prefix “192.87.1.0/26” aan SURF adverteren


network 192.87.1.0 255.255.255.192


De volgende regel zorgt ervoor dat uw routers het netwerk als één geheel adverteeren aan SURF.


aggregate-address 192.87.1.0 255.255.255.192 summary-only

LETOP voor BGP is het noodzakelijk een onderliggende route te hebben voordat het een route adverteert. Als de prefix bekend is in uw IGP hoeft U niets te doen, is deze nog niet in gebruik kunt u een static naar null zetten, waarmee er een onderliggende route is en BGP deze kan adverteren


Een IPv6 BGP configuratie maakt u op dezelfde wijze als hierboven staat beschreven, alleen moet u het ipv4 adres vervangen voor een ipv6 adres en onder de BGP configuratie mode eerst naar het “address-family ipv6 unicast” gaan.

Voor het goed redundant laten functioneren van het geheel is het noodzakelijk tussen de twee routers (router A en router B) een iBGP sessie op te zetten. Dit kunt u op basis van interface addressen op een directe koppeling tussen de twee of loopbacks doen. Enige vorm van filtering in te adverteren prefixen is niet noodzakelijk. op router A en B (waarbij het IP adres natuurlijk van de router afhankelijk is


neighbor a.b.c.d remote-as 64600 ; Uw AS nummer

neighbor a.b.c.d description iBGP peering

Voorbeeldconfiguratie BGP op Cisco apparatuur IPv4/IPv6

Zie hier een voorbeeldconfiguratie: Voorbeeldconfiguratie BGP op Cisco apparatuur IPv4/IPv6




BGP Configureren op Juniper apparatuur

Introductie

Voor de routering met SURF wilt u gebruik gaan maken van BGP. In dit deel van de wiki wordt beschereven hoe u op eenvoudige wijze uw router kunt configureren m.b.t. BGP. Het voorbeeld is gebaseerd op een Cisco configuratie.

U heeft van SURF de IP adressen van onze SURF core routers en uw BGP AS nummer gekregen. Het is de bedoeling dat u met beide routers een “peering” opzet. Nadat deze “peering” tot stand is gekomen, krijgt u van beide routers een defaultroute (0.0.0.0/0) toegestuurd. SURF optimaliseert de BGP attributen, zodat SURF kiest via welke SURF router het verkeer zal gaan lopen. U hoeft dus zelf geen extra configuratie hiervoor te verrichten.

Voor dit voorbeeld gebruiken wij de volgende gegevens:

  • SURFnet router 1 het IP adres: 145.145.1.1/30 (255.255.255.252)
  • SURFnet router 1 het IPv6 adres: 2001:610:f01:7000::1/64
  • SURFnet router 2 het IP adres: 145.145.2.1/30 (255.255.255.252)
  • SURFnet router 2 het IPv6 adres: 2001:610:f01:7001::1/64
  • Klant prefix: 192.87.1.0/26 (255.255.255.192)
  • klant IPv6 prefix: 2001:610:ffff::/48
  • Uw BGP AS nummer: 64600

Klant aansluiting met 1 klant router

Opmerking: Deze config mist nog een import filter die alleen specifieke prefixen accepteerd (0.0.0.0/0 en ::/0)

Juniper router config
# De interface config richting de SURF router
interfaces {
    xe-1/3/6 {
        description "Peering: Surfnet [10Gbit] (AS1103)";
        unit 0 {
            family inet {
                address 145.145.1.2/30;
            }
            family inet6 {
                address 2001:610:f01:7000::2/64;
            }
        }
    }
}

#
# Om de routes via BGP te kunnen adverteren moeten ze bestaan in de route tabel. Dit kan met een static discard route
#
routing-options {
    rib inet6.0 {
        static {
            route 2001:610:ffff::/48 discard;
        }
    }
    static {
        route 192.87.1.0/26 discard;
    }
}

#
# Routing protocol config
#
protocols {
    bgp {
#
# De iBGP config tussen de instellings border routers voor het uitwisselen van eBGP routes geleerd van SURF.
#
        group iBGP {
            type internal;
            authentication-key "<optioneel>";
            neighbor 10.2.13.0 {
                local-address 10.2.13.1;
            }
            neighbor fc00::13:0 {
                local-address fc00::13:1;
            }
        }
#
# De eBGP peering met SURF voor IPv4
        group surfnet-v4 {
            type external;
            family inet {
                unicast;
            }
            authentication-key "<optioneel>";
            export ADVERTISE-AS64600;
            peer-as 1103;
            neighbor 145.145.1.1 {
                local-address 145.145.1.2;
            }
        }
#
# De eBGP peering met SURF voor IPv6
#
        group surfnet-v6 {
            type external;
            family inet6 {
                unicast;
            }
            authentication-key "<optioneel>";
            export ADVERTISE-AS64600;
            peer-as 1103;
            neighbor 2001:610:f01:7000::1 {
                local-address 2001:610:f01:7000::2;
            }
        }
    }
}

#
# De policies die nodig zijn om routes te importeren en exporten in BGP
#
policy-options {
#
# IPv4 prefixes die gebruikt worden in de verschillende policies
#
    prefix-list AS64600-routes4 {
        192.87.1.0/26;
    }
#
# IPv6 prefixes die gebruikt worden in de verschillende policies
#
    prefix-list AS64600-routes6 {
        2001:610:ffff::/48;
    }
#
# De policy statement die gebruikt wordt om er voor te zorgen dat alleen de correcte prefixen wordt adverteerd aan SURF
#
    policy-statement ADVERTISE-AS64600 {
        term ipv4 {
            from {
                family inet;
                prefix-list-filter AS64600-routes4 exact accept;
            }
        }
        term ipv6 {
            from {
                family inet6;
                prefix-list-filter AS64600-routes6 exact accept;
            }
        }
        then reject;
    }
}


Klant aansluiting met 2 klant routers

Hier onder de config voor Juniper routers voor een setup met 2 routers waar tussen ook iBGP is configureerd.

Opmerking: Deze config mist nog een import filter die alleen specifieke prefixen accepteerd (0.0.0.0/0 en ::/0)


Juniper config router 1
# De interface config richting de SURF router
interfaces {
    xe-1/3/6 {
        description "Peering: Surfnet [10Gbit] (AS1103)";
        unit 0 {
            family inet {
                address 145.145.1.2/30;
            }
            family inet6 {
                address 2001:610:f01:7000::2/64;
            }
        }
    }
    lo0 {
        description "Loopback";
        unit 0 {
            family inet {
                address 10.2.13.1/32;
            }
            family inet6 {
                address fc00::13:1/128;
            }
        }
    }
}

#
# Om de routes via BGP te kunnen adverteren moeten ze bestaan in de route tabel. Dit kan met een static discard route
#
routing-options {
    rib inet6.0 {
        static {
            route 2001:610:ffff::/48 discard;
        }
    }
    static {
        route 192.87.1.0/26 discard;
    }
}

#
# Routing protocol config
#
protocols {
    bgp {
#
# De iBGP config tussen de instellings border routers voor het uitwisselen van eBGP routes geleerd van SURF.
#
        group iBGP {
            type internal;
            authentication-key "<optioneel>";
            neighbor 10.2.13.0 {
                local-address 10.2.13.1;
            }
            neighbor fc00::13:0 {
                local-address fc00::13:1;
            }
        }
#
# De eBGP peering met SURF voor IPv4
        group surfnet-v4 {
            type external;
            family inet {
                unicast;
            }
            authentication-key "<optioneel>";
            export ADVERTISE-AS64600;
            peer-as 1103;
            neighbor 145.145.1.1 {
                local-address 145.145.1.2;
            }
        }
#
# De eBGP peering met SURF voor IPv6
#
        group surfnet-v6 {
            type external;
            family inet6 {
                unicast;
            }
            authentication-key "<optioneel>";
            export ADVERTISE-AS64600;
            peer-as 1103;
            neighbor 2001:610:f01:7000::1 {
                local-address 2001:610:f01:7000::2;
            }
        }
    }
}

#
# De policies die nodig zijn om routes te importeren en exporten in BGP
#
policy-options {
#
# IPv4 prefixes die gebruikt worden in de verschillende policies
#
    prefix-list AS64600-routes4 {
        192.87.1.0/26;
    }
#
# IPv6 prefixes die gebruikt worden in de verschillende policies
#
    prefix-list AS64600-routes6 {
        2001:610:ffff::/48;
    }
#
# De policy statement die gebruikt wordt om er voor te zorgen dat alleen de correcte prefixen wordt adverteerd aan SURF
#
    policy-statement ADVERTISE-AS64600 {
        term ipv4 {
            from {
                family inet;
                prefix-list-filter AS64600-routes4 exact accept;
            }
        }
        term ipv6 {
            from {
                family inet6;
                prefix-list-filter AS64600-routes6 exact accept;
            }
        }
        then reject;
    }
}
Juniper config router 2
# De interface config richting de SURF router
interfaces {
    xe-1/3/6 {
        description "Peering: Surfnet [10Gbit] (AS1103)";
        unit 0 {
            family inet {
                address 145.145.2.2/30;
            }
            family inet6 {
                address 2001:610:f01:7001::2/64;
            }
        }
    }
     lo0 {
        description "Loopback";
        unit 0 {
            family inet {
                address 10.2.13.0/32;
            }
            family inet6 {
                address fc00::13:0/128;
            }
        }
    } 
}

#
# Om de routes via BGP te kunnen adverteren moeten ze bestaan in de route tabel. Dit kan met een static discard route
#
routing-options {
    rib inet6.0 {
        static {
            route 2001:610:ffff::/48 discard;
        }
    }
    static {
        route 192.87.1.0/26 discard;
    }
}

#
# Routing protocol config
#
protocols {
    bgp {
#
# De iBGP config tussen de instellings border routers voor het uitwisselen van eBGP routes geleerd van SURF.
#
        group iBGP {
            type internal;
            authentication-key "<optioneel>";
            neighbor 10.2.13.1 {
                local-address 10.2.13.0;
            }
            neighbor fc00::13:1 {
                local-address fc00::13:0;
            }
        }
#
# De eBGP peering met SURF voor IPv4
        group surfnet-v4 {
            type external;
            family inet {
                unicast;
            }
            authentication-key "<optioneel>";
            export ADVERTISE-AS64600;
            peer-as 1103;
            neighbor 145.145.2.1 {
                local-address 145.145.2.2;
            }
        }
#
# De eBGP peering met SURF voor IPv6
#
        group surfnet-v6 {
            type external;
            family inet6 {
                unicast;
            }
            authentication-key "<optioneel>";
            export ADVERTISE-AS64600;
            peer-as 1103;
            neighbor 2001:610:f01:7001::1 {
                local-address 2001:610:f01:7001::2;
            }
        }
    }
}

#
# De policies die nodig zijn om routes te importeren en exporten in BGP
#
policy-options {
#
# IPv4 prefixes die gebruikt worden in de verschillende policies
#
    prefix-list AS64600-routes4 {
        192.87.1.0/26;
    }
#
# IPv6 prefixes die gebruikt worden in de verschillende policies
#
    prefix-list AS64600-routes6 {
        2001:610:ffff::/48;
    }
#
# De policy statement die gebruikt wordt om er voor te zorgen dat alleen de correcte prefixen wordt adverteerd aan SURF
#
    policy-statement ADVERTISE-AS64600 {
        term ipv4 {
            from {
                family inet;
                prefix-list-filter AS64600-routes4 exact accept;
            }
        }
        term ipv6 {
            from {
                family inet6;
                prefix-list-filter AS64600-routes6 exact accept;
            }
        }
        then reject;
    }
}