NF/ 天文台使用Linux的网络

作者 Fred Treasure

本文介绍了NF/天文台 (NFO) 用于远程控制自动光学望远镜的网络。关于天文台的更多信息可以在新墨西哥州西部大学的网站 http://www.wnmu.edu/nfo 找到。

NFO网络中的每台计算机都使用Linux操作系统。四台主要计算机使用1.2.13版本,而一些研发计算机使用2.0.0版本。选择Linux是因为它的可靠性、多功能性、低成本以及对我们使用的大量网络类型的原生支持。NFO在网络的各个点使用以太网、展频无线、业余无线电和电话调制解调器。

NF/ Observatory Networking with Linux

NF/牧场房屋

NF/牧场节点 (scope.wnmu.edu)

该节点位于NF/牧场,并且是使用图1中所示天线的节点。当我们在1986年建造望远镜时,牧场没有电话服务。事实上,直到1984年牧场甚至没有商业电力!这里使用的三种介质类型是业余无线电、同轴以太网和电话调制解调器。业余无线电已经使用了10年,并且早于Linux。无线电链路接收用于编程望远镜观测列表的信息。它还将望远镜的图片和遥测数据传输回数据缩减计算机和银城的互联网连接。

NF/ Observatory Networking with Linux

NFO的数字中继天线

计算机网络

NF/ Observatory Networking with Linux

自动无线电链接望远镜

