歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

LINUX與ISDN一線通


  讀了上期LINUX專題,相信大家對LINUX已有一個相當全面的了解,現在我就談談如何在LINUX系統上安裝ISDN以及如何在LINUX下,讓局域網共享ISDN上網。

  一:如何在LINUX系統下安裝ISDN安裝及配置過程:

  1、打開ip_forward及相關功能,加入下面的命令行到/etc/rc.d/rc.local

  echo 1 > /proc/sys/net/ipv4/ip_forward
  /sbin/modprobe ppp
  /sbin/modprobe bsd_comp
  /sbin/modprobe ip_masq_ftp
  /sbin/modprobe ip_masq_irc
  /sbin/modprobe ip_masq_raudio
  /sbin/modprobe ip_masq_vdolive
  /sbin/ipfwadm-F-a accept-m-W ppp0-S 192.168.1.0/24-D 0.0.0.0/0

  2、安裝diald-0.16-5 rpm包(login as root)

  #rpm-ivh diald-0.16-5a-1.i386.rpm
  #rpm-ivh diald-config-0.16-5a-1.i386.rpm

  3、diald默認的配置文件是/etc/diald.conf,但如果安裝了RPM包之後,配置文件就放在/etc/diald/diald.conf下面,所以你需要拷貝到/etc/目錄#cp /etc/diald/diald.conf /etc/diald.conf

  4、根據自己所在地的拔號參數,更改/etc/ppp/options和/etc/ppp/pppscript,恢復相應行的注釋。

  5.下面所有相關配置文件,請參閱。

  〔jephe@proxy /etc〕$more /etc/diald.conf
  accounting-log /var/log/diald.log
  device /dev/ttyS0
  speed 115200
  lock
  mode ppp
  dynamic
  local 192.168.0.1#不需改變這兩行,即使你的網絡不用192.168.0.X網段
  remote 192.168.0.2
  up-delay 8
  defaultroute
  modem
  crtscts
  connect /etc/diald/connect
  redial-timeout 8
  fifo /etc/diald/diald.ctl
  include /usr/lib/diald/standard.filter
  -------------
  〔root@proxy ppp〕#more /etc/diald/connect
  #!/bin/sh
  /usr/sbin/chat-v-f /etc/ppp/pppscript
  〔root@proxy ppp〕#ls /etc/diald/connect-l (該文件必須有執行權限)
  -r-xr-xr-x 1 root root 53 Jan 29 19:41
  /etc/diald/connect
  -------------
  〔jephe@proxy ppp〕$more /etc/ppp/options
  name“your_account_at_ISP"#ChineNet
  #name“……."(以下參數改為自己的)
  #name“……."
  #name“…….."
  login
  noipdefault
  asyncmap 0
  ----------
  〔root@proxy ppp〕#more /etc/ppp/pap-secrets
  #Secrets for authentication using PAP
  #client server secret IP addresses
  your_account_at_ISP*your_passwd_at_ISP
  #…..*……(和前面相對應)
  #…..*…….
  #……*…..
  ------------
  〔root@proxy ppp〕#more /etc/ppp/pppscript
  TIMEOUT 60
  ABORT ERROR
  ABORT BUSY
  ABORT“NO CARRIER"
  ABORT“NO DAILTONE"
  “"“AT&F1s60=64s61=2s70=0s71=1s80=1" OK(#s80=1啟動雙通道模式。)
  “atd163"
  TIMEOUT 75
  CONNECT

  二:通過一台LINUX,局域網共享ISDN上網

  ISDN在國內的應用越來越多,與原有的電話撥號方式相比,它比電話線撥號上網的帶寬增大,ISDN提供了更有效的多樣化業務服務,不僅增加了圖像、圖形、數據多種業務,而且可為用戶提供64Kbit/s為基礎的數字連接,傳輸速率比在電話網上利用Modem傳數據的速率提高數倍以上。ISDN的通話建立很快,不像Modem那樣每次有較長的時間等待過程,ISDN是數字化的,建立連接只需幾秒種即可,中小型企業通過它共享上網非常合適。Linux在共享上網方面的優勢是Windows無法相比的,它的IP改裝技術盡管還處於開發測試階段,但其效率遠遠高於普通的Proxy軟件。

  ISDN上網的必要設備

  現在國內用在ISDN上網的設備有很多種,沒有任何廠商聲明支持Linux,但是Linux已經可以支持大多數ISDN設備。這裡介紹S0卡+網絡終結器(NT1)這種配置,因為這是國內電信部門的推薦配置,而且他們可以提供Windows平台的技術支持。

  NT1設備可以請電信部門幫助調試好並接通線路,把S0卡直接插入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,它在ISDN的支持上作了很大改進。2.0.36內核的源碼可以在Ftp://ftp.cdrom.com//Linux/sunsite/kernel/中下載。

  ●Isdn4linux
  這是一個為Linux開發的ISDN各種應用的合集,它的最新版本的文檔是德文寫的,可以在ftp://ftp.murphy.nl/put/isdn4linux/中下載它的最新版本。

  ●ISAPNP tools
  大多數的S0卡都是即插即用的,而Linux對即插即用的內核支持在2.1.x中才能實現,因此必須去http://www.roestock.demon.co.uk/isapnptools/下載ISAPNP軟件包,以便在Linux上識別這塊卡。如果你使用的S0卡並非即插即用,則不用考慮這個軟件包。

  ISDN的Linux內核配置步驟如下:

  #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驅動程序配置,I/O地址要查看說明書,如果不是0×180,可以到卡上跳線。

  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
  Mar 23 10:44:45 L-server kernel: Hisax: 2 channels
  added
  Mar 23 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.99.192.68#郵局的接撥服務器地址,  
  若不清楚,請填0.0.0.0  
  MYMSN=7588175#我的電話號碼   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-se#cretschmod 600 chap-secrets

  完成以上內容後,就可以嘗試撥號上網了:

  #sh isdn-on
  #/sbin/isdnctrl dial ippp0
  #ifconfig

  大約四秒鐘就可以完成撥號,在ifconfig中可以看到撥號後的網絡設備ippp0,以及它的端對端IP地址。接著核對路由表,請注意缺省路由一定要指向端對端連接中的遠端IP地址。如果沒有此項,請手工加入缺省路由:

  #route add default gw
  202.99.192.68(xxx.xxx.xxx.xxx)

  配置好ISDN後,做好IP改裝(請參照Linux Howto中的IP Masquerade Howto),就可以通過這台Linux機器共享ISDN上網了。

  (特約作者丁紅陽)


——摘自:華好網景


Copyright © Linux教程網 All Rights Reserved