24.9. 平行线 IP(PLIP)

PLIP 允许我们在两个平行的端口间运行 TCP/IP。 这会在没有网卡的机子里有用,或安装在膝上电脑上。 这部分,我们将讨论:

24.9.1. 建立平行的线缆。

您可以在许多计算机供应店里买到平行线缆。 如果不行或您想知道怎么做线, 下面的表格就显示了如何利用普通的打印机平行线做一根:

Table 24-1. 为网络配平行线

A-name A 端 B 端 描述 Post/Bit

DATA0 -ERROR

2 15

15 2

数据

0/0x01 1/0x08

DATA1 +SLCT

3 13

13 3

数据

0/0x02 1/0x10

DATA2 +PE

4 12

12 4

数据

0/0x04 1/0x20

DATA3 -ACK

5 10

10 5

脉冲 (Strobe)

0/0x08 1/0x40

DATA4 BUSY

6 11

11 6

数据

0/0x10 1/0x80

GND 18-25 18-25 GND -

24.9.2. 设置 PLIP

首先,您需要一根 laplink 线。然后, 确认两台计算机的内核都有对 lpt(4) 驱动程序的支持:

# grep lp /var/run/dmesg.boot
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port

平行端口必须是一个中断驱动的端口,在 FreeBSD 4.X 里,您的内核配置文件应该有一行和下面的差不多:

device ppc0 at isa? irq 7

在 FreeBSD 5.X 里,文件 /boot/device.hints 应该包括下面几行:

hint.ppc.0.at="isa" hint.ppc.0.irq="7"

然后,检查看内核配置文件里是否有 device plip 行或是否装载了 plip.ko 内核模块。两种情况下, 在您直接使用 ifconfig(8) 命令时,应该有平行的网络接口显示。在 FreeBSD 4.X 里,就象这样:

# ifconfig lp0
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500

而对于 FreeBSD 5.X: 应该是:

# ifconfig plip0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500

Note: 用于平行接口的设备名在 FreeBSD 4.X (lpX) 和 FreeBSD 5.X (plipX) 是不相同的。

插入 laplink 线到两台计算机的平行接口里。

在两边以 root 身份配置网络接口参数。 例如,如果您想让运行着 FreeBSD 4.X 的主机 host1 连接到运行着 FreeBSD 5.X 的主机 host2

                 host1 <-----> host2
IP Address    10.0.0.1      10.0.0.2

配置 host1 上的网络接口,照此做:

# ifconfig lp0 10.0.0.1 10.0.0.2

配置 host2 上的网络接口,照此做:

# ifconfig plip0 10.0.0.2 10.0.0.1

您现在应该有个工作的连接了。想要更详细的信息, 请阅读 lp(4)lpt(4) 手册页。

您还应该增加两个主机到 /etc/hosts

127.0.0.1               localhost.my.domain localhost
10.0.0.1                host1.my.domain host1
10.0.0.2                host2.my.domain

要确认连接是否工作,可以到每一台机子上,然后 ping 另外一台。例如,在 host1 上:

# ifconfig lp0
lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
# netstat -r
Routing tables

Internet:
Destination        Gateway          Flags     Refs     Use      Netif Expire
host2              host1              UH          0       0       lp0
# ping -c 4 host2
PING host2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms

--- host2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms