跳转到内容

Aros/用户/网络

来自 Wikibooks,开放世界中的开放书籍

AROSTCP 是 AROS 基于计算机的首选 TCP/IP 协议栈。

它是 Neil Cafferkey 将 AmigaOS AmiTCP TCP/IP 子系统移植到 AROS 的成果。

自最初移植以来,它已经根据 AROS 开发人员的工作以及从它衍生的 MorphOS 端口(Pavel Fedin - SonicAmiga)的反向移植的更改进行了多次更改。

AROSTCP 文件

[编辑 | 编辑源代码]

AROS 在 Prefs 目录中有一个网络首选项。请使用它来设置互联网/以太网使用。

AROSTCP 位于“Extras/Networking/Stacks/”。它包含以下目录和文件

C/ 包含网络可执行文件,大多与 UNIX/Linux 中的相同。

AROSTCP
 The AROSTCP executable. Don't run directly, use startnet/stopnet instead (see below).
arp
dhclient
hostname
ifconfig
logger
ping
resolve
route

S/ 包含启动和停止脚本

Package-Startup
startnet
stopnet

db/ 包含配置文件,请参阅 AROSTCP 配置数据库

general.config
group
hosts
inet.access
inetd.conf
interfaces
netdb
netdb-myhost
netdb-myhost.example
networks
passwd
protocols
services
static-routes

AROSTCP 环境变量

[编辑 | 编辑源代码]

AROSTCP 使用一些 Env: 设置来控制其最基本的操作。

目前存在以下选项..

 SYS/Packages/AROSTCP
                  
                  This is an AROS package file which tells the AROS package subsystem where
                  AROSTCP is installed.  If it is incorrect AROSTCP will fail to load.
                  During system boot this variable is used to set up paths and
                  assigns needed by an application.
 AROSTCP/Config
                  
                  Points to the location of AROSTCP's configuration files.
                  These will be used to configure the stack to a users preference.
                  By default the configuration is in <AROSTCP DIR>/db but it is
                  preferred to copy these files and customise them to suit -
                  see "AROSTCP Configuration Database"
 AROSTCP/AutoRun  
                  
                  when set to true this causes the AROSTCP stack to load during boot.
                  by default it isn't enabled so that users may manually configure the stack
                  and confirm it is working before enabling boot time operation.  
                  
                  If you don't use the AutoRun feature you should start AROSTCP by going  
                  to its directory and typing "execute s/startnet"


文件:AROSTCP-Warning.jpg 目前 SetEnv 命令不会使 AROSTCP 抽屉存储设置 - 因此您可能需要事先手动创建它们,方法是使用

   >makedir ENV:AROSTCP
   >makedir ENVARC:AROSTCP

AROSTCP 配置数据库

[编辑 | 编辑源代码]

配置数据库位置

[编辑 | 编辑源代码]

默认情况下,配置文件安装到“<AROSTCP DIR>/db” - 并且除非设置了“AROSTCP/Config”Env 变量,否则 AROSTCP 将尝试从那里加载它们。

但是,最好保留这些文件,并自定义一份副本,该副本在更新 AROS/AROSTCP 时不会被覆盖。从现在起,我们将此位置称为 <db Dir>。

为此,请在 shell 提示符下输入以下内容..

    >cd <AROSTCP DIR>
    >makedir <db Dir>
    >copy db <db Dir> ALL
    >SetEnv SAVE AROSTCP/Config <db Dir>

.. 用 AROSTCP 安装到的位置替换 <AROSTCP DIR>(例如,默认情况下为“SYS:Extras/Networking/AROSTCP”),并用您选择的个性化配置文件的位置替换 <db Dir>(例如,"SYS:Storage/NetConfig")。

自定义配置数据库

[编辑 | 编辑源代码]

大多数现代家庭网络提供 DHCP 地址/配置以简化用户互联网访问的设置。如果您在您的网络上使用它 - 或者不确定,那么这应该是您最有可能使用的配置选项。

对于更高级/有经验的用户,有一个手动 IP 配置,它简要概述了使 AROSTCP 与自定义 IP 地址等一起工作的必要配置选项。

基本配置 - DHCP

[编辑 | 编辑源代码]

AROS 在 Prefs 目录中有一个网络首选项。请使用它来设置互联网/以太网使用。


基本配置 - 手动 IP

[编辑 | 编辑源代码]

AROS 在 Prefs 目录中有一个网络首选项。请使用它来设置互联网/以太网使用。


至少需要编辑以下文件才能在您的网络上启用操作。

 <db Dir>/interfaces
 <db Dir>/static-routes
 <db Dir>/netdb-myhost

这些将提供必要的 信息以使 AROSTCP 正确配置您的硬件和网络环境。

