====== Cisco related stuff and IPv6 ======
===== Cisco IPv6 routing =====
Attempting our ping again from R1 elicits the following output from the debug on R2:
*Mar 1 00:14:14.575: IPV6: source 2001:DB8:0:12::1 (FastEthernet0/0)
*Mar 1 00:14:14.575: dest 2001:DB8:0:23::3 (FastEthernet0/1)
*Mar 1 00:14:14.579: traffic class 0, flow 0x0, len 100+14, prot 58, hops 64, not a router?
*Mar 1 00:14:16.591: IPV6: source 2001:DB8:0:12::1 (FastEthernet0/0)
*Mar 1 00:14:16.591: dest 2001:DB8:0:23::3 (FastEthernet0/1)
*Mar 1 00:14:16.591: traffic class 0, flow 0x0, len 100+14, prot 58, hops 64, not a router?
...
**"Not a router?"** IPv6 routing does not yet come enabled out of the box. The administrator must enable it, which I forgot to do. \\ \\
**''R2(config)# ipv6 unicast-routing''**
ipv6 unicast-routing
ipv6 cef
interface FastEthernet0/0
ipv6 enable
ipv6 address xx:xx:xx:xx:xx::x/yy
===== Catalyst enabling IPv6 stack =====
(config)#sdm prefer dual-ipv4-and-ipv6 default
# sh sdm prefer
The current template is "desktop default" template.
The selected template optimizes the resources in
the switch to support this level of features for
8 routed interfaces and 1024 VLANs.
number of unicast mac addresses: 6K
number of IPv4 IGMP groups + multicast routes: 1K
number of IPv4 unicast routes: 8K
number of directly-connected IPv4 hosts: 6K
number of indirect IPv4 routes: 2K
number of IPv4 policy based routing aces: 0
number of IPv4/MAC qos aces: 512
number of IPv4/MAC security aces: 1K
On next reload, template will be "desktop IPv4 and IPv6 default" template.
**reload is needed**
=== IPv6 access lists ACL ===
by Jan Bervar from [[http://www6.nil.si|NIL]]
! najbolj osnovni anti-spoofing, lahko bi dodali še kaj...
deny ipv6 2001:67C:58::/48 any log-input
! ICMP za ND-NS, treba je upoštevati kup kombinacij naslovov
permit icmp FE80::/10 FE80::/10 nd-ns
permit icmp FE80::/10 FE80::/10 nd-na
permit icmp FE80::/10 host FF02::1:FF00:2 nd-ns
permit icmp host 2A02:800:2:2000::1 FE80::/10 nd-na
permit icmp host 2A02:800:2:2000::1 host FF02::1:FF00:2 nd-ns
! dovolimo minimalen lokalni RA za morebitni troubleshooting, ni ga pa treba
permit icmp FE80::/10 host FF02::1 router-advertisement
! dovolimo PING na/iz lokalnih vmesnikov usmerjevalnika
permit icmp any host 2A02:800:2:2000::2 echo-request
permit icmp any host 2A02:800:2:2000::2 echo-reply
permit icmp any host 2001:67C:58:D00::3 echo-reply
permit icmp any host 2001:67C:58:D00::4 echo-reply
! dovolimo BGP za naše BGP-sosede
permit tcp host 2A02:800:1::10 gt 1023 host 2A02:800:2:2000::2 eq bgp
permit tcp host 2A02:800:1::10 eq bgp host 2A02:800:2:2000::2 gt 1023 established
! prepovemo ves promet na izpostavljene omrežne naprave
deny ipv6 any host 2A02:800:2:2000::2 log-input
deny ipv6 any host 2001:67C:58:D00::3 log-input
deny ipv6 any host 2001:67C:58:D00::4 log-input
deny ipv6 any host 2001:67C:58:D00::5 log-input
! pustimo ves ostali promet naprej, da ga pregledajo bolj pametne škatle za usmerjevalnikom
permit ipv6 any 2001:67C:58::/48
! drugega pa seveda ne sme biti
deny ipv6 any any log-input
Če filtriraš na TCP in UDP za tranziten promet, se nič ne spremeni. Traceroute delajo UNIXi AFAIK še vedno preko UDP na visokih portih, Windowsi pa še vedno (ravnokar preverjeno) preko ICMP echo zahtev.
Pa naj še enkrat opomnim na tisti IOS-ov trik: če *nimaš* na koncu ACLja "deny ipv6 any any", ti bo IOS na začetku implicitno (in skrito) dodal "permit icmp any any nd-ns" ter "permit icmp any any nd-na".