业余无线电设备包括一个终端节点控制器 (MFJ 1270)、一个 TAPR 9600 bps 调制解调器 (http://www.tapr.org/) 和一个我们改装用于发送和接收数据的 Motorola MOCOM 70 商用 FM 收发器。Linux 通过 RS-232 串行链路与 TNC 通信。scope 的 /etc/rc.d/rc.local 文件的相关部分是

#!/bin/sh
/bin/echo "Setting TNC RS232 speed to 9600"
# Also setting clocal to ignore modem control
# lines.
/bin/stty 9600 clocal < /dev/cua2
/bin/stty -a < /dev/cua2
/bin/echo "Sending commands to TNC"
sleep 1
# txdelay
/bin/echo -ne "\300\001\020\300" > /dev/cua2
# persist
/bin/echo -ne "\300\002\377\300" > /dev/cua2
# slot time
/bin/echo -ne "\300\003\004\300" > /dev/cua2
# tail
/bin/echo -ne "\300\004\004\300" > /dev/cua2
/bin/echo "Commands to TNC done."
/bin/echo "Setting port to AX25 mode."
sleep 1
/usr/local/bin/axattach -s 9600 /dev/ttyS2 KC5ZG-2
sleep 1
/usr/local/ax25/etc/axaddarp 44.30.2.130 WY5G-4
/sbin/ifconfig sl0 198.59.153.205 mtu 512
/sbin/route add 44.30.2.130 sl0
/sbin/route add default gw 44.30.2.130 sl0

以太网硬件是一张 NE2000 克隆卡,它通过大约 100 英尺的 RG058 同轴电缆与专用望远镜控制计算机通信。这两台计算机使用 FTP 协议来回移动数据。望远镜控制计算机不使用 Linux,因为它参与 CCD 相机的实时控制。

电话调制解调器提供到城镇的备用链路。它很少使用,因为从银城到牧场是长途电话,而且业余无线电链路一直非常可靠。

Pinos Altos山节点 (pa.wnmu.edu)

该节点位于海拔 8000 英尺的大陆分水岭附近,如果最近没有下雪,可以通过吉普车道到达;否则,这是一次艰苦但美丽的背包旅行。Linux 的可靠性在这里很重要!除了与牧场通信的无线电之外,该站点还拥有 2 Mbs 展频链路和另一个使用 PI2 卡而不是 TNC 的业余无线电链路。/etc/rc.d/rc.local 文件看起来像这样

#! /bin/sh
# Attach link to NM2 Node Stack
/sbin/axattach -s 9600 /dev/ttyS0 WY5G-8
sleep 1
echo "Ifconfig sl0 to 198.59.153.200"
/sbin/ifconfig sl0 198.59.153.200
/sbin/ifconfig sl0 mtu 512
# configure Wavlan Spread Spectrum link.
/sbin/ifconfig eth0 198.59.153.200
echo "Adding routes"
/sbin/route -n add 44.30.2.130 sl0
/sbin/route -n add 198.59.153.205 sl0
/sbin/route -n add 192.136.110.150 gw 192.136.110.153\
        eth0
/sbin/route -n add 192.136.110.153 eth0\
/sbin/route -n add default gw 192.136.110.153 eth0
echo "Configuring PI2 Card Port A"
/sbin/ifconfig pi0a 198.59.153.200
/sbin/ifconfig pi0a hw ax25 WY5G-8
/sbin/ifconfig pi0a broadcast 198.59.153.255
/sbin/ifconfig pi0a netmask 255.255.255.0
/sbin/ifconfig pi0a arp mtu 512 up
/pi2/piconfig pi0a speed 9600 txdelay 250\
        persist 255 squelch 10 slot 1
echo "Configuring PI2 Card Port B"
/sbin/ifconfig pi0b 44.30.2.137
/sbin/ifconfig pi0b hw ax25 WY5G7
/sbin/ifconfig pi0b broadcast 44.30.2.255
/sbin/ifconfig pi0b netmask 255.255.255.0
/sbin/ifconfig pi0b arp mtu 512 up
/sbin/ifconfig pi0b 44.30.2.137 hw ax25 WY5G-7 up
/pi2/piconfig pi0b speed 1200
/sbin/route -/
- add 192.136.110.151 sl0
# /sbin/route -n add 192.136.110.151 gw 44.30.2.136 sl0
/bin/axaddarp 198.59.153.205 kc5zg-2

上述文件中一个有趣的要点是,通常发送用于配置 TNC 的命令缺失了。在这种情况下,TNC 由其内部 X1J Node 软件配置,该软件还将 TNC 的串行端口设置为在 ax25 模式下通信,而不是更常见的 nrs 模式。此配置允许 Linux 计算机和 X1J Node 共享一个收发器,即为数据传输而修改的 Motorola MITREK。

Wavelan 接口对于 Linux 来说看起来像一张以太网卡。它通过 /etc/lilo.conf 中的 append 行配置,如下所示

# LILO configuration file
# generated by "liloconfig"
#
# Start LILO global section
boot = /dev/hda
# compact and faster, but won't work on all
# systems.
delay = 50
vga = normal  # force sane state
ramdisk = 0   # paranoia setting
# End LILO global section
# Linux bootable partition config ends
image = /zImage.wav
root = /dev/hda2
label = wavelan
append = "ether=0,0x390,0x5280,eth0"
read-only

Wavelan 接口是实验性的,在到 WNMU 节点的七英里路径上工作得不够好,无法用作我们的主要链路。通过改进的天线,我们希望它成为一个优秀的高速链路。

另一个实验性接口使用 PI2 卡来控制另一个频率上的无线电链路。到目前为止,这个链路还没有被使用,因为它干扰了附近的业余无线电语音中继器。

WNMU 节点 (www.wnmu.edu)

WNMU 节点是 NFO 连接到互联网的接口。eth0 接口是一张连接到新墨西哥州西部大学系统的 NE2000 卡。eth1 接口是 Wavelan 卡,它与 Pinos Altos 节点和 David's Basement 节点通信。Wavelan 在到 David's Basement 的一英里路径上工作得非常好。WNMU 节点的独特之处在于,它必须充当未直接连接到 WNMU 系统的计算机的代理服务器。查看以下 rc.local 文件中的 arp 设置

#! /bin/sh
echo "setting ttyS2 to irq 5"
/bin/setserial /dev/ttyS2 irq 5
echo "sending commands to TNC"
sleep 1
/bin/stty 9600 clocal < /dev/cua2
/bin/echo -ne "\300\001\025\300" > /dev/cua2
/bin/echo -ne "\300\002\377\300" > /dev/cua2
/bin/echo -ne "\300\003\004\300" > /dev/cua2
/bin/echo -ne "\300\004\004\300" %gt; /dev/cua2
/bin/echo "Commands to TNC done..."
#echo "setting /dev/ttyS3 to irq 11"
#/bin/setserial /dev/ttyS3 irq 11
/sbin/ifconfig eth0 192.136.110.153
/sbin/ifconfig eth1 192.136.110.153
echo "Starting WWW Server"
/etc/httpd
echo "Attaching AX25 link to Radio Port"
/sbin/axattach -s 9600 /dev/ttyS2 KC5ZG-1
sleep 1
/sbin/ifconfig sl0 192.136.110.153
/sbin/ifconfig sl0 mtu 512
/sbin/route -n add 192.136.110.150 eth1
/sbin/route -n add 192.136.110.158\
        gw 192.136.110.150 eth1
/sbin/route -n add 192.136.110.159\
        gw 192.136.110.150 eth1
/sbin/route -n add 192.136.110.170\
        gw 192.136.110.150 eth1
/sbin/route -n add 192.136.110.152\
        gw 192.136.110.150 eth1
/sbin/route -n add 192.136.110.128 eth0
/sbin/route -n add default gw 192.136.110.128 eth0
/sbin/route -n add 192.136.110.3 eth0
/sbin/route -n add 44.30.2.130 sl0
/sbin/route -n add 44.30.2.136 sl0
/sbin/route -n add 44.30.2.151 gw 44.30.2.130\
        sl0
/sbin/route -n add 192.136.110.151 gw 44.30.2.130\
        sl0
/sbin/route -n add 192.136.110.154 gw 44.30.2.130\
        sl0
/sbin/route -n add 198.59.153.200 eth1
/sbin/route -n add 198.59.153.205 gw 44.30.2.130\
        sl0
/sbin/route -n add 192.136.110.152\
        gw 192.136.110.150 eth1
/sbin/route -n add 192.136.110.150 eth1
/sbin/route -n add 192.136.110.155 gw 44.30.2.130\
        sl0
/sbin/route -n add 192.136.110.156 gw 44.30.2.130\
        sl0
/sbin/route -n add 44.30.2.145 gw 44.30.2.130 sl0
echo "Clearing stale file locks"
rm /etc/mtab~
rm /nos/spool/mail/*.lck
rm /nos/spool/mqueue/*.lck
rm /nos/spool/*.lck
echo "Publishing wnmu arp entries"
/sbin/arp -s 198.59.153.200 00:c0:df:46:b1:b6 pub
/sbin/arp -s 198.59.153.205 00:c0:df:46:b1:b6 pub
/sbin/arp -s 192.136.110.150 00:c0:df:46:b1:b6 pub

该节点的业余无线电设备与 NF/ 牧场节点使用的设备类似,除了收发器是 TEKK 数据无线电。在空闲时间,www.wnmu.edu 也充当大学和 NFO 的 Web 服务器。

David's Basement 节点 (astro.wnmu.edu)

该节点位于银城市中心维多利亚式豪宅的地下室。它是天文台的邮件服务器,并将网络的 Wavlan 部分连接到同轴电缆以太网,该以太网是我们用于教授高级天文学课程的计算机的局域网。这些计算机位于天文豪宅附近。数据缩减计算机也在以太网局域网上,并且在天文豪宅拐角处的一栋房子里。rc.local 看起来像这样

#! /bin/sh
/sbin/ifconfig eth1 192.136.110.150
echo "Adding routes"
#/sbin/route -n add 44.30.2.147 sl0
#/sbin/route -n add 44.30.2.146 gw 44.30.2.147 sl0
/sbin/route -n add 192.136.110.153 eth1
/sbin/route -n add default gw 192.136.110.153 eth1
/sbin/route -n add 192.136.110.152 eth0
/sbin/route -n add 192.136.110.158 eth0
/sbin/route -n add 192.136.110.159 eth0
/sbin/arp -s 192.136.110.152 00:40:95:26:76:fb
/sbin/arp -s 192.136.110.158 00:40:95:26:77:ab
echo "Publishing wnmu arp entries"
/sbin/arp -s 192.136.110.1 00:40:95:14:ea:41 pub
/sbin/arp -s 192.136.110.3 00:40:95:14:ea:41 pub
/sbin/arp -s 192.136.110.4 00:40:95:14:ea:41 pub
/sbin/arp -s 192.136.110.5 00:40:95:14:ea:41 pub
/sbin/arp -s 192.136.110.6 00:40:95:14:ea:41 pub
/sbin/arp -s 192.136.110.150 00:40:95:14:ea:41 pub
/sbin/arp -s 192.136.110.156 00:40:95:14:ea:41 pub
/sbin/arp -s 192.136.110.151 00:40:95:14:ea:41 pub
/sbin/arp -s 192.136.110.154 00:40:95:14:ea:41 pub
/sbin/arp -s 192.136.110.153 00:40:95:14:ea:41 pub
/sbin/arp -s 192.136.110.7 00:40:95:14:ea:41 pub
/sbin/route add 198.59.153.200 gw 192.136.110.153\
        eth1
/sbin/route add 198.59.153.205 gw 192.136.110.153\
        eth1

NF/天文台是如何命名的

我希望我在本文中提供了足够的细节来帮助其他人建立他们自己的广域网。一些业余无线电信息仅对获得许可的业余无线电操作员有用,但展频设备对所有人可用。

NF/ Observatory Networking with Linux
Fred Treasure 是一位逃脱的物理学家。他曾经在约翰斯·霍普金斯大学/应用物理实验室工作,但现在喜欢与前巴 Barbara Hobbs 和他们的两个儿子一起住在新墨西哥州银城。在他的空闲时间,他喜欢构建计算机网络。
加载 Disqus 评论