<db Dir>/interfaces
[编辑 | 编辑源代码]

此文件包含用于配置系统上的网络硬件的 行。每行包含以下内容

 <interface name> DEV=<hardware driver> UNIT=<hardware driver unit no.> <further configuration data>

例如:

 eth0 DEV=pcnet32.device UNIT=0 IP=192.168.0.10 UP

将提供一个名为“eth0”的接口,它使用 pcnet32.device(兼容 PCNet32 的控制器)的单元 0,为其配置 IP 地址 192.168.0.10,并将设备设置为立即激活 (UP)。

<db Dir>/static-routes
[编辑 | 编辑源代码]

目前,此文件只提供网关设备的 IP 地址(默认网关) - 因此请确保将其更改为适合您的网络。

您可以将网络需要的任何路由添加到此文件。

<db Dir>/netdb-myhost
[编辑 | 编辑源代码]

netdb-myhost 为您的网络环境提供名称解析详细信息。如果您的 IP 地址的 DNS 名称无法从名称服务器解析,那么您需要在此处指定它。

目前需要以下数据

 HOST 192.168.0.10 thisarosbox.mynetwork thisarosbox

指定我们在 <db Dir>/interfaces 中配置的接口的主机名,该接口具有 IP 地址 192.168.0.10

 DOMAIN mynetwork 192.168.0.

这是我们的机器所属的网络。

 NAMESERVER 192.168.0.2

NAMESERVER 选项允许我们指定 AROSTCP 将用于解析名称(例如 www.aros.org)的 DNS 服务器。

根据您的配置,它将设置为以下内容之一 -

  1. 您私有网络的 DNS 服务器 IP
  2. 如果您的路由器可以转发 DNS 请求,则为您的路由器的 IP 地址
  3. 您的 ISP 提供的 DNS 服务器地址。

注意:在多行中列出多个 DNS 服务器是完全合法的。

基本配置 - Linux 托管:tap.device

[编辑 | 编辑源代码]

为了能够在 AROS Linux 托管下使用网络,已创建了“tap.device”,它将托管机器上的 Linux 隧道设备附加到托管 AROS 系统内部的 AROSTCP。

Linux Tap/Tun 配置
[编辑 | 编辑源代码]

你需要使用 “tunctl” 命令在 Linux 下创建隧道网络设备。你可能需要安装它 - 它可以作为 uml-utilities 包的一部分找到。

创建设备的命令行可能如下所示

 tunctl -b -u arosuser -t aros0

这允许名为 “arosuser” 的用户访问一个新创建的网络设备,名为 “aros0”。

接下来,为设备分配 IP 地址并启动它

 ifconfig aros0 192.168.0.20
 ifconfig aros0 up

tunctl 还会创建一个 Linux 文件系统条目,例如 /dev/net/tun(有关更多信息,请参见 tunctl 帮助),你可能需要为你的用户设置访问权限,例如:

 chmod 666 /dev/net/tun

这允许所有用户进行读写访问。

现在你已准备好运行 AROS。

最后,在运行 AROS 并启动 AROSTCP 后,你可能需要设置到托管 AROS 系统的路由。使用你的 <db Dir>/interfaces 配置中的 IP 地址(例如 192.168.0.188)

 route add -host 192.168.0.188 dev aros0
AROSTCP 为 tap.device 的配置
[编辑 | 编辑源代码]

一般的配置与往常一样(参见部分 基本配置 - 手动 IP)。

在适当的地方使用这些值

  • <db Dir>/interfaces : “tap.device” 应作为接口设备驱动程序使用。单元号与使用 tunctl 创建的 Linux 网络设备的号相同。
  • <db Dir>/static-routes : 要使用的默认网关地址是 Linux 下隧道设备的 IP 地址。

高级配置

[编辑 | 编辑源代码]

待续...

AROSTCP 支持的平台

[编辑 | 编辑源代码]

AROSTCP 已在以下系统上成功编译和测试-

  • x86 32 位
  • x86 64 位
  • SAM440EP

AROSTCP 支持的硬件

[编辑 | 编辑源代码]

AROS 包含许多驱动程序来支持网络硬件。网络驱动程序默认情况下安装到 “DEVS:Networks/” 中,当前支持的驱动程序列表包括..

PCI 网卡驱动程序

[编辑 | 编辑源代码]
etherlink3.device
适用于几乎所有 3Com 网卡
intelpro100.device
适用于基于 Intel Pro/100 控制器系列的网卡,包括
0x8086, 0x1229 - Intel i82558 10/100 PCI 以太网控制器(未测试)
pcnet32.device
适用于与 PCNet32 控制器系列兼容的网卡,包括
0x1022, 0x2000 - 79c970 AMD Lance/PCI(未测试)
0x1022, 0x2001 - 79c978 AMD Lance/HomePNA(未测试)
0x1022, 0x2625 - AMD Lance/PCI PCNet/32(未测试)
viarhine.device
适用于与 VIA Rhine 适配器兼容的芯片组,包括
0x1106, 0x6100 - VIA VT86C100A Rhine-II(未测试)
0x1106, 0x3043 - VIA VT3042 Rhine(未测试)
0x1106, 0x3065 - VIA VT6102 Rhine-II/VT6103 Tahoe 10/100M 快速以太网适配器(未测试)
0x1106, 0x3106 - VIA VT6105 Rhine-III 管理适配器(未测试)
0x1106, 0x3053 - VIA VT6105M Rhine-III 管理适配器(未测试)
sis900.device
SiS900/SiS7016 网卡驱动程序
0x1039, 0x8168 - SiS 900 PCI 快速以太网(已测试 - 在 i386 上工作)
0x1039, 0x7016 - SiS 7016 PCI 快速以太网(未测试)
rtl8168.device
Realtek 8168/8111 网卡系列驱动程序
0x10ec, 0x8168 - Realtek 8168B/8111B PCI-e 千兆以太网(已测试 - 在 amd64 上不工作(在引导时捕获驱动程序加载))
0x10ec, 0x8168 - Realtek 8168C/8111C PCI-e 千兆以太网(已测试 - 在 i386 上工作)
0x10ec, 0x8168 - Realtek 8168CP/8111CP PCI-e 千兆以太网(未测试)
0x10ec, 0x8168 - Realtek 8168D/8111D PCI-e 千兆以太网(未测试)
rtl8139.device
Realtek 8139 网卡系列驱动程序
0x10ec, 0x8129 - RealTek RTL8129(未测试)
0x10ec, 0x8138 - RealTek RTL8139(未测试)
0x10ec, 0x8139 - RealTek RTL8139(未测试)
0x10ec, 0x8139 Rev:20 - RealTek RTL8139C(未测试)
0x1113, 0x1211 - Accton EN-1207D 快速以太网(未测试)
0x1186, 0x1300 - D-Link DFE-538TX(已测试 - 在 amd64 上工作)
0x018a, 0x0106 - LevelOne FPC-0106Tx(未测试)
0x018a, 0x0106 - Compaq HNE-300(未测试)
nforce.device
适用于基于 nVidias NForce 控制器系列的网卡,包括
(pci _ id) - 网卡名称(已测试)
(pci _ id) - 网卡名称(未测试)
prm-rtl8029.device
适用于基于 Realtek RTL8029 控制器系列的网卡,包括
(pci _ id) - 网卡名称(已测试)
(pci _ id) - 网卡名称(未测试)
prism2.device
适用于基于 Prism II 芯片组的 WLAN 适配器
(pci _ id) - 网卡名称(已测试)
(pci _ id) - 网卡名称(未测试)

USB 网卡驱动程序

[编辑 | 编辑源代码]

请参见此处 https://wikibooks.cn/wiki/Aros/Platforms/AROS_USB_support

自定义驱动程序

[编辑 | 编辑源代码]

托管网卡驱动程序

[编辑 | 编辑源代码]
   tap.device          - pseudo-hardware driver which attaches a Linux tunneling device
                         in AROS Linux hosted version:
   emac.device          - Supports NIC used in the PowerPC 4x0 series of embedded processors (SOC), 
                          like e.g. the AMCC440EP CPU used in the Samantha board.

正在开发的驱动程序

[编辑 | 编辑源代码]

PCI 网卡

