Hi all, I am working on a feature to support custom delivery service domain.
Currently in traffic ops, you can configure a “HOST_REGEXP” for a delivery service with pattern like: 1) .*\.my-subdomain\..* 2) my-subdomain.topdomain.com I think pattern 1) is well known by all of us. However pattern 2) is allowed in traffic ops code, but not well supported. The Custom Delivery Service Domain feature will fully support pattern 2) and allow “topdomain.com” be different with the domain name of a CDN. This will allow to support different domains within a single CDN, and share the router/monitor/cache servers with a CDN for different (top level) domains. And “my-subdomain.topdomain.com” in pattern 2) will be used as the RFQDN instead of “tr.my-subdomain.cdndomain.com” or “edge.my-subdomain.cdndomain.com”. This way, user can fully customize the whole domain for a delivery service. The NS records for pattern 2) will be the fqdn of the routers in this CDN. Any comments/suggestions will be welcome. The draft code is ready and under testing. And an example is attached in the end of this email. Thanks, Zhilin Here is the example, suppose we have a CDN with domain name “ipcdn.mycompany.com”. And configured 2 delivery services with the following “HOST_REGEXP”: DS1: .*\.test\..* DS2: test.wholesaler.com Then in traffic router, the following zone files will be generated: # ls /opt/traffic_router/var/auto-zones/ test.ipcdn.mycompany.com. test.wholesaler.com. ipcdn.mycompany.com. # cat /opt/traffic_router/var/auto-zones/test.ipcdn.mycompany.com. test.ipcdn.mycompany.com. 3600 IN NS crdc-router-1.ipcdn.mycompany.com. test.ipcdn.mycompany.com. 3600 IN NS crdc-router-2.ipcdn.mycompany.com. test.ipcdn.mycompany.com. 86400 IN SOA crdc-router-1.ipcdn.mycompany.com. traffic_ops.test.ipcdn.mycompany.com. 2017062108 28800 7200 604800 30 crdc-edge-se-1.test.ipcdn.mycompany.com. 3600 IN A 192.168.122.112 crdc-edge-se-2.test.ipcdn.mycompany.com. 3600 IN A 192.168.122.172 crdc-edge-se-3.test.ipcdn.mycompany.com. 3600 IN A 192.168.122.110 crdc-edge-se-4.test.ipcdn.mycompany.com. 3600 IN A 192.168.122.252 crdc-router-1.test.ipcdn.mycompany.com. 3600 IN A 192.168.122.175 crdc-router-2.test.ipcdn.mycompany.com. 3600 IN A 192.168.122.96 tr.test.ipcdn.mycompany.com. 3600 IN A 192.168.122.96 tr.test.ipcdn.mycompany.com. 3600 IN A 192.168.122.175 # cat /opt/traffic_router/var/auto-zones/test.wholesaler.com. test.wholesaler.com. 3600 IN A 192.168.122.96 test.wholesaler.com. 3600 IN A 192.168.122.175 test.wholesaler.com. 3600 IN NS crdc-router-1.ipcdn.mycompany.com. test.wholesaler.com. 3600 IN NS crdc-router-2.ipcdn.mycompany.com. test.wholesaler.com. 86400 IN SOA crdc-router-1.ipcdn.mycompany.com. traffic_ops.test.wholesaler.com. 2017062108 28800 7200 604800 30 crdc-edge-se-1.test.wholesaler.com. 3600 IN A 192.168.122.112 crdc-edge-se-2.test.wholesaler.com. 3600 IN A 192.168.122.172 crdc-edge-se-3.test.wholesaler.com. 3600 IN A 192.168.122.110 crdc-edge-se-4.test.wholesaler.com. 3600 IN A 192.168.122.252 crdc-router-1.test.wholesaler.com. 3600 IN A 192.168.122.175 crdc-router-2.test.wholesaler.com. 3600 IN A 192.168.122.96 # cat /opt/traffic_router/var/auto-zones/ipcdn.mycompany.com. ipcdn.mycompany.com. 3600 IN NS crdc-router-1.ipcdn.mycompany.com. ipcdn.mycompany.com. 3600 IN NS crdc-router-2.ipcdn.mycompany.com. ipcdn.mycompany.com. 86400 IN SOA crdc-router-1.ipcdn.mycompany.com. traffic_ops.ipcdn.mycompany.com. 2017062108 28800 7200 604800 30 crdc-router-1.ipcdn.mycompany.com. 3600 IN A 192.168.122.175 crdc-router-2.ipcdn.mycompany.com. 3600 IN A 192.168.122.96 And in one of the cache server, the following content will be generated for remap.config: # cat /opt/trafficserver/etc/trafficserver/remap.config # DO NOT EDIT - Generated for crdc-edge-se-2 by Traffic Ops (https://localhost) on Tue Jun 13 05:59:22 UTC 2017 map http://crdc-edge-se-2.test.ipcdn.mycompany.com/ http://192.168.122.156/ @plugin=header_rewrite.so @pparam=dscp/set_dscp_0.config map http://crdc-edge-se-2.test.wholesaler.com/ http://192.168.122.156/ @plugin=header_rewrite.so @pparam=dscp/set_dscp_0.config
