Multiple MAC addresses (Ethernet IDs)

How is one supposed to handle this in a computer account?

For example, a MacBook might connect to the network via wired ethernet OR Airport and each has a different MAC address. I can see no provision for multiple IDs in a Computer Account, but you cannot use the same name on 2 different accounts and in any case, having to create 2 accounts means a lot of duplication so it's not ideal.

What is the 'correct' way to deal with this in Open Directory?

MacPro - Dual 3GHz Quad Core Xeon, Mac OS X (10.4.10), 30" HD display

Posted on Dec 5, 2007 1:07 AM

Reply
9 replies

Dec 5, 2007 3:15 AM in response to UKenGB

OK, I see. You can add additional values using the Inspector. However, this is far from satisfactory. Apple actively discourage direct editing of the records, yet without resorting to the Inspector, you CANNOT see these additional values.

Yet again, as with most of the rest of the Leopard Server management tools it seems, the GUI lets it down.

Dec 6, 2007 1:58 AM in response to Gerrit DeWitt

If by that you mean the wired Ethernet interface, how does the Directory Server identify a machine that connects wirelessly, since you seem to indicate that this MAC address will not be used, but the Server cannot know what that client's wired address is.

AFAICT, the Computer record must contain the MAC addresses of ALL interfaces that might be used by that machine to connect so that it can be identified however it connects. When setting up the XServe, Setup automatically created the original 'Computer' records for this machine and both its built-in Ethernet ports are there, as I described.

I can't see how it could work any other way.

Dec 6, 2007 11:46 AM in response to UKenGB

If Im not mistaken, the Ethernet ID (MAC address) in the context of OD/MCX is not used for networking or payload at all, its just a reliable unique identifier to use that is specific to each computer object and computer record. It doesn't matter if that interface is active or not as long as it can be referenced by the OD client for purposes of identification. If the desktop Mac has 2 NICs, use the MAC from the "en0" NIC (Ethernet port #1 of 2). Likewise for Airport. USe the MAC from the Ethernet NIC for ID purposes, not the Airport MAC address, regardless if you connect via wi-fi or not.

Dec 7, 2007 1:07 AM in response to Gerrit DeWitt

I understand what you are saying, but:-

1 - I cannot see how that can work and
2 - That's not how the OSX installer does it.

because:-

1 - When a client connects, the Directory Server needs to be able to identify that machine to see what settings are appropriate (e.g. User access and Login window prefs). If the record only has the Ethernet ID to identify it, but that client actually connects via Airport, the Server CANNOT possibly find the appropriate Computer record.

2 - The OSX Leopard Server install creates a Computer record for the actual server itself (unsurprisingly) and since this is an Xserve, it has 2 built-in ethernet interfaces, each of course with a different MAC address and they are BOTH stored in the computer record, as 2 Values for that attribute, as I previously described.

2 makes sense to me due to problem 1 above.

Dec 7, 2007 9:09 AM in response to UKenGB

I am guessing what happens is that when an OD client computer detects an active network connection (on any of its network interfaces), it attempts to communicate with the OD server. In this initial communication with the OD server it sends the MAC address of en0 to the OD server. The OD server looks at this MAC address and searches for a computer entry with a matching MAC address. If the MAC address is found the OD server responds back to the client computer with whatever managed settings are configured for the computer.

Dec 9, 2007 12:01 PM in response to UKenGB

Well, maybe this will clear things up:

First off, the dsAttrTypeStandard:ENetAddress attribute is used for +more than just MCX+, so the server's setup assistant populates that that value for the server's computer record automatically.

But here's how the client/server communicate using the first built-in Ethernet address:

+... the Directory Server needs to be able to identify that machine...+

You're assuming that the client connects and the directory server then just pushes the information that the client needs. That's not what happens, though. Instead:

The client can read the entire directory after it has been connected to the directory server via Directory Utility. If you bind, a computer account is created and the client connects to the directory using that account; otherwise (without binding), your OD server's directory is read-only for any connection to it.

At login time, the managed client application maintains an updated MCX cache in the client's local directory at /Local/Default/Config/mcx_cache (/NetInfo/DefaultLocalNode/Config/mcx_cache for 10.4). It is able to update this cache by consulting the Computer and Computer group (list) records of all directory domains in its authentication search path (as set in Directory Utility). The client looks for a computer record with dsAttrTypeStandard:ENetAddress that matches its own first Ethernet port, and reads the MCXFlags and MCXSettings attributes from that record. In this way, the client simply compares the value of dsAttrTypeStandard:ENetAddress to the value of its first Ethernet port, regardless of the network interface used to connect. Thus, it's just an identifier.

In fact, you can prove this to yourself in the following ways:

1. Don't bind a computer to the directory, or bind it and then deliberately change the value of its ENetAddress attribute in its computer record to something that's wrong (like 00:00:00:00:00:00). Now, back on the client, use dscl from the command line to navigate into the authentication search path and read any computer record there. (See *man dscl* for more on how to use the tool.)

2. Apply managed client settings to the "all other computers" computer account, which is a guest computer account. In the absence of a computer account with matching ENetAddress, the client reads from this guest account, which has no value for its ENetAddress attribute.

--Gerrit

Dec 10, 2007 5:31 AM in response to Gerrit DeWitt

OK, that makes sense. I have both ethernet and AirPort addresses in there, but there's no reason why that should be a problem and indeed doesn't seem to be as the computer is correctly identified (only specified users can log in).

I do however, have a problem with portable Home directories that I'll take up in a more appropriate topic. Would be great to get some help there as I'm stuck.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Multiple MAC addresses (Ethernet IDs)

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