15) IPv6

1. Адресация

Тут нужно знать теорию, в основном (лучше сначала почитать как и что сокращается, чем IPv6 отличается от 4 версии и тд). Но есть и немного практики.

Создадим простую топологию:

IP-адресации нет, так как на части роутеров она будет генерироваться автоматически.

Пусть у нас будет пул адресов A:B:C::/48. Сначала настроим статические Global Unicast адреса на линках R1. Пусть ge-0/0/0 - A:B:C:1::1/64, а ge-0/0/1 - A:B:C:2::1/64:

root@R1# show | compare 
[edit]
+  interfaces {
+      ge-0/0/0 {
+          unit 0 {
+              family inet6 {
+                  address a:b:c:1::1/64;
+              }
+          }
+      }
+      ge-0/0/1 {
+          unit 0 {
+              family inet6 {
+                  address a:b:c:2::1/64;
+              }
+          }
+      }
+  }
+  protocols {
+      router-advertisement { ##Включаем NDP для этого линка (За ним R3). 
+          interface all;     ##Там получим адрес по SLAAC
+          interface ge-0/0/1.0 {
+              prefix a:b:c:2::/64;
+          }
+      }
+  }

JunOS автоматически генерирует Link-Local адреса:

[edit]
root@R1# run show interfaces terse                                          
Interface               Admin Link Proto    Local                 Remote
ge-0/0/0.0              up    up   inet6    a:b:c:1::1/64   
                                            fe80::5200:ff:fe04:2/64
                                   multiservice
ge-0/0/1.0              up    up   inet6    a:b:c:2::1/64   
                                            fe80::5200:ff:fe04:3/64
                                   multiservice

На R2 сгенерируем адреса при помощи EUI-64:

root@R2# show | compare 
[edit]
+  interfaces {
+      ge-0/0/0 {
+          unit 0 {
+              family inet6 {
+                  address a:b:c:1::/64 {
+                      eui-64;
+                  }
+              }
+          }
+      }
+      ge-0/0/2 {
+          unit 0 {
+              family inet6 {
+                  address a:b:c:3::/64 {
+                      eui-64;
+                  }
+              }
+          }
+      }
+  }
+  protocols {
+      router-advertisement {
+          interface ge-0/0/2.0 {
+              prefix a:b:c:3::/64;
+          }
+      }
+  }

Результат:

root@R2# run show interfaces terse    
Interface               Admin Link Proto    Local                 Remote
ge-0/0/0.0              up    up   inet6    a:b:c:1:5200:ff:fe05:2/64
                                            fe80::5200:ff:fe05:2/64
                                   multiservice
ge-0/0/2.0              up    up   inet6    a:b:c:3:5200:ff:fe05:4/64
                                            fe80::5200:ff:fe05:4/64
                                   multiservice

Теперь можно настроить адреса при помощи SLAAC на R3:

root@R3# show | compare 
[edit]
+  interfaces {
+      ge-0/0/1 {
+          unit 0 {
+              family inet6 {
+                  dhcpv6-client {
+                      client-type autoconfig;
+                      client-ia-type ia-na;
+                      client-identifier duid-type duid-ll;
+                  }
+              }
+          }
+      }
+      ge-0/0/2 {
+          unit 0 {
+              family inet6 {
+                  dhcpv6-client {
+                      client-type autoconfig;
+                      client-ia-type ia-na;
+                      client-identifier duid-type duid-ll;
+                  }
+              }
+          }
+      }                                
+  }
+  protocols {
+      router-advertisement {
+          interface ge-0/0/1.0;
+          interface ge-0/0/2.0;
+      }
+  }

Про client-ia-type и client-identifier не нашёл ничего внятного, поэтому только в RFC.

А ещё у меня есть проблема с виртуальными SRX, поэтому я вернусь обратно на MX с таким конфигом:

system {
    root-authentication {
        encrypted-password "$6$GMHB78Ji$pZ3spz8I.3HUHqdqc3LsiKDzl6Z9xKiXivD0r43iH8Nzx59hXJjvDWGa1bv10WNHDNdXXbDynaALHh2./UQrw1"; ## SECRET-DATA
    }
    host-name R3;
}
interfaces {
    ge-0/0/1 {
        unit 0 {
            family inet6 {
                address a:b:c:2::/64 {
                    eui-64;
                }
            }
        }
    }
    ge-0/0/2 {
        unit 0 {
            family inet6 {
                address a:b:c:3::/64 {
                    eui-64;             
                }
            }
        }
    }
}
protocols {
    router-advertisement {
        interface ge-0/0/2.0 {
            prefix a:b:c:3::/64;
        }
        interface ge-0/0/1.0 {
            prefix a:b:c:2::/64;
        }
    }
}

Работа NDP:

root@R3# run show ipv6 neighbors    
IPv6 Address                 Linklayer Address  State       Exp Rtr Secure Interface
fe80::5200:ff:fe04:3         50:00:00:04:00:03  stale       1184 yes no     ge-0/0/1.0  
fe80::5200:ff:fe05:4         50:00:00:05:00:04  stale       988 yes no      ge-0/0/2.0  

2. Протоколы

2.1. IS-IS

За счёт TLV для IS-IS нет разницы в том, что нужно передавать. Поэтосму тут ничего не поменяется.

2.3. OSPF

Тут всё настривается под:

edit protocols ospf3

Остальное идентично. При этом на некоторых железках OSPFv3 может передавать информацию об IPv4 и об IPv6.

2.4. BGP

Тут также всё аналогично, кроме того, что у соседей будут указываться IPv6 адреса.

2.5. Небольшое замечание

Last updated

Was this helpful?