====== DSL and satellite links aggregation ====== The purpose of this document is to explain how to aggregate a DSL link (low latency, low bandwidth) with a satellite link (high latency, high bandwidth) to get the best parts of both solutions. Actually it's not a real "aggregation" method but it's rather a manual balacing depending on outgoing traffic. ===== Context ===== Living far away from the city and thus far away from a DSLAM, the DSL link I'm connected to doesn't allow decent bandwidth (**1.5 Mbits**/**768 Kbits**) but the latency is fine (∼ **30ms**). Current satellite internet rate plans can reach **20 Mbits**/**6 Mbits** with a round latency of **700ms**. ==== Why more bandwidth ? ==== * Having severals computers or devices is painful in case of software upgrades (occur pretty often) * Overall bandwidth is crawled when a computer/device is downloading * Sending files takes millions of years (remote backups, emails, etc) * VOD with some TV related devices require a lot of bandwidth (> 5Mbits) ==== Why keeping a DSL link ? ==== * Online gaming (MMORPG, FPS) needs a low latency * Vital network services (like DNS) run smoothly with a low latency. Performing DNS resolution with a DSL link should improve matters * Interactive services such as SSH and VPN can turn you mad with a too high latency but work great with a DSL link Having 2 links allow to use failover in case one link is failing. ===== Cons ===== * Price is high (one DSL and one satellite subscription) * Setting a parabola up is painful ===== Used software ===== To achieve this we use [[https://www.google.fr/#q=zeroshell|ZeroShell]]. It has tons of functionalities and especially handles multi WAN interfaces (with load balancing, failover and manual balancing). It's based on Linux and runs on many devices (PCs, Alix/Soekris boards, etc). Although it's live CD based profiles and parameters can be saved on hard drive, usb devices, CF/SD cards, etc. Specific hardware images are also available for download. A recent linux distro can do the job but you need to be familiar with advanced iptables configuration, routing, traffic classification, etc. ZeroShell makes life easier. A Web GUI is available to perform all tasks (except Wireless). A console or SSH access is available anyway. ===== Used hardware ===== * [[http://www.gooze.eu/alix-2d13-pc-engines-kit|Alix boards 2D3]] with 3 LAN interfaces and 1 mini PCI wireless adapter * 1 dsl modem (acting as a bridge and providing a WAN ip, let's say WAN_IP1 for later use) * 1 satellite modem (acting as a bridge and providing a WAN ip, let's say WAN_IP2 for later use) * At least one switch to connect the router to the LAN => ZeroShell supports PPPoE, 3G modems, etc ===== Architecture design ===== {{:informatique:reseau:zeroshell:net_balancer:drawing1.png?200|}} {{:informatique:reseau:zeroshell:net_balancer:lan.png?700}}