Hallo zusammen
Ich bin doch noch vom Glauben abgefallen 😉
Lange Jahre war ich mit Ciscos als Gateway/Router/Firewall gut gefahren; erst 88x und 89x der älteren Generation, dann C892-FSP und C891-24X der neueren Generation, je nachdem mal mit, mal ohne DSL-Bridge davor, manchmal sogar mit einem VDSL2-SFP.
Aber die CPUs dieser kleinen Router packen einfach nicht mehr als 220Mbit/s bei IPv4-mit-NAT und reichen bis knapp 300Mbit/s bei IPv6. [1]
Ganz kurz hatte ich leihweise auch einen modernen Cisco 1113-8P aus der ISR 1100-Serie mit seinem integrierten G.Fast-Modem im Einsatz. Der vermochte die 450/120 Mbit/s gut zu füllen, aber er war finanziell ausser Reichweite und die Cisco IOS ZBFW-Firewall ist halt schon jedesmal ein Gehirn-Verknoter, wenn man sie anfassen muss.
So wurde es jetzt eine Fortigate 60F, und vorne dran werkelt (noch) ein C892-FSP mit einem G.Fast-SFP von Swisscom als Bridge.
Kernpunkte:
- Normaler Swisscom Heimanschluss mit G.Fast und DHCP
- Auf der WAN-Seite nur IPv6-SLAAC ("autoconfig"), und IPv4-DHCP, kein PPPoE, kein DHCPv6-Client [2]
- keine routebare IPv6-Adresse auf der WAN-Seite, nur link-lokales fe80::
- zuätzlich internes IPv6-Prefix nach RFC4193, damit die Adressen lokal stabil bleiben.
- realisiert mit FortiOS 7.2.1
Das WAN-Interface:
config system interface
edit "wan1"
set vdom "root"
set mode dhcp
set alias "Internet Swisscom"
#### Trick, damit der DHCPv4-Client aussieht wie
#### der bisherige Router, damit keine Neu-Registrierung nötig
#### und natürlich die Client-Option 60
set macaddr 2c:5a:0f:66:c9:07
config client-options
edit 1
set code 60
set type string
set value "100008,0001"
next
end
#### bei IPv6 sind wir _kein_ DHCPv6 Client, nur SLAAC/Autoconf.
#### aber wir sind Client für DHCPv6-PD
config ipv6
set ip6-allowaccess ping
set dhcp6-prefix-delegation enable
set autoconf enable
#### eine Liste von Prefixes, mit dem Wunsch, ein /56 zu erhalten
#### die ID/Nummer des Listen-Eintrages wird später wieder gebraucht
config dhcp6-iapd-list
edit 1
set prefix-hint::/56
next
end
end
next
Die Inside-Interfaces kommen dann so daher, hier ein Subinterface mit VLAN-Tag 41:
config system interface
edit "internal1.41"
set vdom "root"
set interface "internal1"
set vlanid 41
set ip 172.19.40.1 255.255.254.0
set allowaccess ping https ssh http
set alias "inside network"
config ipv6
set ip6-mode delegated
set ip6-allowaccess ping
#### damit Router-Advertisments rausgehen und
#### damit die Clients wissen, dass auch ein
#### stateless DHCPv6-Server vorhanden ist
set ip6-send-adv enable
set ip6-other-flag enable
#### das ist das Upstream-Interface, zu welchem das delegierte /56 gehört
#### und die ID/Nummer aus der dhcp6-iapd-list (s. oben),
#### aus welchem wir eine Adresse haben wollen
#### und daraus wollen wir Subnet 41 und wir geben uns die::1 darin
set ip6-upstream-interface "wan1"
set ip6-delegated-prefix-iaid 1
set ip6-subnet::41:0:0:0:1/64
config ip6-delegated-prefix-list
edit 1
set upstream-interface "wan1"
set delegated-prefix-iaid 1
set subnet 0:0:0:41::/64
next
#### zusätzlich haben wir auch noch ein RFC4193-Prefix auf dem LAN
#### und unsere beiden lokalen DNS Resolver (Raspberries mit Pi-Hole)
config ip6-prefix-list
edit fdnn:nnnn:nnnn:41::/64
set rdnss fdnn:nnnn:nnnn:41::25:53 fdnn:nnnn:nnnn:41::25:53
next
end
end
end
next
Jetzt haben wir die Situation, dass wir auf dem outside-Interface (wan1) keine routebare public IPv6-Adresse mehr haben. Wenn man einen IPSec-Tunnel oder ein SSL-VPN-Portal betreiben will auf der Firewall, ist das hinderlich.
NAT ist ja kein Thema mehr, "Portforwarding" auf der Public IP ist vorbei. Die Firewall (und nicht eine NAT-Engine) regelt schon, was in welche Richtung offen sein darf.
Die Idee, die Adresse auf dem wan1 ebenfalls aus dem delegierten Prefix zu beziehen, verweigert die Forti, weil das mit "set autoconf enable" nicht zusammenpasse - genau das autoconf (SLAAC) brauchen wir aber, um auf der WAN-Seite überhaupt etwas erreichen zu können.
Da kann man sich mit einem Loopback-Interface behelfen. Hier habe ich eine IPv6 aus dem letzten Subnet (ff) des zugewiesenen /56 gewählt
config system interface
edit "loopback0"
set vdom "root"
set ip 172.19.0.10 255.255.255.255
set allowaccess ping https ssh snmp http
set type loopback
config ipv6
set ip6-mode delegated
set ip6-upstream-interface "wan1"
set ip6-delegated-prefix-iaid 1
set ip6-subnet::ff:0:0:0:10/128
end
next
... und dann bindet man die Services, welche die Firewall selbst nach aussen anbieten soll, an das Loopback-Interface.
Es braucht dannhalt einige zusätzlich Firewall Policies für "outside -> loopback".
Cheers, jetzt mit 450/120 - was das G.Fast halt hergibt.
Marc
Folgende Quelle hat am meisten geholfen:
https://thorsten-on-tech.blog/2018/06/08/ipv6-with-prefix-delegation-on-fortigate/
[1] für solche Dursatzraten war die 880/890er-Familie auch nie gedacht. Cisco hat sie immer im SOHO-Bereich mit 25Mpbs gesehen.
[2] andere Provider haben vielleicht DHCPv6 oder PPPoE, oder sogar statisches Adressing an dieser Stelle.