zlz 发表于 2006-8-30 22:52:08

大连网通 ADSL 使用 Linux 上网实例

大连网通 ADSL 使用 Linux 上网实例 ( ZTE 850-- ZXDSL852 )

我家使用的是大连网通的 512K ADSL,以前由于硬盘小没有安装Linux系统,前不久添加硬盘所以自己在老硬盘上安装了 Linux From Scratch 6.2 ,然后又安装 SVN 的 BLFS 部分软件,参考网上别人的成功经验,终于摸索着成功进行了拨号上网。下面是一点实践经验。

1。MODERM 驱动
    我家是租用的 ADSL MORDEM,牌子是 ZTE 852 ( ZXDSL852 )。这个型号的猫使用内核驱动是 cxacru.ko 。较新的 内核 已经支持这个猫,如果不支持的内核想要自己编译驱动程序,清参考这个网页<accessrunner.sourceforge.net>。
    当驱动加载成功以后就会认出 MORDEM 来,并且会从 /lib/firmware/去找 cxacru-fw.bin ,传送给 MORDEM ,让 MORDEM 运行起来。你可以看到类似下面的信息,并且 MORDEM 上的 LED 点闪一阵后,就常亮了,这说明 MORDEM 已经正常工作起来了,并且建立了物理连接:
    cxacru-fw.bin 是 MORDEM 的 firmware ,也就是让 MORDEM 运行起来的 软件,这个文件 也能够在 网上 download 到。

    #dmesg

ATM dev 0: ADSL line: attempting to activate
ATM dev 0: ADSL line: channel analysis
ATM dev 0: ADSL line: up (512 kb/s down | 640 kb/s up)
ATM dev 0: ADSL line: training
ATM dev 0: ADSL line: channel analysis
ATM dev 0: ADSL line: up (512 kb/s down | 448 kb/s up)

2。桥接驱动
    大连网通使用 PPPoE 协议,因此需要将 cxacru 这个 ATM 设备 进行一下桥接,在它上面桥接出一个虚拟网卡出来,完成这个工作需要2个步骤,一个是内核驱动,另外一个是针对这个驱动的工具。
    内核驱动的名字叫做:br2684.ko
    工具的名字叫做 br2684ctl,但是需要先安装一个依赖包:Linux ATM ,请参考<linux-atm.sourceforge.net>。
    编译的指令是:#gcc -o br2684ctl br2648ctl.c -latm
    将编译成的可执行文件 拷贝到 /usr/sbin 去,以方便以后使用。

    使用 br2648ctl 创建 桥接的虚拟网卡,命令行如下:
    # br2684ctl -b -c 0 -a 0.8.35
    注意 0.8.35 中的 8 是 VPI, 35 是 VCI ,这根据 ISP 的不一样可能不一样,你可以参考 Windows 下的设置。
    接下来创建 网络设备:
    # ip link set up nas0( 我猜这和 #ifconfig nas0 up 的功能是一样的 )

    当 虚拟网卡 创建成功以后,可以通过 #ifconfig 看到:

nas0      Link encap:EthernetHWaddr 00:D0:D0:77:A1:9B
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          RX packets:10935 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11129 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1848715 (1.7 Mb)TX bytes:1723923 (1.6 Mb)

3。PPPoE 方式拨号上网
    到这里为止,差不多就只剩下拨号上网了,硬件相关的工作都已经完成了。大连网通使用的是 PPPoE 拨号方式,并且使用 PAP 认证方式。
    需要安装的软件是 PPP 和 RP-PPPoE,你可以在<http://www.linuxfromscratch.org/blfs/view/svn/connect/dialup.html#ppp>和<http://www.linuxfromscratch.org/blfs/view/svn/connect/other.html#pppoe>找到它们。
    安装完 这两个软件以后,就需要配置你的拨号配置文件了。通常需要修改3个文件。

    A。/etc/ppp/chap-secrets
    这里放的是 chap 认证方式的用户名和密码,这是一个例子:

# client      serversecret                  IP addresses
"dl88888888@163"      *       "88888888"

    B。/etc/ppp/pap-secrets
    这里放的是 pap 认证方式的用户名和密码,这是一个例子:

# client      serversecret                  IP addresses
"dl88888888@163"      *       "88888888"

        注意 这两个文件都是用 TAB 进行分割,而不是 空格。

    C。/etc/ppp/peers/pppoe-zxdsl
    你也可以取为其他名字,比如 MY-PPPOE-ZTE-852。
    这个文件内容大致如下:

