FireBrick L2TP Server
- A 'Fully Loaded' FireBrick is required for L2TP features
- AAISP Data SIMS can be relayed on to your own L2TP Server, such as a FireBrick. This will enable a remote SIM to be connected directly to your LAN and have an IP on your LAN, very similar to a VPN.
- The Computer (or device) with the SIM will not need any special config or software installed.
- At the moment the L2TP tunnel is not encrypted, but this will change shortly.
- Basic setups can be done in the FireBrick config without the need to run your own RADIUS server - for each SIM connecting in you'll need a single <match .../> config.
- The FireBrick allocates IPs statically within the config and can't use DHCP - for more advanced and more flexible configurations you'd run your own RADIUS server.
On the WebUI, this is set under Tunnels, L2TP, Incoming L2TP connections, and basic XML example is as below:
<l2tp> <incoming name="MyL2TP" hostname="FireBrick" secret="myPassword" pppip="10.0.0.2" pppdns1="184.108.40.206" pppdns2="220.127.116.11" lcp-rate="25" lcp-timeout="240" tcp-mss-fix="true"> <match name="MySIM" graph="MySIM" calling-station-id="89442xxxxxx" remote-ip="10.0.0.4"/> </l2tp>
The settings explained are:
- name - Just a name for this
- hostname - the hostname used within the l2tp, this will be used later when setting up the AAISP SIM end.
- secret - the password (optional)
- pppip - the IP used as the PPP endpoint on the FireBrick - typically the FireBricks IP address
- pppdns1/2 - DNS servers that the FireBrick will give out
- lpc-rate/timeout - used for graphs - we don't need to poll as often as the actual LCPs are not answered by the SIM, but by the mobile network. Basically latency on the graphs for SIMs should be ignored.
The <match settings are to match individual SIMs when the conenct in, and thus giving them their own IP address etc.
- name - just a name, eg teh name of the person using this SIM
- graph - make a graph for this SIM - will show usage etc, but latency can be ignored.
- calling-station-id - this is the ICCID of the SIM, as AAISP use this as the station id
- remote-ip - the IP address to give the SIM, ie, an IP address on your LAN
You will also need firewall filters, eg to allow traffic out of the SIM, in a ruleset add something to match the SIM.
<rule name="L2TPOut" source-interface="l2tp"/>
This of course can be restricted, so you could give a SIM just access to your LAN and not your WAN - ie to block internet access whilst allowing them to access your own internal servers.
Routing from the LAN
If you are assigning IPs from your LAN to the SIM, then as the L2TP connection is on a different interface to your LAN -to enable routing from the LAN to your SIM you will need to set proxy-arp=true on the LAN interface.
At the AAISP end, AAISP will set up a 'line' on the control pages for your SIM, you can request Staff to set this for L2TP:
- Target IP - IP (4 or 6) of your FireBrick
- Host - The Hostname as set in your 'incoming' config, ie FireBrick in this case
- secret - The secret as set in your incoming config, ie myPassword in this case
On the Web interface, Status, L2TP will give the connection, if it's connected.
You can use the FireWall check to check if a SIM will have access to the internet.
You can also check the routing of the IP you've assigned the SIM.
Separate (NAT) Subnet for the Dongle
Rather than giving your SIM an IP on your LAN, you could give the SIM a private (RFC1918) IP in the <match config, eg:
<match name="SIM" graph="SIM" calling-station-id="8944200000000000" remote-ip="192.168.99.99" comment="My SIM"/>
Here there is no need to create a separate subnet interface on the FireBrick. This SIM then be accessible from your LAN and not your WAN, and the SIM will only have access to your LAN and not the WAN.
To give the SIMs access to the Internet, you will need a Route Override configured to NAT the traffic from the L2TP to your internet interface (in this case PPPoE), eg:
<route-override name="L2TP NAT"> <rule name="NAT the SIM for Internet Access" source-interface="l2tp" target-interface="pppoe" set-nat="true"/> </route-override>