MLPPP
Multilink PPP (MLPPP) enables combining multiple physical PPP links into a single logical interface, providing increased bandwidth through aggregation and link redundancy through failover. This capability is particularly valuable for scenarios requiring higher throughput than single links can provide, such as aggregating multiple DSL lines or bonding cellular modems.
MLPPP works by fragmenting packets across multiple physical links and reassembling them at the destination. This load balancing increases effective bandwidth while maintaining packet ordering. If any link fails, traffic automatically redistributes across remaining links without session interruption.
Summary
Section titled “Summary”MLPPP operates at the PPP layer, requiring no special support from underlying networks. Each physical interface runs standard PPP (or PPPoE), while the MLPPP interface bundles them together. The protocol handles packet fragmentation, sequencing, and reassembly transparently to higher layers.
Two deployment modes exist: single-link MLPPP and multi-link MLPPP. Single-link mode enables MRRU (Maximum Reconstructed Receive Unit) for full-sized packet transmission, essential for bridging scenarios. Multi-link mode aggregates bandwidth across multiple links for improved throughput.
Key benefits include:
- Bandwidth Aggregation: Combine multiple links for higher throughput
- Load Balancing: Distribute traffic across all active links
- Failover: Automatic redistribution when links fail
- MRRU Support: Transmit full-sized Ethernet frames over PPP
Single-Link MLPPP
Section titled “Single-Link MLPPP”Single-link MLPPP enables MRRU support on a single PPP connection. This configuration is primarily used for bridging scenarios where full-sized Ethernet frames must traverse the PPP link.
When to Use Single-Link MLPPP
Section titled “When to Use Single-Link MLPPP”Enable single-link MLPPP when:
- Running BCP (Bridge Control Protocol) to bridge Ethernet over PPP
- Transmitting VLAN-tagged traffic that exceeds standard PPP MTU
- Networks require full 1500+ byte frames end-to-end
Configuration
Section titled “Configuration”Configure single-link MLPPP on a PPPoE client:
/interface pppoe-client add name=pppoe-out1 interface=ether1 \ service-name=isp user=username password=secret \ mrru=1600The mrru=1600 parameter enables single-link Multilink PPP, allowing packets up to 1600 bytes to be transmitted without fragmentation at the PPP layer.
Verify the configuration:
/interface pppoe-client monitor pppoe-out1The output shows MRRU status:
status: connected mrru: 1600Multi-Link MLPPP
Section titled “Multi-Link MLPPP”Multi-link MLPPP combines multiple physical links into a single logical interface with aggregated bandwidth. This requires multiple PPP connections to the same provider or endpoint.
Requirements
Section titled “Requirements”Multi-link MLPPP requires:
- Multiple physical interfaces (separate DSL lines, cellular modems, etc.)
- ISP or peer supporting MLPPP on each link
- Links must have similar latency for optimal performance
Configuration Example
Section titled “Configuration Example”This example aggregates three PPPoE connections:
Create individual PPPoE clients:
/interface pppoe-client add name=pppoe-1 interface=ether1 \ service-name=isp user=user1 password=pass1 connect-to=isp.example.com/interface pppoe-client add name=pppoe-2 interface=ether2 \ service-name=isp user=user2 password=pass2 connect-to=isp.example.com/interface pppoe-client add name=pppoe-3 interface=ether3 \ service-name=isp user=user3 password=pass3 connect-to=isp.example.comCreate MLPPP interface:
/interface bonding add name=bond1 \ slaves=pppoe-1,pppoe-2,pppoe-3 \ mode=balance-rrNote: RouterOS uses interface bonding for MLPPP rather than a dedicated MLPPP interface. The bonding implementation provides similar functionality with additional flexibility.
Configure addressing:
/ip address add address=203.0.113.10/30 interface=bond1Load Balancing Modes
Section titled “Load Balancing Modes”The bonding interface supports multiple modes for different scenarios:
| Mode | Behavior | Use Case |
|---|---|---|
| balance-rr | Round-robin across links | MLPPP aggregation |
| active-backup | One active, others standby | Failover only |
| balance-xor | Hash-based distribution | Fixed assignment |
| broadcast | All packets on all links | Redundancy |
| balance-tlb | Transmit load balancing | Asymmetric links |
| balance-alb | Adaptive load balancing | Full duplex |
For MLPPP functionality, use balance-rr mode.
Verification
Section titled “Verification”Check bonding status:
/interface bonding monitor bond1The output shows all slaves and their status:
name: bond1凝聚力: 3 slaves: pppoe-1, pppoe-2, pppoe-3 pppoe-1: status: active pppoe-2: status: active pppoe-3: status: activeMonitor traffic distribution:
/interface bonding print statsBridging over MLPPP
Section titled “Bridging over MLPPP”MLPPP enables sending full-sized Ethernet frames over PPP links through BCP (Bridge Control Protocol). This creates the effect of extending a local network across PPP connections.
Configuration
Section titled “Configuration”First, enable MRRU on each PPP connection:
/interface pppoe-client set [find] mrru=1600Create a bridge and add interfaces:
/interface bridge add name=bridge1/interface bridge port add bridge=bridge1 interface=bridge-local/interface bridge port add interface=pppoe-out1Configure the PPP interface to accept VLAN traffic:
/interface bridge set bridge1 vlan-filtering=yes/interface bridge vlan add bridge=bridge1 tagged=pppoe-out1 vlan-ids=10,20,30Verification
Section titled “Verification”Verify bridge status:
/interface bridge print/interface bridge port printTest connectivity across the link to ensure frames transmit properly.
Troubleshooting
Section titled “Troubleshooting”Common MLPPP issues and solutions.
Poor Performance
Section titled “Poor Performance”Multi-link MLPPP requires links with similar characteristics. If links have significantly different latency, performance degrades.
Solution: Use links with similar bandwidth and latency. Consider single-link MLPPP with MRRU if bonding multiple diverse links.
Link Failures
Section titled “Link Failures”When one link fails, traffic redistributes. Brief interruptions may occur during redistribution.
Solution: Use the bonding monitor to track link status. Ensure upper-layer protocols handle brief outages.
MRRU Not Working
Section titled “MRRU Not Working”If MRRU is enabled but large packets still fail:
Solution:
- Verify MRRU is set on both endpoints
- Check intermediate network devices don’t fragment oversized packets
- Ensure firewall allows larger packet sizes
Fragmentation Issues
Section titled “Fragmentation Issues”Out-of-order packets can cause application problems:
Solution: MLPPP includes sequencing information to reorder packets. Ensure no middleboxes are reassembling packets incorrectly.
Use Cases
Section titled “Use Cases”MLPPP serves several practical scenarios:
ISP Aggregation: Combine multiple ISP connections for higher bandwidth or redundancy. Useful for businesses needing more bandwidth than single ISP provides.
Cellular Bonding: Aggregate multiple cellular modems for improved throughput. Common in mobile deployments or remote locations.
DSL Bonding: Combine multiple DSL lines from the same provider. Many providers support DSL bonding for business customers.
Bridging Remote Networks: Use single-link MLPPP with BCP to bridge networks across PPP connections, extending local network reach.
See Also
Section titled “See Also”- PPPoE Client - PPPoE configuration
- PPPoE Server - PPPoE server setup
- Interface Bonding - Advanced bonding options
- IPv6 PD over PPP - IPv6 prefix delegation