Linux教程Linux
首页
基础知识
Linux业界
Linux系统
Linux人物
Linux文化
Linux资讯
Linux综合
当前位置:
Linux教程
-
Linux
- 配置ISDN
配置ISDN
作者:郭晓航
ISDN在国内的应用越来越多,它比电话线拨号上网的带宽增大,中小型企业通
过它共享上网非常合适。 Linux在共享上网方面的优势是Windows无法相比的,
它的IP改装技术尽管还处于开发测试阶段,但其效率远远高于普通的Proxy软件
。本文介绍怎样通过一台Linux机器,配置ISDN,利用Linux的IP改装技术,使
得所有局域网用户共享上网。
ISDN上网的必要设备
现在国内用在ISDN上网的设备有很多种,没有任何厂商声明支持Linux,但
是Linux已经可以支持大多数ISDN设备。这里介绍S0卡+网络终结器(NT1)这
种配置,因为这是国内电信部门的推荐配置,而且他们可以提供Windows平台的
技术支持。
NT1设备可以请电信部门帮助调试好并接通线路,S0卡最好选用西门子芯片的产
品,我的S0卡为“Teles 16.3c/pnp”。把这块卡直接插入Linux机器的ISA槽中
,接好与NT1的线路。以下介绍如何使Linux识别这块卡,并使之拨号上网。
基本原理
ISDN 上网与我们常用的Modem拨号上网类似。在Linux下甚至可以把S0卡模拟
成Modem设备,所不同的是ISDN可以使用同步PPP(synchronous PPP),而
Modem拨号一般使用异步PPP(anonymous PPP)。对于这两种拨号方式,邮局或
ISP采用不同的接入设备。
尽管ISDN可以模拟成Modem进行异步模式的拨号,但一般只是用来测试S0卡是否
运行正常,真正在上网时通常要用同步PPP拨号模式。
所需软件包
● Linux2.0.36
Linux使用的内核版本必须是2.0.36,这是到目前为止2.0版中最新的内核版本
。它在ISDN的支持上作了很大改进。在Linux的开发版2.1.x中,也有这些对ISD
N的支持,但我不能保证2.1.x版的稳定性。2.0.36内核的源码可以在
http://ftp.cdrom.com//Linux/sunsite/kernel/
中下载,如何编译安装请参
照Linux-Howto中的Kernel Howto。
● Isdn4linux
这是一个为Linux开发的ISDN各种应用的合集,它的最新版本的文档是德文写的
,可以在
http://ftp.murphy.nl/put/isdn4linux/
中下载它的最新版本。
● ISAPNP tools
由于我使用的S0卡(teles 16.3c/pnp)是即插即用的,而Linux对即插即用的
内核支持在2.1.x中才能实现,因此必须去
http://www.roestock.demon.co.uk/isapnptools/
下载ISAPNP软件包,以便
在Linux上识别这块卡。如果你使用的S0卡并非即插即用,那么可以不管这个软
件包。
ISDN的Linux内核配置
Linux2.0.36的内核需要重新配置,步骤如下:
#cd/usr/src/linux
#make menuconfig
〈*〉ISDN support
[*] Support synchronous
PPP
〈M〉 Hisax SiemensChipSet
driver support
[*] Hisax Support for
EURO/DSS1
[*] Hisax Support for
teles 16.3c
# make dep
# make clean
# make zImage
(wait for some minutes ....)
# cp/vmlinuz/vmlinuz.bak (备份内核)
# cp/usr/src/linux/arch/i396 /boot/zImage/vmlinuz
# lilo
# reboot
使用Hisax配置S0卡
1. 非即插即用类
Teles 16.3 ISDN卡一般使用如下缺省参数:
* I/O address: 0x180
* IRQ: 15,9,10,11,12
* Mem address: 0(不必考虑)
使用如下命令识别这块卡的参数:
# modeprobe hisax io=0x180 irq=10 type=3 protocol=2 id=isdn0
其中IRQ直接由hisax驱动程序配置,不必象配网卡那样跑到Dos/Win下去看它
的IRQ。I/O地址要查看说明书,如果不是0x180,可以到卡上跳线。
2. 即插即用类
这类卡不需要跳线或开关,所有参数要先通过ISAPNP配置。如果你正确地编译
安装ISAPNP软件后,应该存在pnpdump和isapnp这两个命令,首先,执行:
# pnpdump 〉/etc/isdn.conf
这样会把所有pnp卡的合适参数写入到isdn.conf中。但是合适参数可能不止一
组,所以它们都被加上了注释,需要你手工去掉一组参数的注释,表示选择了
这组参数作为这块卡的配置。具体的做法就是编辑/etc/isdn.conf文件,改成
类似如下的形式:
(CONFIGURE TAG261012101108041(LD 0
(IO 0(SIZE 2) (BASE 0x680))
(INT 0(IRQ 10(MODE +E)))
(NAME ″TAG2610/2101108041[0]{TELES.S0/16.3c Plug&Play}″)
(ACT Y)
))
(WAITFORKEY)
然后执行:
# isapnp/etc/isdn.conf
最后执行:
# modprobe hisax irq=10 io=0x680 type=14 protocol=2 id=isdn0
识别S0卡成功的标志
如果Hisax成功识别S0卡,在/var/log/messages中会显示如下信息:
# tail /var/log/messages
......
Dec 10 10:44:45 L-server kernel: Hisax: 2 channels
added
Dec 10 10:44:45 L-server kernel: Hisax: module
installed
Isdn4Linux的安装与配置
下载软件包并解包到一个目录,首先“make menuconfig“进行配置,然后执行
“make; make install”。
这个软件包包含了很多为ISDN作的应用程序,在编译时很容易遇到问题(因为
有的软件包要依靠一些特殊的函数库)。但是这问题不大,你只要保证
isdnctrl这个程序能够顺利编译并安装就可以,遇到其他编译不过的程序,可
以通过“make menuconfig”把它去掉,留待以后再编译。
要注意的是有的Linux版本不包含ISDN设备,可以用“ls/dev/ttyI*;
ls/dev/ippp*”查看,若没有,要执行scripts目录下的“makedev.sh”,
加入ISDN设备。
同步PPP的配置
有了上面的努力之后,就可以进行最后关键的同步PPP配置了。
现在国内的PPP都是动态分配IP,为了确保你的Linux支持动态IP,请键入:
# echo 1 〉/proc/sys/net/ipv4/ip_dynaddr
编辑一个名为isdn-on的文件,用来初始化ISDN设备,内容如下:
MYUSER=aaa
# 在邮局或ISP的账号名
REMNAME=public # ISP的名字
MYIP=0.0.0.0 #
待分配的动态IP
REMIP=202.101.103.82 # 邮局的接拨服务器地址,
若不清楚,请填0.0.0.0
MYMSN=2117039 #
我的电话号码
REMMSN=163 #
邮局的拨号号码
/sbin/isdnctrl verbose 3
/sbin/isdnlog -sS -v1 -m0x17d7 -l0x3d7 -C/dev/console-D/dev/isdnctrl
/sbin/isdnctrl system on
/sbin/isdnctrl addif ippp0
# 产生ISDN网络设备
/sbin/isdnctrl eaz ippp0 $MYMSN
/sbin/isdnctrl addphone ippp0 out $REMMSN
# 拨号号码
/sbin/isdnctrl huptimeout ippp0 90 # 90秒无人使用
ISDN后自动挂断
/sbin/isdnctrl l2_prot ippp0 hdlc
/sbin/isdnctrl l2_prot ippp0 trans
/sbin/isdnctrl encap ippp0 syncppp # 支持同步PPP
/sbin/isdnctrl dialmode ippp0 auto
# 拨号设置成自动模式,即有IP请求就自动拨
# 号(dial-on-demand),也可以设置成manual,即手动拨号。
/sbin/ifconfig ippp0 $MYIP pointopoint $REMIP
/sbin/route add $REMIP ippp0
/sbin/ifconfig ippp0 -arp -broadcast
/sbin/ipppd user $MYUSER remotename $REMNAME
noipdefault
ipcp-accept-local
ipcp-accept-remote
name $MYUSER
-detach
mru
1500
mtu
1500
lcp-restart 1
defaultroute
/dev/ippp0 &
/sbinroute add default gw $REMIP
在/etc/ppp目录下,创建三个新文件:
1. ioption内容为空。
2. pap-secrets
# 格式
账号名
*
密码
# 例子
# aaa *
passwd
3. chap-secrets
# 格式
账号名
*
密码
#
*
账号名
\"\"
# 例子
# aaa *
passwd
# * aaa
\"\"
根据例子填入自己的账号名和密码,由于包含密码,所以要限制读写权限:
# chmod 600 pap-secrets
# chmod 600 chap-secrets
完成以上内容后,就可以尝试拨号上网了:
# sh isdn-on
#/sbin/isdnctrl dial ippp0
# ifconfig
大约四秒钟就可以完成拨号,在ifconfig中可以看到拨号后的网络设备ippp0,
以及它的端对端IP地址。
接着核对路由表,请注意缺省路由一定要指向端对端连接中的远端IP地址。如
果没有此项,请手工加入缺省路由:
# route add default gw
202.101.103.81(xxx.xxx.xxx.xxx)
其他
配置好ISDN后,就可以通过这台Linux机器共享上网了。当然Linux的共享上网
还需要IP改装,请参照Linux Howto中的IP Masquerade Howto。
发布人:netbull 来自:LINUX开发者联盟
xinetd完全指南
Wine 的使用
中小企业服务器配置方案 第五章(2)
Linux下的时间概念
一个具有站点导航及窥视,管理功能的工具
Linux XChineseSystem 1.0 使用说明
端口扫描技术
Informix Online for Linux的安装方法
在RH7.2中装上VIA的AC97的板载声卡
Linux中的防火墙
解剖恶意网站代码,正常IE访问可能被修改本地注册表信
UNIX中的多线程数据共享与线程同步
构建一个高可扩展的web邮件系统
提示行魔术
Linux下对猫上网的配置
站点导航
Linux教程
Php
Linux
非技术类
指令大全
Shell
安装启动
Xwindow
Kde
Gnome
输入法类
美化汉化
网络配置
存储备份
杂项工具
编程技术
网络安全
内核技术
速度优化
Apache
Email
Ftp服务
Cvs服务
代理服务
Samba
域名服务
网络过滤
其他服务
Nfs
Oracle
Dhcp
Mysql
Ldap
RedHat
赞助商链接