IP over ATM 通过传统 IP over ATM (CLIP,定义在 RFC1577 [RFC1577])、LAN 仿真 (LANE,定义在 [lanev1] 和 [lanev2]) 以及多协议 over ATM (MPOA,仅客户端,定义在 [mpoav1]) 提供支持。
一个守护进程用于生成和应答 ARP 查询。实际的内核部分仅维护一个包含部分信息的小型查找表。
手册页:atmarpd(8), atmarp(8)
atmsigd 和 ilmid 必须在 atmarpd 启动之前运行。使用-b选项以确保它们正确同步,例如
有效,但是通常无效(尚未)。atmarp 程序用于配置 ATMARP。首先,您必须启动 atmsigd、ilmid 和 atmarpd,然后创建一个 IP 接口并配置它
例如如果仅使用 PVC,则现在可以使用如下命令创建它们
如果指定了null关键字,则使用 NULL 封装。请注意,ARP 需要 LLC/SNAP 封装。因此,NULL 封装只能用于 PVC。
当使用 SVC 时,可能需要一些额外的配置工作。如果机器充当该 LIS 上的 ATMARP 服务器,则不需要额外的配置。否则,必须配置 ATMARP 服务器的 ATM 地址。这通过使用arpsrv选项为网络地址创建条目来完成,例如
请注意,ATMARP 服务器目前必须在配置任何客户端之前启动和配置。
内核 ATMARP 表可以通过 \path{/proc/net/atm/arp} 读取。如果 atmarpd 启动时带有-d选项,则 atmarpd 使用的表会定期打印在标准错误输出上。如果调用 atmarpd 时没有-d,该表将写入文件atmarpd.table在转储目录中(默认/var/run;可以使用-D更改),并且可以使用 atmarp -a 读取它。
除了传统 IP over ATM,LAN 仿真 (LANE) 也可用于在 ATM 上承载 IP。LANE 模拟传统 LAN 技术的特性,例如对广播的支持。LANE 服务器支持在linux-atm 发行版中的 src/lane/USAGE文件中描述。
手册页:bus(8), lecs(8), les(8) 和 zeppelin(8)
如果您计划运行多个 LANE 客户端、LANE 服务或 LANE 客户端和 LANE 服务,则需要为每个守护进程指定不同的本地 ATM 地址。由于所有 LANE 守护进程都使用类似的服务访问点 (SAP),因此它们需要不同的 ATM 地址来区分连接。
与 CLIP 类似,LANE 客户端由两部分组成:一个名为 zeppelin 的守护进程,它负责 LANE 协议,以及包含 LANE ARP 缓存的内核部分。
atmsigd 和 ilmid 必须在 zeppelin 启动之前运行。当 zeppelin 启动时,内核会创建一个新的接口,然后可以配置该接口
在下面的示例中,启动了两个 LANE 客户端。第一个客户端使用默认接口 lec0、默认监听地址并尝试加入默认 ELAN。另一个 LANE 客户端获取分配给它的接口 lec2,绑定到本地地址mybox3,尝试加入名为myelan的 ELAN,并将桥接 ELAN 和以太网段之间的数据包。地址mybox3在/etc/hosts.atm中定义。桥接的其余部分可以通过阅读桥接迷你 HOWTO 进行配置。[bridge-howto]
# zeppelin & # ifconfig lec0 10.1.1.42 netmask 255.255.255.0 \ broadcast 10.1.1.255 up # # zeppelin -i 2 -l mybox3 -n myelan -p & # ifconfig lec2 10.1.2.42 netmask 255.255.255.0 \ broadcast 10.1.2.255 up |
默认情况下,zeppelin 使用接口 lec0,使用选择器字节值 0 绑定到本地 ATM 地址,尝试使用众所周知的 LECS 地址联系 LECS,加入 LECS 定义的默认 ELAN,接受 LES 定义的 MTU 大小,并且不会充当代理 LEC。这些参数可以通过命令行选项进行定制,这些选项在 zeppelin(8) 中定义。
zeppelin 将自动加入任何使用高于默认 MTU 1516 字节的 MTU 的 ELAN。LANE 接口的 MTU 将根据当前 ELAN 的 MTU 自行调整。
LANE ARP 缓存条目的状态可以通过/proc/net/atm/lec进行监控。对于每个条目,都会列出 MAC 和 ATM 地址以及状态。如果条目具有活动连接,则还会列出连接标识符。
LANE 服务(lecs(8)、les(8) 和 bus(8))使用配置文件进行配置。配置文件语法在各自的手册页上列出。
Marko Kiiskil� 的硕士论文 [kiis] 中更详细地讨论了 Linux LANE 服务。
Linux MPOA 客户端延续了用户空间 -- 内核分离 ATM 服务的传统。名为 mpcd 的守护进程处理 MPOA 控制数据包,而内核保存 MPOA 入口和出口缓存并执行数据包转发。
手册页:mpcd(8)
atmsigd 和 ilmid 必须在 mpcd 启动之前运行。由于 MPOA 从 LANE 流量中检测 IP 层流,因此您需要先运行 zeppelin,MPOA 才能正常工作。但是,启动 zeppelin 和 mpcd 的顺序不是固定的。您可以随意终止任何守护进程,并在以后重新启动它,而无需重新启动另一个守护进程。禁用 MPOA 最简单的方法是终止正在运行的 mpcd。
下面是 LAN 仿真 部分的示例,其中启动了两个 LANE 客户端。配置已使用 LANE 客户端将服务的两个 MPOA 客户端进行增强。
# zeppelin & # ifconfig lec0 10.1.1.42 netmask 255.255.255.0 \ broadcast 10.1.1.255 up # mpcd -s mybox1 -l mybox2 & # # zeppelin -i 2 -l mybox3 -n myelan -p & # ifconfig lec2 10.1.2.42 netmask 255.255.255.0 \ broadcast 10.1.2.255 up # mpcd -i 2 -s mybox4 -l mybox5 & |
MPOA 守护进程需要两个不同的本地 ATM 地址,用于在发起和接收数据和控制连接时使用。地址可以与例如 zeppelin 相同,但必须与其他 mpcd 守护进程不同。默认情况下,mpcd 不会从 LECS 检索配置信息。必要的命令行选项和使用 LECS 的示例在 mpcd 手册页上显示。手册页还列出了其余可用的选项。
MPOA 入口和出口缓存的内容可以通过/proc/net/atm/mpc文件进行监控。
Linux MPOA 客户端还支持用于快捷方式 SVC 的 CBR 流量类别,而不是默认的 UBR。可以使用以下命令设置和修改未来快捷方式的 QoS 规范/proc/net/atm/mpc.
# echo add 130.230.54.146 tx=80000,1600 rx=tx > /proc/net/atm/mpc # # generate enough traffic to trigger a shortcut # cat /proc/net/atm/mpc QoS entries for shortcuts: IP address TX:max_pcr pcr min_pcr max_cdv max_sdu RX:max_pcr pcr min_pcr max_cdv max_sdu 130.230.54.146 80000 0 0 0 1600 80000 0 0 0 1600 Interface 2: Ingress Entries: IP address State Holding time Packets fwded VPI VCI 130.230.4.3 invalid 1160 0 130.230.54.146 resolved 542 151 0 109 ... |