[编辑 | 编辑源代码]
   e1000.device        - Intel Gigabit NIC driver
                         0x8086, 0x1000 - Intel 82542 (untested)
                         0x8086, 0x1001 - Intel 82543GC [Fiber] (untested)
                         0x8086, 0x1004 - Intel 82543GC [Copper] (untested)
                         0x8086, 0x1008 - Intel 82544EI [Copper] (untested)
                         0x8086, 0x1009 - Intel 82544EI [Fiber] (untested)
                         0x8086, 0x100C - Intel 82544GC [Copper} (untested)
                         0x8086, 0x100D - Intel 82544GC [LOM] (untested)
                         0x8086, 0x100E - Intel 82540EM (untested)
                         0x8086, 0x100F - Intel 82545EM [Copper (untested)
                         0x8086, 0x1010 - Intel 82546EB [Copper (untested)
                         0x8086, 0x1011 - Intel 82545EM [Fiber] (untested)
                         0x8086, 0x1012 - Intel 82546EB [Fiber] (untested)
                         0x8086, 0x1013 - Intel 82541EI (untested)
                         0x8086, 0x1014 - Intel 82541ER [LOM] (untested)
                         0x8086, 0x1015 - Intel 82540EM [LOM] (untested)
                         0x8086, 0x1016 - Intel 82540EP [LOM] (untested)
                         0x8086, 0x1017 - Intel 82540EP (untested)
                         0x8086, 0x1018 - Intel 82541EI [Mobile] (untested)
                         0x8086, 0x1019 - Intel 82547EI (untested)
                         0x8086, 0x101A - Intel 82547EI [Mobile] (untested)
                         0x8086, 0x101D - Intel 82546EB [Quad Copper] (untested)
                         0x8086, 0x101E - Intel 82540EP [LP] (untested)
                         0x8086, 0x1026 - Intel 82545GM [Copper] (untested)
                         0x8086, 0x1027 - Intel 82545GM [Fiber] (untested)
                         0x8086, 0x1028 - Intel 82545GM [Serdes] (untested)
                         0x8086, 0x1075 - Intel 82547GI (untested)
                         0x8086, 0x1076 - Intel 82541GI (untested)
                         0x8086, 0x1077 - Intel 82541GI [Mobile] (untested)
                         0x8086, 0x1078 - Intel 82541ER (untested)
                         0x8086, 0x1079 - Intel 82546GB [Copper] (untested)
                         0x8086, 0x107A - Intel 82546GB [Fiber] (untested)
                         0x8086, 0x107B - Intel 82546GB [Serdes] (untested)
                         0x8086, 0x107C - Intel 82541GI [LF] (untested)
                         0x8086, 0x108A - Intel 82546GB [PCI-e] (untested)
                         0x8086, 0x1099 - Intel 82546GB [Quad Copper] (untested)
                         0x8086, 0x10B5 - Intel 82546GB [Quad Copper KSP3] (untested)

网络故障排除

[编辑 | 编辑源代码]

配置和基本连接问题

[编辑 | 编辑源代码]

检查你的环境

[编辑 | 编辑源代码]

在做任何事情之前,最好检查 AROSTCP 是否具有正确的 ENV 设置

 # Check the package file ENV:SYS/Packages/AROSTCP points to the location
   AROSTCP is installed to.
 
 # Check that ENV:AROSTCP/ exists
 # Check if ENV:AROSTCP/Config is set and points to your network config.
 # Check if the ENV:AROSTCP/AutoRun option is set and disable to manually test.

检查后,更改到 AROSTCP 安装的目录并输入

 >execute s/startnet

AROSTCP 现在应该加载,并返回你到命令提示符。

检查你的接口

[编辑 | 编辑源代码]

现在你可能希望使用以下命令验证你的网卡是否正常工作

 >ifconfig -a

它应该输出类似于以下内容

 lo0: flags=8<LOOPBACK> mtu 1536
         inet 127.0.0.1 netmask 0x0
 eth0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX> mtu 1500
         address: 00:0c:29:37:ef:6d
         inet 192.168.0.10 netmask 0xffffff00 broadcast 192.168.0.255

寻找 “UP” 标志,它将告诉你你的接口是否正在运行,如果没有,请检查 inet 是否为 0.0.0.0。如果是这种情况,AROSTCP 可能无法加载你的接口的驱动程序,因此请检查你的 interfaces 文件是否为你的硬件正确配置。

如果您的网络接口配置了正确的 IP 地址,但状态不是“UP”,请尝试以下命令。

 >ifconfig <the interface name .. i.e. eth0> <the inet address to use> UP

然后再次检查您的网络接口。

检查您的网关

[编辑 | 编辑源代码]

如果您通过路由器连接到互联网,其 IP 地址应存储在 <db Dir>/static-routes 中。

我们可以通过尝试 ping 路由器来检查它是否正常工作。

 >ping <ip address of gateway/router>

您应该会收到来自路由器的回复,并告知您接收到的数据包(即返回的数据包)。

如果您没有收到回复,请检查您的线缆连接是否正确。

下一步需要一个外部 IP 地址(即来自互联网的 IP 地址),这里我将使用 www.yahoo.com 的当前 IP 地址 [69.147.114.210]。

 >ping 69.147.114.210

您应该会收到来自该操作的回复,并告知您接收到的数据包,这表示成功。

如果返回“无法路由到主机”,则您可能在 db/static-routes 中存在错误设置,或网络接口配置错误,请检查。

检查名称解析

[编辑 | 编辑源代码]

DNS 服务器存储在您的 <db Dir>/netdb-myhost 文件中。

要测试它们是否正常工作,只需通过名称 ping 一个外部网站…

 > ping www.yahoo.com

您应该会收到回复数据包。

华夏公益教科书