因为 ATM 地址使用起来不方便,所以大多数 ATM 工具也接受名称而不是数字地址。名称和数字之间的映射关系在以下文件中定义:/etc/hosts.atm。此文件的结构类似于/etc/hosts文件
例如:47.0005.80FFE1000000F21A26D8.0020EA000EE0.00 pc2-a.fqdn pc2-a 47.0005.80FFE1000000F21A26D8.0020D4102A80.00 pc3-a.fqdn pc3-a |
数字地址可以使用 [api] 中描述的任何格式指定。Linux 系统的数字地址可以使用命令 atmaddr -n 确定(另请参阅 手动地址配置 部分)。
许多 ATM 工具在显示地址时也会尝试查找相应的名称。当从数字形式转换为名称时,将使用文件中第一个适用的名称。
除了 SVC 的 ATM 地址外,PVC 地址也可以存储在/etc/hosts.atm。如果不同的地址类型存储在相同的名称下,则将选择第一个合适的地址,即,如果应用程序明确请求仅 SVC 地址,则将忽略任何 PVC 地址。
如果您可以访问 ATM 名称服务 (ANS,例如因为您已安装 ANS 扩展),则可以通过在/etc/resolv.conf文件中指定运行 ANS 的主机。
为了执行 E.164 地址的反向查找,需要知道电话国家代码列表。该列表可以从 国际电信联盟 获取。ITU-T 建议 E.164 分配国家代码列表 目前提供 PDF 和 Word 文档格式。
![]() | 注意: |
---|---|
如果 URL 过期,则应通过在 ITU 网站上搜索文档标题轻松找到该文档。 |
可以使用 atm-linux 发行版中的脚本 src/lib/pdf2e164_cc.pl 以及国家代码列表的 PDF 版本来创建 E.164 国家代码表,例如:
应该注意的是,需要安装 pdftotext 才能运行上述脚本。可以从 xpdf 获取。手册页:atmsigd(8) atmsigd.conf(4)
请注意,atmsigd 对点对多点的支持非常有限:仅支持作为点对多点树的单个叶节点运行。
默认情况下,atmsigd 配置为符合动态配置 UNI 版本。可以通过传递--with-uni=VERSION到 linux-atm 源代码发行版顶层目录中的 ./configure 脚本。
请注意,atmsigd 配置为偏执模式。如果它检测到异常问题,它会频繁终止。这(显然)将在未来改变。
atmsigd 还在使用-c选项指定的位置查找配置文件。默认位置是/usr/local/etc/atmsigd.conf.
ILMI 提供了一种自动地址配置机制。如果没有交换机或交换机不支持 ILMI,则必须手动配置 ATM 地址(请参阅 手动地址配置 部分)。请注意,ILMI 守护进程不应在手动配置地址的接口上使用。
ILMI 守护进程的启动方式如下
ilmid [-b] [-d] [-ilocal_ip] [-llog_file] [-qqos] [-uuni_version] [-v] [-x] [itf]
后台运行。在初始化后在 fork 的子进程中运行。
启用调试输出。默认情况下,ilmid 非常安静。
IP 地址,用于在被询问时告知交换机。可以是点分十进制或文本格式。默认情况下,ilmid 使用一些启发式方法来选择本地 IP 地址。
将诊断消息写入指定的文件,而不是标准错误。特殊名称syslog用于将诊断信息发送到系统日志记录器。
配置 ILMI VC 以使用指定的服务质量。默认情况下,ILMI VC 上使用链路速度的 UBR。
设置 UNI 版本。可能的值是3.0, 3.1,4.0、 和 。点可以省略。默认值取决于 ilmid 的编译方式。通常是3.0.
启用扩展调试输出。
禁用在 ColdstartTrap 中包含变量绑定。某些交换机(例如 LS100)仅在此选项设置时才工作。
如果未指定接口号,则 ilmid 服务于接口 0。您可以使用 atmaddr 命令(见下文)检查地址注册是否成功。
该代理仅支持 ATM 论坛 UNI 3.1 规范第 5.8 节中指定的地址注册程序。这些程序涉及交换机在主机上注册网络前缀,以及主机在交换机上注册最终 ATM 地址。主机通过将 ESI(终端系统标识符)和空选择器字节附加到交换机注册的网络前缀来完成此操作。ESI 是 ATM 接口的物理或 MAC 地址。
如果您的交换机不支持 ILMI,则必须在交换机和 PC 上手动设置 ATM 地址。在 Linux 端,请确保 ilmid 不会干扰,然后使用 atmaddr 命令设置地址。
手册页:atmaddr(8)
在交换机上手动配置 ATM 地址取决于品牌。在 Fore ASX-200 上,可以使用以下命令完成
例如:conf nsap route new 47000580ffe1000000f21510650020ea000ee000 152 1a2 0 |<---- NSAP prefix ----->||<--ESI--->|^^ SEL |
整个 NSAP 地址始终必须具有 40 位数字的长度。请注意,您也可以使用具有不同前缀和 ESI 的地址,这些 ESI 与您的适配器拥有的任何 ESI 都不对应。选择器字节 (SEL) 的值将被忽略。
也可以在两个背靠背连接的 ATM NIC 的情况下运行,中间没有交换机。这非常适合简单的测试环境。
首先,如果您使用 UTP 或 STP-5,则需要合适的电缆。我们使用标准 100Base-T 背靠背电缆的经验并不好。似乎它们使用的引脚排列不同。在一些错误的开始之后,我们发现以下电缆有效
RJ45 RJ45 1 ------------ 7 2 ------------ 8 7 ------------ 1 8 ------------ 2 Pins 3, 4, 5, 6 unconnected. |
RJ45-1 1 - Brown 2 - White/Brown 3 - Unconnected 4 - Unconnected 5 - Unconnected 6 - Unconnected 7 - Orange 8 - White/Orange |
RJ45-2 1 - Orange 2 - White/Orange 3 - Unconnected 4 - Unconnected 5 - Unconnected 6 - Unconnected 7 - Brown 8 - White/Brown |
您还可以制作一个环回电缆,其中 1 -- 7 和 2 -- 8 连接,用于超低成本设置。
这里我们有两台名为 ``virgil'' 和 ``nestor'' 的机器。根据需要替换您自己的名称。
ATM 连接的一侧需要使用 atmsigd 的网络版本,另一侧应使用普通用户版本。因此,在这里我们在 nestor 上使用以下命令启动 atmsigd
在 virgil 上使用以下命令启动 atmsigd没有交换机,您将无法使用 ILMI。相反,创建一个/etc/hosts.atm包含两个虚拟地址的文件。我们的 ATM 主机文件包含
47.0005.80FFE1000000F21A26D8.0020EA000EE0.00 nestor-atm 47.0005.80FFE1000000F21A26D8.0020D4102A80.00 virgil-atm |
当然,这些是完全伪造的地址,但是只要您没有连接到公共或私有 ATM 网络,我认为这无关紧要。为了在驱动程序中正确设置地址,我们使用
在 virgil 上使用以下命令设置地址在 nestor 上使用以下命令设置地址。现在以正常方式在两台机器上启动 atmarpd。现在您(应该)有一个可工作的 ATM 设置。要使 IP over ATM 工作,只需按照 IP Over ATM 部分中的说明进行操作即可。Q.2931 消息编译器还为 Q.2931 消息生成了一个美化打印器。可执行文件名为 q.dump,存储在src/qgen目录中。请注意,它不会被 make install 复制到其他位置。
q.dump 期望在标准输入中接收一系列以空格分隔的十六进制字节,并在消息可以解析时输出消息结构。例如
% echo 09 03 80 00 05 5A 80 00 06 08 80 00 02 81 83 00 48 \ 00 00 08 | ./q.dump _pdsc = 9 "Q.2931 user-network call/connection control message" _cr_len = 3 call_ref = 8388613 (0x800005) msg_type = 0x5a "RELEASE COMPLETE" _ext = 1 _flag = 0 "instruction field not significant" _action_ind = 0 "clear call" msg_len = 6 (0x6) _ie_id = 0x08 "Cause" _ext = 1 cause_cs = 0 "ITU-T standardized" _flag = 0 "instruction field not significant" _action_ind = 0 "clear call" _ie_len = 2 (0x2) _ext = 1 location = 1 "private network serving the local user" _ext = 1 cause = 3 "no route to destination" |