Yes. But not in a traditional IP Router or Load Balancer sense. 

A qpid-dispatch router is not routing IP addresses or rewriting L2 traffic
to forward low-level network packets between the two networks.

Instead qpid-disptach is completely terminating the traffic at L7, the 
Application Layer,
on both networks. Then it forwards application-level traffic between the 
networks
through complete L1-L7 network endpoints, one on each network.

I wouldn't try to use "Two-Armed Router" in documentation for qpid-dispatch.

----- Original Message -----
> From: "Michael Goulish" <[email protected]>
> To: [email protected]
> Sent: Friday, March 19, 2021 1:03:29 PM
> Subject: [qdr] Is this a 'Two-Armed Router' ?
> 
> I believe I have successfully run a "two-armed" router experiment.
> Please take a look at my setup and see if I am correct.
> 
> Two machines, Colossus-Guardian and Brontonomicon. They are connected by
> two separate pairs of network interface cards.
> 
> The fast cards are 40 Gbits/sec and have just a crossover cable between
> them.  The slow cards are 1 Gbit/sec and are attached to a switch.
> 
> Colossus-Guardian's address on the fast interface is 10.10.10.2 .
> On the slow interface its address is 192.168.1.125 .
> 
> I am going to run a Dispatch Router on Bronto. It will accept tcp traffic
> from an HTTP load generator over the fast link, and forward that traffic to
> a webserver over the slow link.
> 
> Does that constitute a two-armed router?
> 
> Here is the config file I used for the router running on Bronto:
> 
> 
> #-------------------------------------------
> # This router is running on Brontonomicon.
> #-------------------------------------------
> router {
>   mode: interior
>   id: A
>   workerThreads: 32
> }
> 
> #-------------------------------------------------
> # Listen for incoming TCP traffic on 40 Gbit
> # interface with Colossus-Guardian.
> #-------------------------------------------------
> tcpListener {
>   host: 10.10.10.1
>   port: 9000
>   address: two-armed
> }
> 
> #----------------------------------------------------
> # Connect out to Colossus-Guardian for TCP traffic
> # on the 1 Gbit/sec interface.
> #----------------------------------------------------
> tcpConnector {
>   host: 192.168.1.125
>   port: 8080
>   address: two-armed
> }
> 
> Now on CG I start a webserver that is listening on port 8080.
> It is this tiny Go program:
> 
> package main
> 
> import (
>          "fmt"
>          "html"
>          "net/http"
>        )
> 
> func main() {
>   http.HandleFunc ( "/",
>                     func(w http.ResponseWriter, r *http.Request) {
>                       fmt.Fprintf(w,
>                                   "Hello, %q",
>                                   html.EscapeString(r.URL.Path))
>                     })
>   http.ListenAndServe ( ":8080", nil )
> }
> 
> 
> Then I start the 'hey' HTTP load generator, also on CG, with this command:
> 
> hey -c 10  -z 60s http://10.10.10.1:9000/index.html
> 
> That tells it to use 10 senders in parallel and to run for 60 seconds.
> After a minute, I get this output:
> 
> Summary:
>   Total:        60.0014 secs
>   Slowest:      0.0066 secs
>   Fastest:      0.0002 secs
>   Average:      0.0006 secs
>   Requests/sec: 22584.9772
> 
>   Total data:   27102620 bytes
>   Size/request: 27 bytes
> 
> 
> So!    Did I just successfully run a two-armed router ?
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to