queue trees, combining two output interfaces.

Our internet is attached to router1, and router2 is connected to router1. Customer has two routers, one plugged in to each of our routers. I’d like to add bandwidth limiting for this customer. Limiting upload speed seems easy enough, create a connection/packet mark rule for the two ip addresses of the customer routers and add the queue to the internet port on router1. Is there a way to limit the sum of the of traffic downloaded by the two customer routers via two different interfaces on the same router? (some of the data exiting router1:ether3->customer-router1, and the rest out router1:ether2->router2->customer-router2)

To understand the question, we probably need a little more info. How are going to identify the traffic? Can you post a simple diagram with IP addresses?

I know the IP addresses of the two routers. I thought I could create a set of connection marks and packet marks matching the dst-addressess of the routers and use this packet mark on router1 to limit the data. Customer routers have public IP addresses. the 10.x.x.x addresses are there just as an example. Since all the data from the internet to the customer passes through router1, I thought I could mark and queue the traffic there. Maybe I should create a bridge on Router1 that contains the CustomerR1 interface and a vlan to CustomerR2. Then I’ll have one interface (customer_bridge) that contains all the data and I can easily queue.


+------------+              +------------+                                         
| CustomerR2 |              | CustomerR1 |                                         
|            |              |            |                                         
|  10.2.0.2  |              |  10.1.0.2  |                 XXX  X X   X             
+------+-----+              +------+-----+               XX              X X        
       |                           |                    X                     XX    
+------+-----+              +------+-----+            XX                       XX  
|  10.2.0.1  |              |  10.1.0.1  |            X      Internet            X 
|   Router2  +--------------+  Router1   +----------+                           X
|            |              |            |            XXX                         X
+------------+              +------------+               XX     XXX               X
                                                            XXXXXX   XXXXXXXXXXXX

On Router1

/interface ether set ether1 comment="to internet"
/interface ether set ether2 comment="to router2"
/interface ether set ether3 comment="to customer-rrouter1"
/interface vlan add name=ether2-vlan2 vlan_id=2 interface=ether2
/interface bridge add name=customer-bridge
/interface bridge port add bridge=customer-bridge port=ether2-vlan2
/interface bridge port add bridge=customer-bridge port=ether3
/ip add add add=10.1.0.1/24 int customer-bridge
/ip add add add=10.2.0.1/24 int customer-bridge

on Router2

/interface ether set ether1 comment="to router1"
/interface ether set ether2 comment="to customer-router2"
/interface vlan add name=ether1-vlan1 vlan_id=2 interface=ether1
/int bridge add name=customer-bridge
/int bridge port add bridge=customer-bridge port=ether1-vlan2
/int bridge port add bridge=customer-bridge port=ether2

now I have an interface on router 1 that contains all the traffic for the customer. I now can create a queue and tie it to the bridge interface. I might even be able to use a simple queue. This seems like a round-about way of doing it, though.