|
Ethernet + Wireless to DSL Router with NAT
|
|
This router was built to combine a Ethernet LAN with the Raytheon Raylink 802.11 Wireless LAN product, both feeding a DSL link. The Raylink adapter is the same as the Webgear Aviator Pro and RayCom 802.11 Wireless products. Full access is provided between all stations on both the Ethernet and the Wireless LANs as well as to and from the DSL link and thence to the Internet.
Connection to the Internet is via a 1.5MB ADSL link. For access to remote Windows NT facilities the clients make use of Virtual Private Networking. In addition to the Ethernet and Wireless interfaces, the local router also performs Network Address Translation (IP masquerading) so that all traffic from any device on either the Ethernet or Wireless LANs appears to the host as a single device.
The Raylink Wireless LAN is a PCMCIA product and is interfaced using a ISA Bus PCMCIA adapter as used by the Webgear Aviator 2.4/Pro products.
- The Raytheon product includes drivers for Netware (ODI), Windows NT and Windows 95/98. Because there were ODI driver for both the Ethernet and Wireless adapters, we decided to use the ODI/ODIPKT approach for ALL interfaces.
- The host machine used was a minitower chassis with a 486dx-100 CPU and 4MB of memory, the least that could be installed. A single 1.44MB floppy provides the load medium and an old VGA card provides the console when needed -- the router normally runs without a keyboard or monitor.
Drivers for the PCMCIA interface must be loaded in CONFIG.SYS to enable the reader. The Webgear/RayCom PCMCIA interface is supported by the "CardSoft" software. Once the PCMCIA is up, the ODI/ODIPKT interfaces can be loaded followed by IPRoute. Using the ODI interface also meant loading LSL.COM and its associated NET.CFG file. The ODI driver for the Wireless card also requires NESL.COM which is included in the Wireless adapter package. In order for everything to fit, and to make room for the PCMCIA interface, it was necessary to use EMM386.
CONFIG.SYS
DEVICE=A:\HIMEM.SYS
DOS=HIGH,umb
DEVICE=A:\EMM386.EXE FRAME=E000 X=C800-CFFF X=D000-DFFF RAM
DEVICEHIGH=a:\cardsoft\ss365sl.exe
DEVICEHIGH=a:\cardsoft\cs.exe
DEVICEHIGH=a:\cardsoft\csalloc.exe
DEVICEHIGH=a:\cardsoft\cardid.exe
The NET.CFG file that will be used by LSL.COM assigns resources for the various network interfaces.
NET.CFG
; 2:14 PM 5/4/00
; NET.CFG for ODI interface to the Ethernet and Wireless Cards
; Mods for Raylink/Aviator 2MB card
; Common
Link support
Buffers 6 1600
; Board 1 EP200 Card - Uplink
Link driver 200EP
PORT 340
INT 11
FRAME ETHERNET_II
; Board 2 NB2000 Card - wired interface
Link driver PN-16
PORT 320
INT 5
FRAME ETHERNET_II
; Board 3 Raylink/Aviator Wireless
Link Driver RAYLINK
AUTH_TYPE OPEN
DOMAIN USA
ESSID NETWORK
FRAME ETHERNET_II
NET_TYPE AD-HOC
In addition to the IO and Interrupt assignments for the Ethernet cards, the configuration has to define various other parameters for the Raylink PCMCIA card:
- NET_TYPE defines the type of Wireless LAN. The alternatives are OPEN and INFRASTRUCTURE. INFRASTRUCTURE is used for networks with Raylink "Access Points". This configuration uses ADHOC.
- AUTH_TYPE defines the network as either OPEN or PASSWORD. PASSWORD requires that all cards accessing the network to use the same PASSWORD
- ESSID defines the ID code for this network. All cards accessing the network must use the same ESSID.
- PCMCIA tells the card to use PCMCIA Card and Socket Services to obtain resources
- FRAME forces the Raylink to use Ethernet_II framing as required by IPRoute.
Next, the AUTOEXEC.BAT will load all of the components for the system. As noted, the ODI/ODIPKT driver combination was used, so LSL.COM must be loaded. The Raylink PCMCIA also requires the NESL.COM component. Both LSL.COM and NESL.COM are included on the driver diskette for the Raylink product.
AUTOEXEC.BAT
: 10:32 PM 4/11/00
REM Autoexec for Router with Raylink Wireless Adapter
REM needs card/socket service driver as well
: The Raylink card does not have a packet driver so
: we'll use ODI and the ODIPKT
a:\network\lsl.com
a:\network\nesl.com
: Ethernet Card ODI Driver - Uplink 200 EP Card
a:\network\200EP.COM
: Ethernet Card ODI Driver - Wired Interface PN-16 Card
a:\network\PN-16.COM
: Raylink/Aviator 2MB Card - Wireless Raylink card
a:\network\RAYLINK.COM
: ODI Packet driver -
: Uplink card is board 1 (0) int 96 (0x60)
: Ethernet Card is board (1) 2 int 97 (0x61)
: Wireless Card is board (2) 3 int 98 (0x62)
a:\network\odipkt.com 0 96
a:\network\odipkt.com 1 97
a:\network\odipkt.com 2 98
ipr118 dsl.ipr
The ODIPKT driver must be loaded three times, once for each card to be assigned. The sequence is the same as that in the NET.CFG file, in this case "Card 0" is the uplink Ethernet to the DSL adapter, "Card 1" is the local wired Ethernet adapter and "Card 2" is the Raylink Wireless LAN.
Finally, the configuration file for IPRoute must reflect the desired routing information. This file assigns the Ethernet and Wireless LANs to two separate networks although they could also simply be subnetted. In this case, this was done as the roaming devices also appear in another wireless LAN at another physical location. Devices on the Ethernet are able to communicate with devices on the wireless LAN and vice versa. Devices on both LANs are able to use the DSL link for remote access also.
The uplink is an Ethernet interface to a Efficient Networks "Speedstream 5260" ADSL adapter running on a COVAD 1.5MB ADSL.
DSL.IPR
; 9:35 PM 5/2/00
; Change Log:
; 1. For DSL Configuration
; Has three ethernet interfaces
; wired wired network 0x60
; radio wireless network 0x61
; uplink dsl uplink interface to network 0x62
; 2. 10:28 AM 4/11/00 config for actual DSL addresses
; 3. 11:17 PM 5/5/00 new IP assigned mmm.nnn.ooo.ppp
; Start a command interpreter on the console
command
ftpd
; Telnet Daemon - This goes in the top part of the script
telnetd do_tel
user username password *:5021
; Log everything to the console.
set log file con
; Turn on debug stuff.
set trace on
set log raw on
; -------------------------------------------------------------
; Note that /24 specifies the network prefix width, i.e. the
; number of ones in the netmask:
; /25 corresponds to 255.255.255.128 /32 = 255.255.255.255
; -------------------------------------------------------------
; Ethernet to DSL adapter - single IP
; Configure uplink interface with IP address mmm.nnn.ooo.100
; Uplink local mmm.nnn.ooo.100
; Gateway mmm.nnn.ooo.1
; route anything other than the local IP to the uplink
; interface and the gateway
packet uplink 0x60 mmm.nnn.ooo.100/24
route * uplink mmm.nnn.ooo.1
; -------------------------------------------------------------
; Wired LAN wired 192.168.1.129
; Configure wired interface with IP address 192.168.1.129
packet wired 0x61 192.168.1.129/25
rip wired
; -------------------------------------------------------------
; Wireless LAN radio 192.168.1.1
; Configure radio interface with IP address 192.168.1.1
packet radio 0x62 192.168.1.1/25
rip radio
; -------------------------------------------------------------
; general reset for unknown packets
set nat send-reset on
set nat send-icmp on
; -------------------------------------------------------------
; pass the ping to the router so we can ping it from the
; upline side
nat uplink icmp 192.168.1.1 mmm.nnn.ooo.100
; allows telnet/ftp to router using non-standard ports
nat uplink tcp 192.168.1.1:21 mmm.nnn.ooo.100:5021
nat uplink tcp 192.168.1.1:23 mmm.nnn.ooo.100:5023
nat uplink * * mmm.nnn.ooo.100
; --------------------------------------------------------------
; set filters for security
; block all NetBEUI over TCPIP accesses
filter uplink drop in udp * *:137
filter uplink drop in udp * *:138
filter uplink drop out tcp * *:139
; misc filters - Back Orifice
filter uplink log drop in udp * *:31337
filter uplink log drop in tcp * *:12345
filter uplink log drop out udp * *:31337
filter uplink log drop out tcp * *:12345
; Filter attempts to Telnet to the router from outside
; permit everything else
filter uplink permit in * * *
filter uplink permit out * * *
; --------------------------------------------------------------
exit
; This will run for each incoming telnet connection.
do_tel:
on timeout drop_tel
send "\r\nlogin: "
set echo on
read 60 "\r\n" NAME
send "\r\nPassword:"
set echo off
read 60 "\r\n" PASS
authenticate NAME PASS *:5021
log "$NAME logged in from $IPADDR:$PORT"
send "\r\n\n"
command
drop_tel:
exit
|