Ciao Ragazzi,
oggi ho iniziato a giocare con IPv6, sta finalmente arrivando l’ora di implementarlo sulla nostra rete, ma non posso certo farlo senza un po’ di laboratorio.
Allora ho messo sul mio EveNG un mini lab con questi elementi:
- 2 Mikrotik CHR 7.10 (ce1 e ce2)
- 2 Juniper Olive (pe1 e pe2)
I ce hanno indirizzamento IPv6 mentre i pe hanno indirizzamento IPv4: l’obiettivo è fare in modo di poter effettuare un ping da ce1 a ce2 passando per una rete IPv4.
Per quanto riguarda gli indirizzamenti IPv6 ho usato una classe con indirizzamento IPv4 like così da semplificare i test (da buon ingegnere!)
Questi gli indirizzi IP usati
PE1
em0: 10.1.1.5/30
em1: ::10.1.1.2/126
lo0: 10.1.1.2/32
PE2
em0: 10.1.1.6/30
em1: ::10.1.1.13/126
lo0: 10.1.1.3/32
CE1
ether1: ::10.1.1.1/126
CE2
ether1: ::10.1.1.14/126
I due router PE sono collegati con una sessione Multi-path BGP su IPv4 e scambiano le rotte IPv6 (value 2) AFI (address family indicator) e SAFI (subsequent AFI) (value 4). Ogni PE utilizzerà come next-hop per gli indirizzi IPv6 il proprio indirizzo IPv4 (useremo gli ip della loopback)
Inoltre per semplificare ulteriormente il lab (avremo tempo per complicare le cose!) la comunicazione tra CE e PE avverrà tramite rotte statiche (in particolare la default sui CE verso i PE) mentre per complicare un po’ le cose si potrebbe usare anche in questo caso il BGP (external)
La configurazione di MPLS e LDP servirà per abilitare la segnalazione tra i PE visto che le rotte IPv6 vengono scambiate mediante aggiunta di label (inner e outer)
Iniziamo le configurazioni delle interfaccie ethernet:
PE1
set interfaces em1 unit 0 family inet6 address ::10.1.1.2/126 set interfaces em1 unit 0 family mpls set interfaces em0 unit 0 family inet address 10.1.1.5/30 set interfaces em0 unit 0 family inet6 set interfaces em0 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.1.1.2/32
PE2
set interfaces em1 unit 0 family inet6 address ::10.1.1.13/126 set interfaces em1 unit 0 family mpls set interfaces em0 unit 0 family inet address 10.1.1.6/30 set interfaces em0 unit 0 family inet6 set interfaces em0 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.1.1.3/32
CE1
/ipv6 address add address=::10.1.1.1/126 advertise=no interface=ether1 /ipv6 route add dst-address=::/0 gateway=::10.1.1.2
CE2
/ipv6 address add address=::10.1.1.14/126 advertise=no interface=ether1 /ipv6 route add dst-address=::/0 gateway=::10.1.1.13
Come anticipato, non ho utilizzato BGP per propagare le subnet IPv6 ma delle semplici rotte statiche.
Imposto MPLS e LDP sui PE:
PE1
set protocols mpls ipv6-tunneling set protocols mpls interface em0 set protocols mpls interface em1 set protocols ldp interface em0
PE2
set protocols mpls ipv6-tunneling set protocols mpls interface em0 set protocols mpls interface em1 set protocols ldp interface em0
Prima di procedere con la configurazione dei protocolli di routing (OSPF e BGP) dobbiamo definire le policy per il BGP e altre info di base (router-id e autonomous-system) su entrambi i router:
PE1
set policy-options policy-statement next-hop-self then next-hop self set policy-options policy-statement send-v6 from family inet6 set policy-options policy-statement send-v6 from protocol bgp set policy-options policy-statement send-v6 from protocol direct set policy-options policy-statement send-v6 then accept set routing-options router-id 10.1.1.2 set routing-options autonomous-system 65002
PE2
set policy-options policy-statement next-hop-self then next-hop self set policy-options policy-statement send-v6 from family inet6 set policy-options policy-statement send-v6 from protocol bgp set policy-options policy-statement send-v6 from protocol direct set policy-options policy-statement send-v6 then accept set routing-options router-id 10.1.1.3 set routing-options autonomous-system 65002
Le policy sopra create (next-hop-self e send-v6) servono per indicare rispettivamente chi sarà il next-hop dei neighbors e quali famiglie di protocolli annunciare.
Manca poco, dobbiamo solo creare i protocolli e far parlare i nostri PE (OSPF e BGP):
PE1
set protocols bgp group toPE2 family inet6 labeled-unicast explicit-null set protocols bgp group toPE2 export next-hop-self set protocols bgp group toPE2 export send-v6 set protocols bgp group toPE2 neighbor 10.1.1.3 set protocols ospf area 0.0.0.0 interface em0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
PE2
set protocols bgp group toPE2 family inet6 labeled-unicast explicit-null set protocols bgp group toPE2 export next-hop-self set protocols bgp group toPE2 export send-v6 set protocols bgp group toPE2 neighbor 10.1.1.2 set protocols ospf area 0.0.0.0 interface em0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
Una volta salita la sessione BGP, da verificare con il comando show bgp summary possiamo verificare le rotte ricevute dai rispettivi neighbor con il comando show route receive-protocol bgp IP_NEIGHBOR
La prova definitiva è il ping da CE1 a CE2:
Enjoy!