跳过导航链接
退出打印视图
| Oracle VM Server for SPARC 2.0 管理指南

搜索范围:

- 本文档
- 整个文档库

### 自动或手动分配 MAC 地址

您必须有足够的介质访问控制 (media access control, MAC) 地址，以便分配给计划使用的一定数目的逻辑域、虚拟交换机和虚拟网络。可以让 Logical Domains Manager 自动为逻辑域、虚拟网络 (`vnet`) 和虚拟交换机 (`vsw`) 分配 MAC 地址，也可以从您自己的已分配 MAC 地址池中手动分配 MAC 地址。设置 MAC 地址的 `ldm` 子命令是 `add-domain`、`add-vsw`、`set-vsw`、`add-vnet` 和 `set-vnet`。如果您未在这些子命令中指定 MAC 地址，Logical Domains Manager 会自动分配一个地址。

让 Logical Domains Manager 分配 MAC 地址的优势是，它能够利用专用于逻辑域的 MAC 地址块。此外，Logical Domains Manager 可以检测并防止 MAC 地址与同一子网中其他 Logical Domains Manager 实例发生冲突。这样，您就不必手动管理您的 MAC 地址池。

创建逻辑域或将网络设备配置到域中时，即会分配 MAC 地址。此外，除非删除了设备或逻辑域本身，否则此地址分配是持久性的。

#### 分配给 Logical Domains 的 MAC 地址范围

已经为 Logical Domains 分配了以下 512K MAC 地址块：

`00:14:4F:F8:00:00 ~ 00:14:4F:FF:FF:FF`

较低的 256K 地址由 Logical Domains Manager 用于自动 MAC 地址分配，并且您不能手动请求此范围中的地址：

`00:14:4F:F8:00:00 - 00:14:4F:FB:FF:FF`

您可以使用此范围内的上一半地址执行手动 MAC 地址分配：

`00:14:4F:FC:00:00 - 00:14:4F:FF:FF:FF`

#### 自动分配算法

如果您未在创建逻辑域或网络设备时指定 MAC 地址，Logical Domains Manager 会自动为该逻辑域或网络设备分配 MAC 地址。为了获得此 MAC 地址，Logical Domains Manager 会重复尝试选择地址，然后检查是否存在潜在冲突。

在选择可能的地址之前，Logical Domains Manager 先确定专用于此目的的数据库中是否保存有最近释放的、自动分配的地址（请参见释放的 MAC 地址）。如果有，Logical Domains Manager 会从数据库中选择该候选地址。

如果没有最近释放的地址，则会从专为此目的留出的 256K 地址范围中随机选择 MAC 地址。随机选择 MAC 地址可减少重复的 MAC 地址被选作候选地址的几率。

随后将对照其他系统上的其他 Logical Domains Manager 检查所选的地址，以防止实际分配重复的 MAC 地址。检测重复的 MAC 地址中介绍了采用的算法。如果该地址已经被分配，Logical Domains Manager 将重复操作，选择另一个地址，再检查是否存在冲突。此过程将一直持续下去，直至找到没有分配的 MAC 地址，或超出了 30 秒的时间限制。如果达到了时间限制，则创建设备失败，并显示类似以下内容的错误消息。

    Automatic MAC allocation failed.  Please set the vnet MAC address manually.

#### 检测重复的 MAC 地址

为避免将同一个 MAC 地址分配给不同的设备，一个 Logical Domains Manager 将与其他系统上的其他 Logical Domains Manager 进行核实，方法是通过控制域的默认网络接口发送多址广播消息，其中包括 Logical Domains Manager 希望分配给设备的地址。尝试分配 MAC 地址的 Logical Domains Manager 会等待一秒钟的时间，以便返回响应。如果该 MAC 地址已经分配给另一个启用 Logical Domains 的系统上的不同设备，则该系统上的 Logical Domains Manager 会发送回包含相关 MAC 地址的响应。如果发出请求的 Logical Domains Manager 收到响应，它便知道所选的 MAC 地址已被分配，会选择其他地址，并重复上述操作。

默认情况下，这些多址广播消息仅发送到同一子网中的其他 Logical Domains Manager；默认生存时间 (time-to-live, TTL) 为 `1`。可以使用服务管理工具 (Service Management Facility, SMF) 属性 `ldmd/hops` 配置 TTL。

每个 Logical Domains Manager 负责：

- 侦听多址广播消息

- 跟踪分配给域的 MAC 地址

- 查找重复项

- 为避免产生重复项而作出响应

如果系统上的 Logical Domains Manager 由于某种原因关闭，则在 Logical Domains Manager 关闭期间可能会产生重复的 MAC 地址。

创建逻辑域或网络设备时会执行自动 MAC 分配，而且自动 MAC 分配会一直保持到该设备或逻辑域被删除。

注 - 创建逻辑域或网络设备及启动逻辑域时，会执行检查重复 MAC 地址的检测。

#### 释放的 MAC 地址

与自动 MAC 地址相关联的逻辑域或设备被删除后，相应的 MAC 地址将保存到最近释放的 MAC 地址的数据库中，供以后在该系统上使用。之所以保存这些 MAC 地址，是为了防止动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 服务器的 Internet 协议 (Internet Protocol, IP) 地址耗尽。如果 DHCP 服务器分配 IP 地址，这些服务器会在一段时间（租用时间）内都执行 IP 地址的分配与释放。租用期限通常配置为较长的一段时间，一般是几小时或几天。如果创建和删除网络设备的频率相当高，而 Logical Domains Manager 不自动重用已分配的 MAC 地址，则已分配的 MAC 地址的数量会很快耗尽一个典型配置的 DHCP 服务器所拥有的 MAC 地址数量。

当要求 Logical Domains Manager 自动为逻辑域或网络设备获取 MAC 地址时，它将先查找已释放的 MAC 地址的数据库，以确定是否有先前分配的 MAC 地址可供重用。如果此数据库中具有可用的 MAC 地址，则运行重复 MAC 地址检测算法。如果该 MAC 地址自先前释放后没有分配给任何设备，则将重用该地址，并将其从数据库中删除。如果检测到冲突，则只是从数据库中删除该地址。Logical Domains Manager 随后将尝试数据库中的下一个地址，如果没有可用的地址，将随机选取一个新的 MAC 地址。

版权所有 © 2007, 2010, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |