Een vraag waar ik al een tijd mee zit en die nu erg actueel is:
Hoe kan je site-2-site VPN connecties 'cross-platform' geloadbalanced afhandelen, liefst met site redundancy. *edit Hierbij geldt dat de andere kant een groot aantal 3rd parties zijn, die door andere partijen beheerd worden
Deze vraag speelt bij een aantal van onze grote klanten (>50.000 werknemers). Het is een punt waar ik al geruime tijd over ana het nadenken ben
Het probleem is de inflexibiliteit van IPSEC op de volgende punten:
1. End-point is meestal statisch (fixed IP adres of een naam die fixed gekoppeld is aan een IP adres)
2. IPSEC heeft moeite met NAT. NAT-T hoort hier een oplossing voor te zijn, maar werkt niet cross-platform. Na problemen met een IPSEC tunnel met dubbele NAT tussen een Juniper ScreenOS en Cisco ASA, was het officiele antwoord van Juniper op een case hierover: "Juniper ondersteund geen NAT-T met andere partijen. Het wordt 'finger-pointing' en werking wordt niet gegarandeerd."
Gewenste situatie:
Internet <-> Load balancer <-> VPN terminators <-> Interne netwerk
Internet kan een dubbele connectie zijn (dual ISP), met verschillende subnets per ISP. Niet al onze klanten kunnen zelf BGP gaan draaien om een 'floating' geregisteerd IP subnet te hebben.
Voorkeur is een VPN naar een FQDN, waarbij deze beantwoord wordt door de DNS server in de link controller die een high-availability adres teruggeeft, behorend bij de loadbalancing Virtual server. Helaas ondersteunen de meeste endpoints dit niet
Scenario's
1. geloadbalancede VPN naar loopback interfaces op VPN gateways (1 ISP only)
Indien je een forwarding virtual server aanmaakt die load balanced over VPN Gateways in een directly connected subnet, kan je forwarden zonder het destination IP adres aan te passen, maar alleen het destination MAC adres. Indien je op alle VPN Gateways een loopback interface aanmaakt met het 1e extern bekende IP adres, kan je de tunnels termineren zonder NAT. Door op de Virtual server persistancy te configuren op basis van source IP adres (/32), gaat LB altijd goed.
Punt is dan nog wel hoe de routing informatie tussen de VPN Gateways wordt uitgewisseld. Hoe weet het netwerk welke tunnel op welk IP adres getermineerd is. Op alle Gateways staat het remote netwerk fixed geconfigureerd (anders kan geen uitgaande VPN geconfigureerd worden). Dan moet er vervolgens een dynamisch routing protocol overheen (OSPF) om te zorgen dat dat goede VPN Gateway vanuit het interne netwerk benaderd wordt voor verkeer riching een remote VPN subnet.
Ik heb meer ideeen, maar moet die nog scherper definieren. Ik zou graag een disucssie hierover starten om meer kennis op te bouwen en te delen en dan de startpost wat uit te breiden.
Mijn idee op dit moment is dat je die VPN connecties niet moet load balancen, maar gewoon een zwaardere VPN doos neetzetten. HW VPN schaalt tot 15 GBit, pas daarboven is load balancing echt noodzakelijk. Dan staat wel een van de VPN Gateways uit z'n neus te peuteren, maar dat is dan niet anders.
In ieder houd je de volgende uitdaging: Hoe kan je je eigen VPN endpoint goed bereikbaar maken via 2 ISP's zonder dat je de andere kant controleert (lees: moet multi-platform, multi company zijn), anders dan met BGP. Is daar ervaring mee?
P.S. Met een load balancer heeft vanuit ons bedrijf een voorkeur. Het is geen probleem als de beste oplossing zonder LB is, maar dan moet dat wel helemaal zeker en duidelijk zijn, zodat we dat ook aan klanten kunnen utleggen en bv aanbiedingen van concullega's kunnen 'afkraken'
Hoe kan je site-2-site VPN connecties 'cross-platform' geloadbalanced afhandelen, liefst met site redundancy. *edit Hierbij geldt dat de andere kant een groot aantal 3rd parties zijn, die door andere partijen beheerd worden
Deze vraag speelt bij een aantal van onze grote klanten (>50.000 werknemers). Het is een punt waar ik al geruime tijd over ana het nadenken ben
Het probleem is de inflexibiliteit van IPSEC op de volgende punten:
1. End-point is meestal statisch (fixed IP adres of een naam die fixed gekoppeld is aan een IP adres)
2. IPSEC heeft moeite met NAT. NAT-T hoort hier een oplossing voor te zijn, maar werkt niet cross-platform. Na problemen met een IPSEC tunnel met dubbele NAT tussen een Juniper ScreenOS en Cisco ASA, was het officiele antwoord van Juniper op een case hierover: "Juniper ondersteund geen NAT-T met andere partijen. Het wordt 'finger-pointing' en werking wordt niet gegarandeerd."
Gewenste situatie:
Internet <-> Load balancer <-> VPN terminators <-> Interne netwerk
Internet kan een dubbele connectie zijn (dual ISP), met verschillende subnets per ISP. Niet al onze klanten kunnen zelf BGP gaan draaien om een 'floating' geregisteerd IP subnet te hebben.
Voorkeur is een VPN naar een FQDN, waarbij deze beantwoord wordt door de DNS server in de link controller die een high-availability adres teruggeeft, behorend bij de loadbalancing Virtual server. Helaas ondersteunen de meeste endpoints dit niet
Scenario's
1. geloadbalancede VPN naar loopback interfaces op VPN gateways (1 ISP only)
Indien je een forwarding virtual server aanmaakt die load balanced over VPN Gateways in een directly connected subnet, kan je forwarden zonder het destination IP adres aan te passen, maar alleen het destination MAC adres. Indien je op alle VPN Gateways een loopback interface aanmaakt met het 1e extern bekende IP adres, kan je de tunnels termineren zonder NAT. Door op de Virtual server persistancy te configuren op basis van source IP adres (/32), gaat LB altijd goed.
Punt is dan nog wel hoe de routing informatie tussen de VPN Gateways wordt uitgewisseld. Hoe weet het netwerk welke tunnel op welk IP adres getermineerd is. Op alle Gateways staat het remote netwerk fixed geconfigureerd (anders kan geen uitgaande VPN geconfigureerd worden). Dan moet er vervolgens een dynamisch routing protocol overheen (OSPF) om te zorgen dat dat goede VPN Gateway vanuit het interne netwerk benaderd wordt voor verkeer riching een remote VPN subnet.
Ik heb meer ideeen, maar moet die nog scherper definieren. Ik zou graag een disucssie hierover starten om meer kennis op te bouwen en te delen en dan de startpost wat uit te breiden.
Mijn idee op dit moment is dat je die VPN connecties niet moet load balancen, maar gewoon een zwaardere VPN doos neetzetten. HW VPN schaalt tot 15 GBit, pas daarboven is load balancing echt noodzakelijk. Dan staat wel een van de VPN Gateways uit z'n neus te peuteren, maar dat is dan niet anders.
In ieder houd je de volgende uitdaging: Hoe kan je je eigen VPN endpoint goed bereikbaar maken via 2 ISP's zonder dat je de andere kant controleert (lees: moet multi-platform, multi company zijn), anders dan met BGP. Is daar ervaring mee?
P.S. Met een load balancer heeft vanuit ons bedrijf een voorkeur. Het is geen probleem als de beste oplossing zonder LB is, maar dan moet dat wel helemaal zeker en duidelijk zijn, zodat we dat ook aan klanten kunnen utleggen en bv aanbiedingen van concullega's kunnen 'afkraken'