首页 > 学院 > 网络通信 > 正文

在路由器内用脚本实现网络拨号

2019-11-05 00:17:28
字体:
来源:转载
供稿:网友

  
  
  网络拨号备份是网络解决方案中的一种非常实用的方法,具有很高的性能价格比。主流路由器内IOS提供了一种脚本语言,可以根据不同的需求进行灵活的网络配置。这使我们可以用脚本语言解决特定情况下的特定问题,笔者利用脚本语言解决了拨号备份这个比较复杂的问题,并总结了一种通用的方法来解决此类问题,现在将这种方法介绍给大家, 以便共同交流。
  
  问题的提出
  
  笔者所在的单位设计了一个拨号备份的网络方案,所用的拨号客户端路由器为Cisco 1720和Motorola的3225、3265的调制解调器,中心的拨号服务器为Cisco 3640+,内置异步Modem。设计要求当DDN专线出现网络故障,需要传输数据时自动启动拨号备份,在180秒内没有数据传输时自动挂线。将设备正确连接,路由器和调制解调器进行常规配置后发现: 使用Usr_courier 型号的Modem 工作完全正常,而使用Motorola 3265的 Modem出现不拨号现象,使用Motorola 3225不但出现不拨号问题,而且应答来电。
  
  原因分析
  
  如何使客户端Motorola的3225、3265 的两种调制解调器与中心Cisco路由器内置的Modem协调工作?Cisco 路由器默认配置只支持下面的调制解调器型号: Codex_3260、Usr_courier、Usr_sportster等17个型号。其余的以Default类型对待,不与此标准兼容的调制解调器就不能正常工作。通过AT配置命令集的对比,发现Motorola的3225、3265 的两种调制解调器与Codex_3260或Default类型要害参数有部分差异,所以自动匹配的配置方法在这种情况下就不能正常工作。现在考虑采用一种比较灵活的方法来解决这个问题: 根据Modem AT配置命令集,在路由器内编写chat-script拨号脚本,使拨号的命令序列和Modem拨号控制命令序列完全匹配,从而解决此类Modem不兼容的问题。
  
  解决方法
  
  1. 编写客户端的脚本(以Cisco IOS 12.0版本为例)。
  
  脚本内容为:
  
  chat-script call “ ”“ATS54=03HS0=0&D3” OK “ATDT /T” TIMEOUT 60 “CONNECT” /d
  
  这里“ATS54=03H”用来设置Modem 接收到 DTR变低后挂机;“S0=0”表示来电不应答;“&D3”表示流量控制方式为 hardware;“OK”意味着Modem响应命令序列后反馈“OK”; “ATDT /T”为拨叫端口内由dialer map设置的电话号码;“TIMEOUT 60”表示等待Modem拨号握手成功,超过60秒,则超时; “CONNECT”意味着等待的反馈信息内容为“CONNECT”; “/d”参数表示将命令方式转换为数据传输方式。
  
  2. 挂线时用下面的脚本解决客户端调制解调器待机时不应答问题。
  
  chat-script reset “”“ATS0=0” OK /d
  
  也可以用:modemcap entry modem_3225:FD=&fs0=0
  
  这里增加一种Modem: modem_3225。“FD=&f”表示恢复默认参数; “s0=0”表示将默认参数由应答方式改为不应答,这样做的目的是当挂线时,路由器发送的恢复出厂参数命令序列内自动携带了应答方式的设置。
  
  3. 测试脚本。
  
  语法:#start-chat 脚本名 端口类型 端口号
  
  例如:
  
  #termino monitor ;显示系统信息
  
  #debug chat ;打开脚本调试
  
  #start-chat reset tty 1
  
  #start-chat call tty 1
  
  4. 拨号客户端有关拨号的配置文档如下:
  
  chat-script call “ ”“ATS54=03HS0=0&D3” OK “ATDT /T” TIMEOUT 60 “CONNECT” /d
  
  modemcap entry modem_3225:FD=&fs0=0
  
  chat-script reset “”“ATS0=0” OK /d
  
  interface Serial0
  
  physical-layer async
  
  no ip address
  
  no ip directed-broadcast
  
  encapsulation ppp
  
  dialer in-band
  
  dialer rotary-group 0
  
  !
  
  interface Dialer0
  
  ip address 192.16.251.25 255.255.255.0
  
  no ip directed-broadcast
  
  encapsulation ppp
  
  ppp authentication chap
  
  dialer in-band
  
  dialer-idle timeout 180
  
  dialer map ip 192.16.251.1 modem-script call 123456
  
  dialer-group 1
  
  hold-queue 10 out
  
  ip route 0.0.0.0 0.0.0.0 192.16.241.1 100
  
  ip route 0.0.0.0 0.0.0.0 192.16.251.1 150
  
  access-list 101 deny ip any host 224.0.0.10
  
  access-list 101 permit ip any any
  
  dialer-list 1 PRotocol ip list 101
  
  line 1
  
  no exec
  
  script startup reset
  
  script reset reset /*或modem autoconfigure type modem_3225*/
  
  transport input all
  
  modem DTR-active
  
  modem autoconfigure type modem_3225
  
  transport input all
  
  flowcontrol hardware
  
  end
  
  5. 拨号服务器端有关拨号的配置文档如下:
  
  interface Group-Async0
  
  ip address 80.16.251.1 255.255.255.0
  
  no ip directed-broadcast
  
  encapsulation ppp
  
  ppp authentication chap
  
  dialer in-band
  
  async mode dedicated
  
  group-range 65 69
  
  ip route 192.0.1.0 255.255.255.0 192.16.241.2 100
  
  ip route 192.0.1.0 255.255.255.0 192.16.251.2 150
  
  line 65 69
  
  modem InOut
  
  modem autoconfigure discovery
  
  transport input all
  
  stopbits 1
  
  flowcontrol hardware
  
  以上路由器有关拨号的配置适用于使用脚本控制Modem的情况,对于不同的Modem需编写符合该Modem的拨号配置脚本。如:对于3265调制解调器,需输入下面的脚本:
  
  chat-script call “”“AT*FL3&D3”OK “ATDT /T” TIMEOUT 60 “CONNECT” /d
  
  其他不变。
  
  (上述方法笔者已经在Cisco 路由器上测试通过)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表