Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

Mavericks Caching Server Doesn't Work

Hey Everyone,


So I upgraded to 10.9, which is great, purchased the new Server, which is great and no matter what I do I can't get it to work. Which is not so great.


Here's the story:


1) Clean install of 10.9 on 2013 mac mini. Multiple times in fact.


2) Install OS > Configure Network (fixed eth ip) > Disable Wifi > Set Hostname > Configure App Store ID > Download Server > Install Server > Enable Caching.


3) Server is not a gateway and is connected directly to the LAN with a fixed IP (via time capsule). External IP confirmed to be the same between Server logs and the clients. Power saving is disabled (mini is on 24/7). Firewall is disabled.


4) Multiple clients running latest OSX / iOS. All using the same Apple ID as the Server. Tried some clients with a different ID from the same region (US) and from a different region (EU).


5) No matter what I do, the only stuff that's being cached is the system updates (itunes / codecs / etc.). Not a single OSX / iOS app is being cached.


6) Tried a variety of .plist changes, increased the log verbosity. No errors in Debug.log: normal registration, etc. But not a single OSX / iOS app is being cached. Downloading apps on clients doesn't do anything (i.e. doesn't spawn a single line of log), even with logging = verbose. Restarting the services doesn't reveal any issues, just a regular registration every single time.


7) Asked Apple for help, they asked for log files and remain silent since then (couple of days now).


I wasted so much time on this already. I'd be really grateful if anyone pointed me in the right direction (other than a wall with a "bang head here" poster).

Posted on Oct 27, 2013 2:30 AM

Reply
111 replies

Oct 30, 2013 4:00 AM in response to timesking

Ok i managed to get mine working after having the same trouble with no apps at all caching.


So here's what happened.


Did a check on my host name in terminal


sudo changeip - checkhostname


My current Hostname was wrong, so change that to the correct name


scutil --set HostName (hostname of my server)


Then the DNS resolved correctly


Enabled DNS - Then make sure your hostname resolves to it's self

Enabled Software Update

Enabled Caching


Job done, iOS and Mac apps syncing.


I hope this helps everyone.

Oct 30, 2013 4:42 AM in response to t.pawelek

@yesdevnull - Great write-up. I just updated an app on my iPad, and it looks like it indeed did serve the app from the cache. Very cool. Though I swear I didn't see this behavior a few days ago, but oh well, glad it's working nicely now.


$ tail -F /Library/Server/Caching/Logs/Debug.log

2013/10/30 07:31:38:736 #2zzN6AOo1Xn4 ECResponse[0x7f90434454e0]: Request for http://a1694.phobos.apple.com/us/r1000/014/Purple6/v4/fc/09/81/fc09818a-90f9-e6e 9-d8ac-5f4299e93d4d/mzps4601641637287501018.D2.pd.ipa

2013/10/30 07:31:38:738 #2zzN6AOo1Xn4 ECAssetHandler[0x7f90434865e0]: Asset http://a1694.phobos.apple.com/us/r1000/014/Purple6/v4/fc/09/81/fc09818a-90f9-e6e 9-d8ac-5f4299e93d4d/mzps4601641637287501018.D2.pd.ipa, path /Library/Server/Caching/Data/1C6459B5-527E-4EAF-BDC9-3EDA98CB9FDA, cached length 7805062, MD5 <0448a7de 92562047 73de7191 17ecf267>, last-modified Wed, 30 Oct 2013 10:44:39 GMT, extents [0,7805062]

2013/10/30 07:31:38:738 #2zzN6AOo1Xn4 ECAssetRequestor[0x7f9043448fa0]: Data already cached for asset http://a1694.phobos.apple.com/us/r1000/014/Purple6/v4/fc/09/81/fc09818a-90f9-e6e 9-d8ac-5f4299e93d4d/mzps4601641637287501018.D2.pd.ipa, issuing If-Modified-Since request

2013/10/30 07:31:38:874 #2zzN6AOo1Xn4 ECResponse[0x7f90434454e0]: Info loaded: response code = 304, file length = 7805062, reader = 0x7f904345dda0

2013/10/30 07:31:38:874 #2zzN6AOo1Xn4 ECAssetHandler[0x7f90434865e0]: Opened extent [0,7805062] for reading at offset 0 (offset into file = 0)

2013/10/30 07:31:38:874 #2zzN6AOo1Xn4 ECAssetRequestor[0x7f9043448fa0]: Connection closed by source at offset 0

2013/10/30 07:31:43:161 #2zzN6AOo1Xn4 7805062 bytes served, 7805062 from cache, 0 downloaded from origin, 0 from peers

2013/10/30 07:31:43:161 #2zzN6AOo1Xn4 ECCacheReader[0x7f904345dda0]: canceled at offset = 7805062

