Hallo Joe,
wenn du die Option "Force all client generated traffic through the tunnel." gesetzt hast, dann wird sämtlicher traffic von deinem Laptop, egal wohin er geht, in den VPN Tunnel geleitet. Das könnte man als "full tunneling" bezeichnen, weil einfach alles in den VPN tunnel geht aber nicht mehr über deinen eigentlichen WWAN Gateway.
Es gibt aber auch Einsatzgebiete, wo es Sinn macht, dass man nur einen Teil der Verkehrs durch das VPN leitet und den Rest direkt ins Internet. Ein Beispiel wäre folgendes:
Du bist zu Hause an deinem Laptop, möchtest youtube.com ansurfen, googlen, bundesliga.d etc. anschauen. Hier würde es ja Sinn machen, diese Daten direkt ins Internet zu routen und nicht erst durch den VPN zur Arbeit und von dort ins Netz und aus dem Netz erst zur Arbeit, durch den VPN zu dir.
Um das zu realisieren, muss man den Traffic aufsplitten, das geschieht durch "split tunneling". Das heisst, du deaktivierst die Funktion "Force all client generated traffic through the tunnel.", musst nun aber deinem OpenVPN Client sagen, welche Ziel IP Adressen er denn durch den VPN Tunnel senden soll und welchen er direkt ins Internet senden soll.
Das bedeutet, auf deinem Client werden Routen eingerichtet. Routen, die als gateway den VPN Tunnel haben und eine default route (0.0.0.0) welche jeglichen sonstigen Verkehr zu deinem WWAN Gateway sendet.
Du könntest jetzt natürlich über cmd.exe auf deinem Windows Rechner immer, nachdem du den OpenVPN client gestartet hast, die Routen eintragen, die über das VPN sollen, das hätte den gleichen Effekt, wäre aber bei vielen OpenVPN clients umständlich und nicht praktikabel. Deswegen kannst du deinem OpenVPN Server anweisen, dass er, sobald sich ein Client mit ihm verbindet, er bitte entsprechend Routen zu setzen hat. Da der Client die Route "nicht selbst setzt", sondern diese vom Server "gesetzt bekommt", heisst der Befehl:
push "route 192.168.0.0 255.255.255.0";
Das bedeutet, der Server "schiebt" eine Routenanweisung an den Client und der Client führt dann den Befehl:
route 192.168.0.0 255.255.255.0;
aus. Man muss also nur einmal einen "push" Befehl am Server konfigurieren und alle Clients bekommen die Anweisung.
Hast du also "Force all client generated traffic through the tunnel." gesetzt, sagt der Server dem client (push) er soll alles übers VPN routen.
Hast du "Force all client generated traffic through the tunnel." nicht gesetzt, erwartet der VPN Client hingegen Anweisungen, was er denn nun routen soll.
Hast du nur ein einziges Subnet, was geroutet werden soll, dann kannst du das beim OpenVPN Server in der GUI unter "Local Network" eintragen. Wenn du mehrere Subnetze routen willst, musst du das dem OpenVPN Server sagen. Da es in der GUI aber nur ein Feld zum eintragen gibt, musst du dir eben mit den "echten" OpenVPN Befehlen behelfen und diese in den "Custom Options" eintragen.
Du musst dir also vorher klar machen:
von wo nach wo soll etwas transferiert (Daten) werden?
Wer muss welche Routen kennen?
Wo muss ich die Routen eintragen (server und/oder client)?
Zeichne dir am Besten ein Bild auf mit jedem Standort. Welche Subnetze dieser Standort hat und dann schreibst du dir auf, welche Standorte diese Subnetze nicht kennen und deswegen eine Route bekommen müssen, um diese Netze zu finden.
Die Funktionen "Site-to-Site bzw. Peer-to-Peer" als auch "RoadWarrior" haben keinen funktionellen Unterschied, sie blenden lediglich verschiedene Funktionen in der OpenVPN GUI ein und aus, weil manche Optionen nicht zur Verfügung stehen oder aber es dafür nur eine einzige Konfigurationsmöglichkeit gibt. Lediglich die Option "Username/Password" ist nicht möglich wenn du 2 pfsense miteinander verbinden willst, denn die pfsense kann keinen Benutzernamen und kein Passwort eingeben. Das kann eben nr ein real life benutzer. pfsense kann nur Zertifikate vorzeigen bzw. einen SharededKey.
–-edit---
Das könnte helfen und beschreibt eigentlich die Konfiguration:
http://forum.pfsense.org/index.php/topic,12888.0.html