# example configuration for the kernel space PPP over Ethernet driver
#
# See the manual page pppd(8) for information on all the options.

# MUST CHANGE: Uncomment the following line, replacing the [email protected]
# by the DSL user name given to your by your DSL provider.
# There should be a matching entry with the password in /etc/ppp/pap-secrets
# and/or /etc/ppp/chap-secrets.
user "dl88888848@163"

# Load the PPPoE plugin. Change the ethernet interface name if needed.
plugin rp-pppoe.so
nas0

# Assumes that your IP address is allocated dynamically by the ISP.
noipdefault
# Try to get the name server addresses from the ISP.
usepeerdns
# Use this connection as the default route.
# Comment out if you already have the correct default route installed.
defaultroute

# Makes pppd "dial again" when the connection is lost.
persist

# Do not ask the remote to authenticate.
noauth

# RFC 2516, paragraph 7 mandates that the following options MUST NOT be
# requested and MUST be rejected if requested by the peer:
# Address-and-Control-Field-Compression (ACFC)
noaccomp
# Asynchronous-Control-Character-Map (ACCM)
default-asyncmap

# Do not try to negotiate compression.
nopcomp
noccp
novj

    需要注意的地方有两个,第一是用户名 user "dl88888888@163" ,这需要和 pap-secrets ,chap-secrets 里面的用户名一致,否则拨号无法通过身份认证;第二是 PPPoE 使用的网卡,我们使用的 虚拟网卡nas0,我想如果不是使用的 ATM 设备而是真实网卡的话,就应该填写 ethX。

    拨号的方法是: #pppd call pppoe-zxdsl 或者 #pppd call MY-PPPOE-ZTE-852。


    如果拨号成功,就能够在 /var/log/sys.log 中看到相关信息:

Aug 30 19:41:48 lfs pppd: Plugin rp-pppoe.so loaded.
Aug 30 19:41:48 lfs pppd: RP-PPPoE plugin version 3.3 compiled against pppd 2.4.4
Aug 30 19:41:48 lfs pppd: pppd 2.4.4 started by root, uid 0
Aug 30 19:41:48 lfs pppd: PPP session is 4086
Aug 30 19:41:48 lfs pppd: Using interface ppp0
Aug 30 19:41:48 lfs pppd: Connect: ppp0 <--> nas0
Aug 30 19:41:48 lfs kernel: NET: Registered protocol family 24
Aug 30 19:41:48 lfs pppd: PAP authentication succeeded
Aug 30 19:41:48 lfs pppd: peer from calling number 00:30:88:00:66:88 authorized
Aug 30 19:41:48 lfs pppd: localIP address 221.201.51.32
Aug 30 19:41:48 lfs pppd: remote IP address 221.201.48.1
Aug 30 19:41:48 lfs pppd: primary   DNS address 202.96.69.38
Aug 30 19:41:48 lfs pppd: secondary DNS address 202.96.64.68

    通过 #ifconfig 也能够看到相关信息:

lo      Link encap:Local Loopback
          inet addr:127.0.0.1Mask:255.0.0.0
          UP LOOPBACK RUNNINGMTU:16436Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1600 (1.5 Kb)TX bytes:1600 (1.5 Kb)

nas0      Link encap:EthernetHWaddr 00:D0:D0:77:A1:9B
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          RX packets:11486 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11708 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2040019 (1.9 Mb)TX bytes:1773183 (1.6 Mb)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:60.20.52.69P-t-P:60.20.52.1Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICASTMTU:1492Metric:1
          RX packets:868 errors:0 dropped:0 overruns:0 frame:0
          TX packets:938 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:215934 (210.8 Kb)TX bytes:59756 (58.3 Kb)

    由于 pppd 会自动更新你的 /etc/resolv.conf ,因此就不需要自己手动添加 DNS 记录了,否则需要改写 /etc/resolv.conf:

nameserver 202.96.69.38

    到此为止, 上网也就成功了。希望这篇文章能够给你带来帮助。

carrison 发表于 2006-9-4 17:32:00

cxacru-fw.bin 是 MORDEM 的 firmware ,也就是让 MORDEM 运行起来的 软件,这个文件 也能够在 网上 download 到
-------------------------------------------------------------
兄弟, 哪有的当? 我都找拉N天了, 要不你在这贴一份cxacru-fw.bin?

谢谢啦
页: [1]
查看完整版本: 大连网通 ADSL 使用 Linux 上网实例