Add cdn traffic routing/shaping information
This commit is contained in:
parent
d58e4eebc9
commit
5058891211
3 changed files with 119 additions and 0 deletions
44
cdn-anycast.dot
Normal file
44
cdn-anycast.dot
Normal file
|
@ -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 ]
|
||||
|
||||
|
||||
|
||||
}
|
44
cdn-geodns.dot
Normal file
44
cdn-geodns.dot
Normal file
|
@ -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" ]
|
||||
|
||||
|
||||
|
||||
}
|
31
cdn-geoip.dot
Normal file
31
cdn-geoip.dot
Normal file
|
@ -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 a new issue