2013/10/30 07:31:43:162 #2zzN6AOo1Xn4 ECAssetHandler[0x7f90434865e0]: Removed reader 0x7f904345dda0 at 7805062/-1, readers [], requestors [], will cancel 0 requestors >= 0 for asset http://a1694.phobos.apple.com/us/r1000/014/Purple6/v4/fc/09/81/fc09818a-90f9-e6e 9-d8ac-5f4299e93d4d/mzps4601641637287501018.D2.pd.ipa

2013/10/30 07:31:43:162 Totals: 15.16 GB returned to clients, 6.15 GB requested from servers (6.15 GB from origin, 0 bytes from peers)

Oct 30, 2013 6:31 AM in response to yesdevnull

yesdevnull: this article doesn't help at all. It's like going to a garage with broken engine only to have the workers say: "Look how the engines work in all the other cars! Look! They work! LOOK!!"


What I did this morning was put a wireshark on the server only to find out that the ios clients never ever send a single byte over to it. Whoever put a blame on the Apple servers that are supposed to redirect the clients over to a local IP, pretty much nailed it.

Oct 30, 2013 7:58 AM in response to t.pawelek

Once OS X Server DNS is passing the sudo changeip -checkhostname test, next confirm that your clients are referencing your OS X Server for DNS. If not, then configure your DNS server for your LAN via your local DHCP server settings, or (less likely) via static IP settings in the clients.


Also: do not use the .local domain as your DNS domain.

Oct 30, 2013 9:51 AM in response to MrHoffman

Confirmed. I can see DNS queries in both wireshark and bind's logfile. Still, it doesn't affect caching services at all. Check my previous posts, I'm using a fqdn for my server. I got its A/PTR entries in all of these:


- server's bind,

- lan's dns cache,

- actual domain's dns servers.


I fully understand and agree that DNS is a key to some services malfunction. Unfortunately, it simply is not the case here.

Nov 1, 2013 6:24 PM in response to t.pawelek

Just to clarify something for my own setup. I have my isp's router connected to the outside world. It is serving DHCP to my Time Capsule. Time Capsule is serving DHCP to everything on my network, including a reserved ip for my server (Mavericks). Should I need anything more than to turn on caching for it to work, or do I need DNS on the server running. My Caching sits at 597 Mb Mac apps and nothing else. I have tried many different app installs on Macs and ios's. The server has been up for 5 days now. Also:


mac-server:com.apple.launchd dcosh$ sudo changeip -checkhostname

Password:


Primary address = 10.0.1.50


Current HostName = server.local


The DNS hostname is not available, please repair DNS and re-run this tool.



dirserv:success = "success"

Does Time Capsule not do this for me? I like simplicity so I don't want to run any services I don't need.

Thanks

Nov 1, 2013 6:53 PM in response to fieldgeek

fieldgeek wrote:


mac-server:com.apple.launchd dcosh$ sudo changeip -checkhostname

Password:


Primary address = 10.0.1.50


Current HostName = server.local


The DNS hostname is not available, please repair DNS and re-run this tool.


Time Capsule does not contain a DNS server.


ISP DNS services will not work here, as you're on a NAT'd network.


You'll want to ensure there's only one NAT device here; either your ISP gateway device, or your Time Capsule. Having so-called double NAT — two devices in sequence between your computer and the Internet, and each performing NAT — tends to cause network problems, too. (Caching Server does try to verify external addresses, and it wouldn't surprise me to learn that double NAT might confuse it.)


You're also using a top-level domain (.local) that's not yours to use for DNS — that top-level domain is reserved to Bonjour. Trying to mix Bonjour and local DNS is something the Apple network engineers have recommended against.


In addition to ensuring only one layer of NAT at most, also set up unicast DNS preferably using a domain name you've registered, and start local DNS services on your network. Here's a very detailed write-up on how to set up DNS on OS X Server.

Nov 1, 2013 8:33 PM in response to MrHoffman

Thanks for the quick response. So I tried setting time capsule on a DMZ with my isp's router, but it still complained of double nat. I guess it isn't going to be that easy. I know I can set up time capsule into bridge mode to solve this part way. My ISP's router is pretty locked down, I don't have access to the DHCP settings, I can't even turn it off and I know it would be cleanest for server to provide DHCP. Will portforwarding on the router to server for DNS be enough or will I have to manualy insert it in each machine's DNS list?


Thanks

Nov 2, 2013 9:30 AM in response to fieldgeek

As much as I appreciate the fact, that DNS & NAT might be crucial for some services to work properly, I really do not see how double NAT and lack of DNS server should have anything to do with the Caching. According to the interwebz, caching works the following way:


1) server registers with Apple (obviously - using its public IP) reporting its local ip, under which it's accessible to clients in its subnet,

2) clients check with Apple if it knows of any funcional local cache server - at this stage Apple receives the client inquiry from the same external IP as the one that the server used in step (1),

3) if found, Apple returns the local IP of the server to the client, which then does the update via server's caching service.


So, if the above is true, then lack of local DNS server as well as double, triple or quadruple NATs should have absolutely nothing to do with the caching service working or not.

Mavericks Caching Server Doesn't Work

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.