From f04e3473873e1534c4ee1f703d458e96ad3d70cd Mon Sep 17 00:00:00 2001 From: Paul Weil Date: Wed, 28 Jan 2015 12:55:21 -0500 Subject: [PATCH] router documentation --- _images/router_model.png | Bin 0 -> 51282 bytes architecture/openshift_model.adoc | 18 +++ architecture/routing.adoc | 261 +++++++++++++++++++++++++++++- 3 files changed, 277 insertions(+), 2 deletions(-) create mode 100644 _images/router_model.png diff --git a/_images/router_model.png b/_images/router_model.png new file mode 100644 index 0000000000000000000000000000000000000000..1d25fd816a0ed1273fbe5d3187f1d986897e1018 GIT binary patch literal 51282 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%0AREv1@$D8$zh#gO6YJ7WTJl~+^vay7~ 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. Finally, a test using +`dig` (available in the `bind-utils` package) is shown from the vagrant environment that shows multiple answers for the +same lookup. Doing multiple pings show the resolution swapping between IP addresses. + + + +---- +#### named.conf - add a new zone that points to your file + zone "v3.rhcloud.com" IN { + type master; + file "v3.rhcloud.com.zone"; + }; + + +#### v3.rhcloud.com.zone - contains the round robin mappings for the DNS lookup + $ORIGIN v3.rhcloud.com. + + @ IN SOA . v3.rhcloud.com. ( + 2009092001 ; Serial + 604800 ; Refresh + 86400 ; Retry + 1206900 ; Expire + 300 ) ; Negative Cache TTL + IN NS ns1.v3.rhcloud.com. + ns1 IN A 127.0.0.1 + * IN A 10.245.2.2 + IN A 10.245.2.3 + +#### Testing the entry + + + [vagrant@openshift-master ~]$ dig hello-openshift.shard1.v3.rhcloud.com + + ; <<>> DiG 9.9.4-P2-RedHat-9.9.4-16.P2.fc20 <<>> hello-openshift.shard1.v3.rhcloud.com + ;; global options: +cmd + ;; Got answer: + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36389 + ;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2 + ;; WARNING: recursion requested but not available + + ;; OPT PSEUDOSECTION: + ; EDNS: version: 0, flags:; udp: 4096 + ;; QUESTION SECTION: + ;hello-openshift.shard1.v3.rhcloud.com. IN A + + ;; ANSWER SECTION: + hello-openshift.shard1.v3.rhcloud.com. 300 IN A 10.245.2.2 + hello-openshift.shard1.v3.rhcloud.com. 300 IN A 10.245.2.3 + + ;; AUTHORITY SECTION: + v3.rhcloud.com. 300 IN NS ns1.v3.rhcloud.com. + + ;; ADDITIONAL SECTION: + ns1.v3.rhcloud.com. 300 IN A 127.0.0.1 + + ;; Query time: 5 msec + ;; SERVER: 10.245.2.3#53(10.245.2.3) + ;; WHEN: Wed Nov 19 19:01:32 UTC 2014 + ;; MSG SIZE rcvd: 132 + + [vagrant@openshift-master ~]$ ping hello-openshift.shard1.v3.rhcloud.com + PING hello-openshift.shard1.v3.rhcloud.com (10.245.2.3) 56(84) bytes of data. + ... + ^C + --- hello-openshift.shard1.v3.rhcloud.com ping statistics --- + 2 packets transmitted, 2 received, 0% packet loss, time 1000ms + rtt min/avg/max/mdev = 0.272/0.573/0.874/0.301 ms + [vagrant@openshift-master ~]$ ping hello-openshift.shard1.v3.rhcloud.com + ... + +----