Add cdn traffic routing/shaping information
This commit is contained in:
parent
d58e4eebc9
commit
5058891211
|
@ -0,0 +1,44 @@
|
||||||
|
digraph G {
|
||||||
|
node [ shape=box ]
|
||||||
|
rankdir=LR;
|
||||||
|
|
||||||
|
label="Anycasting\nAll locations announce same IPs\nRouting based traffic shaping"
|
||||||
|
|
||||||
|
internet [ label="The internet" shape=oval ]
|
||||||
|
internet->upstreamrouter1 [ label="Forward traffic for A.B.C.D/24" ]
|
||||||
|
internet->upstreamrouter2 [ label="Forward traffic for A.B.C.D/24" ]
|
||||||
|
internet->upstreamrouter3 [ label="Forward traffic for A.B.C.D/24" ]
|
||||||
|
|
||||||
|
subgraph cluster_pop1 {
|
||||||
|
label="PoP 1"
|
||||||
|
router1 [ label="Our router" ];
|
||||||
|
upstreamrouter1 [ label="Upstream router" ];
|
||||||
|
router1->upstreamrouter1 [ label="Announces A.B.C.D/24" ]
|
||||||
|
}
|
||||||
|
clients1 [ label="Client set 1" ]
|
||||||
|
clients1->internet [ label="Access via Internet" ]
|
||||||
|
clients1->router1 [ label="Using PoP 1\nGeographic location not guaranteed to be nearest" style=dashed ]
|
||||||
|
|
||||||
|
subgraph cluster_pop2 {
|
||||||
|
label="PoP 2"
|
||||||
|
router2 [ label="Our router" ];
|
||||||
|
upstreamrouter2 [ label="Upstream router" ];
|
||||||
|
router2->upstreamrouter2 [ label="Announces A.B.C.D/24" ]
|
||||||
|
}
|
||||||
|
clients2 [ label="Client set 2" ]
|
||||||
|
clients2->internet [ label="Access via Internet" ]
|
||||||
|
clients2->router2 [ label="Using PoP 2\nGeographic location not guaranteed to be nearest" style=dashed ]
|
||||||
|
|
||||||
|
subgraph cluster_pop3 {
|
||||||
|
label="PoP 3"
|
||||||
|
router3 [ label="Our router" ];
|
||||||
|
upstreamrouter3 [ label="Upstream router" ];
|
||||||
|
router3->upstreamrouter3 [ label="Announces A.B.C.D/24" ]
|
||||||
|
}
|
||||||
|
clients3 [ label="Client set 3" ]
|
||||||
|
clients3->internet [ label="Access via Internet" ]
|
||||||
|
clients3->router3 [ label="Using PoP 3\nGeographic location not guaranteed to be nearest" style=dashed ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
digraph G {
|
||||||
|
node [ shape=box ]
|
||||||
|
rankdir=LR;
|
||||||
|
|
||||||
|
label="GeoDNS\nAnswering DNS based on Source IP of the clients\nUsually different IPs per Pop"
|
||||||
|
|
||||||
|
geodns [ label="DNS server with GeoDNS policies enabled" shape=oval ]
|
||||||
|
|
||||||
|
subgraph cluster_pop1 {
|
||||||
|
label="Pop 1"
|
||||||
|
router1 [ label="Our router" ];
|
||||||
|
upstreamrouter1 [ label="Upstream router" ];
|
||||||
|
router1->upstreamrouter1 [ label="Announces A.B.1.D/24" ]
|
||||||
|
}
|
||||||
|
clients1 [ label="Client set 1" ]
|
||||||
|
clients1->geodns [ label="Q: Where is domain example.com?" ]
|
||||||
|
geodns->clients1 [ label="A: On an IP of Pop 1" ]
|
||||||
|
clients1->router1 [ label="Using Pop 1 via pop specific IPs" ]
|
||||||
|
|
||||||
|
subgraph cluster_pop2 {
|
||||||
|
label="Pop 2"
|
||||||
|
router2 [ label="Our router" ];
|
||||||
|
upstreamrouter2 [ label="Upstream router" ];
|
||||||
|
router2->upstreamrouter2 [ label="Announces A.B.2.D/24" ]
|
||||||
|
}
|
||||||
|
clients2 [ label="Client set 2" ]
|
||||||
|
clients2->geodns [ label="Q: Where is domain example.com?" ]
|
||||||
|
geodns->clients2 [ label="A: On an IP of Pop 2" ]
|
||||||
|
clients2->router2 [ label="Using Pop 2 via pop specific IPs" ]
|
||||||
|
|
||||||
|
subgraph cluster_pop3 {
|
||||||
|
label="Pop 3"
|
||||||
|
router3 [ label="Our router" ];
|
||||||
|
upstreamrouter3 [ label="Upstream router" ];
|
||||||
|
router3->upstreamrouter3 [ label="Announces A.B.3.D/24" ]
|
||||||
|
}
|
||||||
|
clients3 [ label="Client set 3" ]
|
||||||
|
clients3->geodns [ label="Q: Where is domain example.com?" ]
|
||||||
|
geodns->clients3 [ label="A: On an IP of Pop 3" ]
|
||||||
|
clients3->router3 [ label="Using Pop 3 via pop specific IPs" ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
digraph G {
|
||||||
|
node [ shape=box ]
|
||||||
|
rankdir=LR;
|
||||||
|
|
||||||
|
label="GeoIP\nThe CDN decides what to do based on the source IP\nAn inside CDN decision"
|
||||||
|
|
||||||
|
clients1 [ label="Client set 1" ]
|
||||||
|
clients1->edgenode1 [ label="Access content served by CDN" ]
|
||||||
|
clients2 [ label="Client set 2" ]
|
||||||
|
clients2->edgenode2 [ label="Access content served by CDN" ]
|
||||||
|
clients3 [ label="Client set 3" ]
|
||||||
|
clients3->edgenode3 [ label="Access content served by CDN" ]
|
||||||
|
|
||||||
|
subgraph cluster_pop1 {
|
||||||
|
label="Any Pop"
|
||||||
|
edgenode1 [ label="Edge Node" ]
|
||||||
|
rules1 [ label="Tenant/Domain specific rules" shape=oval ]
|
||||||
|
edgenode1->rules1 [ label="Q: What to do with IP of client set 1?" ]
|
||||||
|
rules1->edgenode1 [ label="A: (f.i.) Display \"Not available in this country\"" ]
|
||||||
|
|
||||||
|
edgenode2 [ label="Edge Node" ]
|
||||||
|
edgenode2->rules1 [ label="Q: What to do with IP of client set 2?" ]
|
||||||
|
rules1->edgenode2 [ label="A: (f.i.) Display \"Server from a particular origin\"" ]
|
||||||
|
|
||||||
|
edgenode3 [ label="Edge Node" ]
|
||||||
|
edgenode3->rules1 [ label="Q: What to do with IP of client set 3?" ]
|
||||||
|
rules1->edgenode3 [ label="A: (f.i.) Display \"Server content as usual\"" ]
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue