MikroTik™ V2.2 Router Software Technical Reference Manual

Revision 22- Jan- 2001
 

Table of Contents:

   
 

Preface

 
 

1. Startup Guide

 
 

2. User Interconnection Description

 
 

3. Device Driver Management

 
 

4. Network Interface Management

 
 

5. Bridge Configuration

 
 

6. Internet Protocol Management

 
 

7. SNMP Service Configuration

 
 

8. Queues Management

 
 

9. Advanced Routing Management

 
 

10. System Configuration

 
 

11. Tools

 
 

Preface

Document Organization

The document consists of 11 main parts. Parts can be divided further into sections. Each section (or a part if it doesn't consist of sections) of this document is divided into three subsections. In the first subsection, management from the Java Console is described. Management from the Console is described in the second subsection. The third subsection is devoted to description of the parameters. However some sections are not divided if it is not necessary.

Document Conventions

In this publication, the following conventions are used:

  to the contents

 

1. Startup Guide

Before You Start

To make a PC based router running MikroTik™ Router Software, it is necessary to:

Hardware Requirements and BIOS Settings

The MikroTik™ Router Software installs on a standard PC system with a hard disk or flash disk. Hardware requirements are as follows:

Processor - 486DX or higher CPU with math co-processor. Pentium (AMD, Cyrix, IDT WinChip or Intel) 100MHz or higher suggested;
RAM - at least 16 MB (preferably 32 MB);
Video - Color or Monochrome VGA video card or on-board VGA port;
HDD controller - IDE hard drive controller;
HDD - Hard disk or flash disk (preferably at least 32 MB);
FDD - 1,44 MB Floppy Drive. This is not needed after installation, and can be safely removed;
Keyboard - may also be removed after the software installation, if BIOS allows the PC to boot without a keyboard.
Monitor - may be removed after installation. You should keep the keyboard and monitor attached if you want to administer the system locally from the console.
Network Interface - NE2000 or compatible NIC. For more supported network cards and devices, please see 'Supported Hardware' section.

Check the BIOS settings of your router. Make sure that the boot sequence is 'A: C:', and 'Floppy drive seek at boot' is enabled.

Check that the BIOS settings for PNP OS are disabled and PCI and ISA allocation of IRQs correspond to your interface installation plans. Disable the paralell port to free resources. Check the IO and IRQ assignments for Serial Interfaces, which should be as follows:

COM1 - IO 0x3f8 and IRQ 4
COM2 - IO 0x2f8 and IRQ 3

If you use 20MB SanDisk 3.5" FlashDrive as the target HDD for your router installation, use the recommended BIOS settings for it:

Cylinders 612, Heads 2, Sectors 32, Mode NORMAL

Installing the software

Put 'Disk #1' in the floppy drive, and boot up your router. The installation will be looking for hard drives. You will see something like this:

Found harddrive on IDE primary master (disk C)
To install software properly, it needs to be reformatted.
Format it? [y/n]:

Press yes to FORMAT your HDD.

Note that the primary hard disk of your router will be OVERWRITTEN, and any existing data on it will be destroyed.

You will be asked to insert all next three installation floppies:

Please insert 2nd installation floppy.
Press ENTER when ready

and so on until the last floppy drive will be inserted and you will be asked to reboot your computer:

Software installed.
Press ENTER to reboot

Remove the installation disk from the floppy disk drive and press ENTER.

While booting up the router for the first time you will see your software ID, and you will be asked to enter your software key. This key is unique depending on several variables including the particular data carrier (flash disk or hard drive) and information from your MikroTik registered account. Please enter the software key obtained from MikroTik - www.MikroTik.com. Register with our "Account Server" to obtain a key.

The software installation is complete.

Log on to your PC router running MikroTik™ Router Software for the first time using login name 'admin' and blank password (just press ). Please change admin's password later for security reasons to avoid unauthorized access to your router.
Note There is no way to replace a lost password, so be careful! You will need to re-install the router if the password is lost.

Configuring the Router

If you have an NE2000 Ethernet card then it was loaded automatically on boot all you have to do is to enable this interface and make all necessary IP settings. You can do that using the setup command:

Command Parameters Description
setup   Basic system setup
  Enable interface Enable an interface
  IP address Set router's IP address
  Netmask Set network mask
  Gateway Set a default gateway of the router

Here is an example for PCI Ethernet card:

[MikroTik]> setup
Enable interface [ether1]: ether1 ip address: 10.5.8.161
Netmask [255.255.255.0]: 255.255.255.0
Gateway [10.5.8.254]: 10.5.8.1
[MikroTik]>

Try to ping some host on your network to test the initial configuration, for example:

[MikroTik]> ping 10.5.8.1

If you get responses from the host, your network connection works properly, and you should be able to access the router remotely via network.

If you have some other network card please read the "Device Driver Management" section in the User Manual for details on a specific driver you are using, whether it is loaded automatically or not. If it was loaded automatically then the setup command would work as described above.

If the driver was not loaded automatically then the setup command will ask you to do that. Also you will be prompted to enter IP parameters:

Command Parameters Description
setup   Basic system setup
  Load driver Load network device driver. You can choose one of the following: arlan, c101, ne2k-isa, pc-isa, radiolan, 3c509
  driver io Set input/output port range base address. Can be omitted if device does not use IO ports
  driver irq Set Interrupt Request Number. Can be omitted if device does not use IRQ. For IRQ probing enter 0
  IP address Set router's IP address
  Netmask Set network mask
  Gateway Set a default gateway of the router

Here is an example for 3C509 ISA card:

[MikroTik]> setup
Load driver: 3c509
driver io: 0x300
driver irq: 11
IP address: 10.5.8.161
Netmask [255.255.255.0]: 255.255.255.0
Gateway [10.5.8.254]: 10.5.8.1
[MikroTik]>

Use ping command as described above to check your settings.

If you get responses from the host, your network connection works properly, and you should be able to access the router remotely via network.

Please read appropriate sections of this manual for more detailed description of configuration options.

A connection via console port is established using an RS-232 null modem cable. Standard PCs have a 9 pin male serial port built-in. Use any VT100 terminal emulation program on your PC or Laptop. The required communication settings are:

9600 bps, 8 bit, No parity, 1 stop bit

For PC with Windows running, set the COM port to your corresponding serial port. Usually it is COM2.

  to the contents

 

2. User Interconnection Description

Java Interconnection Description

MikroTik Java Console requires Java 2 browser plug-in. This may be downloaded from the "Download" page at www.mikrotik.com or www.sun.com.

In the Web Browser open the page with the address http://<IPAddressOfTheRouter>. Then start the applet.

General Information

When you type your login name and password you are logged in the router via Java Console.

All operations are performed via the main menu that is situated on the left of the main window. It consists of twelve items. If a menu item has an arrow sign then it contains submenu. Each of menu item is described in the User Manual in the corresponding chapters, excluding menu item "Help". The table below describes the correlation.

Menu Item Chapter Name
Interfaces Network Interface Management
IP Internet Protocol Management
Router Advanced Routing Management
Bridge Bridge Configuration
Drivers Device Drivers Management
SNMP Server SNMP Service Configuration
System System Configuration
Logs System Configuration
Users System Configuration
Tools Tools
Password System Configuration

How To

Here are the most common actions that you perform on the entries:

Action Description
Open To open the required window simply click on the corresponding menu item.
Add To add a new entry you should click on the icon in the corresponding window.
Remove To remove an existing entry click on the icon.
Edit Click twice on the icon on the left of each line.
Enable To enable interface, address etc. click the icon.
Disable To disable interface, address etc. click the icon.
Comment To save a comment an entry click the icon.
Refresh Click on the icon in the corresponding window.
Undo Click on the icon above the main menu.
Redo Click on the icon above the main menu.
Logout Click on the icon above the main menu.

Main Menu

Console Interconnection Description

When you log into the router via console or telnet you get a base level prompt. As it is in Java almost every command has the corresponding chapter in the Manual. In the table below base level commands are described:

Command Name Description Chapter in the Manual
ping Send ICMP Echo packets Tools
tool System tools Tools
user User management System Configuration/ User Management
log View system logs System Configuration/ System Logs Management
quit Quit console  
setup Do basic setup of the system Basic System Setup
password Change user password System Configuration/ Change Password
undo Undo previous action  
redo Redo previous action  
export Export router settings User Interconnection Description
interface Interface configuration Network Interface Management
driver Driver management Device Driver Management
system System configuration System Configuration
bridge Bridge configuration Bridge Configuration
snmp-server SNMP server configuration SMNP Service Configuration
terminal Set terminal type Terminal Setup and Basic System Setup
ip IPv4 specific settings Internet Protocol Management
router Routing settings Advanced Routing Management

How To

The table below describes how you can execute commands, move through the levels in the console, etc.

Command Action
command [Enter] Execute the command
[?] Show the list of all available commands
command [?] Display help on the command and the list of arguments
command argument [?] Display help on the command's argument
[Tab] Complete the command/word. If the input is ambiguous, a second [Tab] gives possible options
/ Move up to the base level
/command Execute the base level command
.. Move up one level
"" Enter an empty string
"word1 word2" Enter 2 words that contain a space

You can abbreviate names of levels, commands and arguments.

Overview of Common Functions

The console allows configuration of the router settings using text commands. The command structure is similar to the Unix shell. Since there's a whole lot of available commands, they're split into hierarchy. For example, all commands that work with routes start with "ip route":

[drax]> ip route print

#
DST-ADDRESS NETMASK GATEWAY PREF-ADDRESS INTE...
0
0.0.0.0
0.0.0.0
10.0.0.1
0.0.0.0
ether1 D
1
10.0.0.0
255.255.255.0
0.0.0.0
10.0.0.65
ether1 D K

[drax]> ip route set 1 netmask 255.255.0.0
[drax]> ip route print

#
DST-ADDRESS NETMASK GATEWAY PREF-ADDRESS INTE...
0
0.0.0.0
0.0.0.0
10.0.0.1
0.0.0.0
ether1 D
1
10.0.0.0
255.255.0.0
0.0.0.0
10.0.0.65
ether1 D K

Instead of typing "ip route" before each command, "ip route" can be typed once to "change into" that particular branch of command hierarchy. Thus, the example above could also be executed like this:

[drax]> ip route
[drax] ip route> print

#
DST-ADDRESS NETMASK GATEWAY PREF-ADDRESS INTE...
0
0.0.0.0
0.0.0.0
10.0.0.1
0.0.0.0
ether1 D
1
10.0.0.0
255.255.255.0
0.0.0.0
10.0.0.65
ether1 D K

[drax] ip route> set 1 netmask 255.255.0.0
[drax]> ip route print

#
DST-ADDRESS NETMASK GATEWAY PREF-ADDRESS INTE...
0
0.0.0.0
0.0.0.0
10.0.0.1
0.0.0.0
ether1 D
1
10.0.0.0
255.255.0.0
0.0.0.0
10.0.0.65
ether1 D K

Notice that prompt changes to show where in the command hierarchy you are located at the moment. To change to top level, type "/"

[drax] ip route> /
[drax]>

To move up one command level, type ".."

[drax] ip route> ..
[drax] ip>

You can also use "/" and ".." to execute commands from other levels without changing the current level:

[drax] ip route> /ping 10.0.0.10
timeout: ping reply not recieved after 1000 mss
timeout: ping reply not recieved after 1000 mss
ping interrupted 2 packets transmitted, 0 packets received, 100% packet loss
interrupted

Or alternatively, to go back to the base level you could use the ".." twice:

[drax] ip route> .. .. ping 10.0.0.10
10.0.0.10 pong: ttl=128 time=2 ms
10.0.0.10 pong: ttl=128 time=1 ms
ping interrupted 2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 1/1.5/2 ms
interrupted
[drax] ip route>

- Lists -

Many of the command levels operate with arrays of items: interfaces, routes, users etc. Such arrays are displayed in similar looking lists. All items in the list have an item number followed by it's parameter values. For example:

[drax]> interface print
# NAME STATE TYPE MTU

#
NAME
STATE
TYPE
MTU
0
ether5
up
ethernet
1500
1
ether1
up
ethernet
1500

To change parameters of an item (interface in this particular case), you have to specify it's number:

[drax]> interface set 1 mtu 1234
[drax]> interface print

#
NAME
STATE
TYPE
MTU
0
ether5
up
ethernet
1500
1
ether1
up
ethernet
1234

Numbers are assigned by "print" command and are not constant - it is possible that two successive "print" commands will order items differently. Thus, you must use the print command before any other command that works with list items, to assign numbers.

Note Although numbers can change each time you use the "print" command, they don't change between these uses. Once assigned, they will remain the same until you quit the console or until the next "print" command. Also, numbers are assigned separately for every item list, so "ip address print" won't change numbers for interface list.

Let's assume "ip address print" hasn't been executed already. In this case:

[drax]> ip address set 123 netmask 255.255.0.0
Error: number : (no numbers assigned)

To understand better how do item numbers work, you can play with "from" argument of "print" commands:

[drax]> interface print from 1

#
NAME
STATE
TYPE
MTU
1
ether1
up
ethernet
1500

The "from" argument specifies what items to show. Numbers are assigned by every "print" command, thus, after executing command above there will be only one item accessible by number - interface "ether1" by number 0.

- Item names -

Some lists have items that have specific names assigned to each. Examples are "interface" or "user" levels. There you can use item names instead of numbers:

[drax]> interface set ether1 mtu 1234

You don't have to use the "print" command before accessing items by name - as opposed to numbers, names are not assigned by the console internally, but are one of the items' parameters. Thus, they won't change on their own (But there are all kinds of obscure situations possible when several users are changing router configuration at the same time). Generally, item names are more "stable" than numbers, and also more informative, so you should prefer them ver numbers when writing console scritps. Also, <tab> completions work on item names, making them easy to type.

- Quick typing -

There are two features in router console that help entering commands a lot quicker and easier - tab key completions and abbreviations of command names. Completions work similarly to the bash shell in UNIX. If you press the tab key after part of word, console tries to find command in current context that begins with this word. If there's only one match, it is automatically appended, followed by space character:

/inte<tab>_ becomes /interface _

(where "_" is cursor position)

If there's more than one match, but they all have a common beginning which is longer that what you've typed, then the word is completed to this common part, and no space is appended:

/interface set e<tab>_ becomes /interface set ether_
(because "e" matches both "ether5" and "ether1" in this example)

If you've typed just the common part, pressing the tab key once has no effect. However, pressing it second time shows all possible completions in compact form:

[drax]> /interface set e<tab>_
[drax]> /interface set ether<tab>_
[drax]> /interface set ether<tab> ether1 ether5
[drax]> /interface set ether_

The tab key can be used almost in any context where the console might have a clue about possible values - command names, argument names, arguments that have only several possible values (like names of items in some lists or name of protocol in firewall and NAT rules). You can't complete numbers, IP addresses and similar values.

Another way to press less keys while typing is to abbreviate command and argument names. You can type only beginning of command name, and if it is not ambiguous console will accept it as a full name:

[drax]> ip f s r 1 equals to [drax]> ip firewall static-nat remove 1

[drax]> pi 10.1 c 3 s 100 equals to [drax]> ping 10.0.0.1 count 3 size 100

Note ".." can be shortened to ".", because no other words in command levels begin with dot.

- Help -

The console has a built-in help, which can be accessed by typing '?'. General rule is that help shows what you can type in position where the '?' was pressed (similarly to pressing tab key twice, but in verbose form and with explanations).

- Internal item numbers -

Items can also be addressed by their internal numbers. These numbers are generated by console for scripting purposes and, as the name implies, are used internally. Although you can see them if you print return values of some commands (internal numbers look like hex number preceded by '*' - for example "*100A"), there's no reason for you to type them in manually. Use of invalid internal numbers can result in severe injury of your router configuration.

- Multiple items -

You can specify multiple items as targets of some commands. Almost everywhere, where you can write the number of items, you can also write a list of numbers:

[drax]> interface print

#
NAME
STATE
TYPE
MTU
0
ether5
up
ethernet
1500
1
ether1
up
ethernet
1234
[drax]> interface set "0 1" mtu 1600
[drax]> interface print
#
NAME
STATE
TYPE
MTU
0
ether5
up
ethernet
1600
1
ether1
up
ethernet
1600

This is handy when you want to perform same action on several items, or do a selective export. However, this feature becomes really useful when combined with scripting.

- Return values -

The router console has limited scripting capability. Syntax is simple and similar to TCL. There's a new command "find" added to many of the command levels for scripting use. This command doesn't print anything on screen. Instead, it creates a return value that contains internal numbers of items that match parameters of the "find" command. This return value can be used in another command, by placing "find" in square brackets:

[drax]> interface
[drax] interface> print from [find name ether5]

#
NAME
STATE
TYPE
MTU
0
ether5
up
ethernet
1600
[drax] interface> set 0 mtu 1001
[drax] interface> print from [find mtu 1001]
#
NAME
STATE
TYPE
MTU
0
ether5
up
ethernet
1001

If you don't give "find" any arguments, it returns internal numbers of all items:

[drax] interface> set [find] mtu 1500
[drax] interface> print

#
NAME
STATE
TYPE
MTU
0
ether5
up
ethernet
1500
1
ether1
up
ethernet
1500

You can see the return value of "find" command (and other router commands) using ":put" command:

[drax] interface> :put [find]
*10002 *10001

These are internal numbers of all router interfaces. Also, there's a trailing space after last number, so you can concatenate results of several "find" commands:

[drax] interface> print from [find][find]

#
NAME
STATE
TYPE
MTU
0
ether5
up
ethernet
1500
1
ether1
up
ethernet
1500
3
ether5
up
ethernet
1500
4
ether1
up
ethernet
1500

- Time Setting -

In the console time can be set in various ways. If it is just a number, then it is in seconds. You can also enter the following values:

"d", "da", "day", "days" - 86400 seconds (1 day)
"h", "ho" ... "hours" - 3600 seconds (1 hour)
"m", "mi", "min" - 60 seconds (1 minute)
"s" - 1 seconds (1 second)
"ms" - 1 millisecond

If the is no number before the letters, it will be one unit. You also can use decimal numbers. Multiple time intervals can be written consequently - they will be summarized.

- Variables -

The console has variables that can store string values. Assigning such a variable is done by ":set" command:

[drax]> :set var1 J.Random.String

If the value is assigned to a non-existing variable, it's created, otherwise current value is replaced. To access the value of variable, you have to type "$" followed by the name of the variable, and it will be replaced by the value of the variable:

[drax]> :put $var1
J.Random.String
[drax]> :put $var1-$var1-yo-ho-ho-$var1
J.Random.String-J.Random.String-yo-ho-ho-
J.Random.String

- Magic Variables -

There are two magic variables in the console. "_" (underscore) has the last valid command entered.

[drax]> /system clock print
jun/16/2000 17:06:57
[drax]> :put $_
/system clock print
[drax]> :put $_
:put $_

The second magic variable is the "^" (caret). It contains the return value of the last executed command. Note that all commands return values (even if they're empty strings), so if you want to use the return value of some command (say, "find") several times, you have to assign it to normal variable. In the console, "^" is used to export some items:

[drax]> ip firewall static-nat
[drax] ip firewall static-nat> print

(0)
;;; blah-blah
  ;;; yadda-yadda
  src-address: 0.0.0.0 src-netmask: 0.0.0.0 src-port: 0-65535
  dst-address: 0.0.0.0 dst-netmask: 0.0.0.0 dst-port: 0-65535 interface: all
  translate: no direction: in protocol: all to-src-address: 0.0.0.0
  to-dst-address: 0.0.0.0 to-src-netmask: 0.0.0.0 to-dst-netmask: 0.0.0.0
  to-src-port: 0 to-dst-port: 0

[drax] ip firewall static-nat> export
/ip firewall static-nat
add interface all src-address 0.0.0.0 src-netmask
0.0.0.0 \
dst-address 0.0.0.0 dst-netmask 0.0.0.0 protocol
all \
src-port 0-65535 dst-port 0-65535 to-src-address
0.0.0.0 \
to-dst-address 0.0.0.0 to-src-netmask 0.0.0.0 \
to-dst-netmask 0.0.0.0 to-src-port 0 to-dst-port 0
translate no \ direction in
comment $^ blah-blah\nyadda-yadda
disable $^
[drax] ip firewall static-nat>

Here, "add" returns internal number of item the it has added, and "comment" command returns list of internal numbers of items it received as the first argument. Thus "comment $^" will add comment to the item created by "add", and "disable $^" will disable this item.

- General layout of command levels -

There are two different kinds of command levels. First, there are levels that allow you to work with lists of similar items - routes, interfaces, users and the like. Second, there are levels that allow you to change some general parameters - time, bridge settings etc.

Most command groups have some or all of these commands:

print
set
remove
add
find
export
enable
disable
comment

These commands have similar behaviour in all hierarchy.

- print -

The "print" command shows all information that's accessible from particular command level. Thus, "/system time print" shows system time, "/ip route print" shows all routes etc. If there's a list of items in this level and they are not read-only, i.e. you can change/remove them (example of read-only item list is "/system history", which shows history of executed actions), then "print" command also assigns numbers that are used by all commands that operate on items in this list. Thus, "print" usually must be executed before any other commands in the same command level.

If there's list of items then "print" usually can have a "from" argument. The "from" argument accepts space separated list of item numbers, names (if items have them). and internal numbers. The action (printing) is performed on all items in this list in the same order in which they're given.

- set -

The "set" command allows you to change values of general parameters or item parameters. The "set" command has arguments with names corresponding to values you can change. Use "?" or double tab to see list of all arguments. If there is list of items in this command level, then set has one unnamed argument that accepts the number of item (or list of numbers) you wish to set up. Values for unnamed arguments must follow right after the name of the command, and their order can't be changed. Example: in firewall rules, the "set" command has two unnamed arguments - first is the name of chain and second is the number of rule in this chain. "set" returns internal numbers of items it has set up.

- remove -

"remove" has one unnamed argument which contains number(s) of item(s) to remove.

- add -

"add" usually has the same arguments as "set", minus the unnamed number argument. It adds new item with values you've specified, usually to the end of list (in places where order is relevant). There are some values that you have to supply (like interface for new route), and other values that are set to defaults if you don't supply them. The "add" command returns internal number of item it has added.

- find -

The "find" command has the same arguments as "set", and an additional "from" argument which works like the "from" argument with the "print" command. The "find" command returns internal numbers of all items that have the same values of arguments as specified.

- export -

The "export" command prints a script that can be used to restore configuration. If it has the argument "from", then it is possible to export only specified items. Also, if the "from" argument is given, "export" does not descend recursively through the command hierarchy. "export" also has the argument "file", which allows you to save the script in file on router to retrieve it later via ftp. Argument "noresolve" is used to disable reverse resolving of IP addresses if it proves to be problem.

- enable/disable -

You can enable/disable some items (like ip address or default route). Is an item is disabled, it number is shown in parenthesis. If an item is inactive, but not disabled, it number is shown in brackets.

- comment -

You can add comments to any item. If item is commented, comments are shown after item number before all parameters and prefixed with ";;;".

  to the contents

 

3. Device Driver Management

Device drivers represent the software interface part of installed network devices. For example, the MikroTik system includes device drivers for NE2000 compatible Ethernet cards and other network devices. If you need a device driver for a device, which is not on the list, please suggest it at our suggestion page on our web site.

Most device drivers are loaded automatically. For instructions on specific device drivers see the supported interfaces below.

Unloading of device driver is useful when changing network devices - this can be useful to save system resources in avoiding loading drivers for devices which have been removed from the system. This may be done automatically by removing the card and rebooting before inserting the new network device. The device drivers can be removed only if the appropriate interface has been disabled first.

Managing Device Drivers from Java

Select the "Drivers" menu to display the currently installed drivers. New drivers can be installed by selecting the . Existing drivers can be removed by selecting the as long as their status is 'disabled' (set in the Interface menu). PCI drivers cannot be removed.

Managing Device Drivers from Console

Driver management commands are located in the "driver" menu.

Command syntax Description
load <driver name> [irq <IRQ>]
[io <IO range start>]
[mem <shared memory>]
Load driver
unload <number> Unload driver
print Show loaded drivers
find [from] [inactive] [name] [irq] [memory] [io] Search driver configuration

Where <number> is number of a loaded driver, which can be viewed in the list, generated by the "print" command.

Device Driver Parameters

Name in Console Name in Java Description
name Driver Neme of driver to install*
irq IRQ Interrupt Request Number. Can be omitted if device does not use IRQ. For IRQ probing enter 0 in Java Box.
io IO Input/Output port range base address. Can be omitted if device does not use IO ports. If you want to enter I/O port range base address in hexadecimal form, you should put "0x" before it, e.g. 0x300
mem MEM Shared Memory base address. Can be omitted if device does not use Shared Memory.

*- In console use abbreviated form of driver name, available from help.

Supported interfaces

PCI Cards (loaded automatically, can't be loaded by name)

Driver name: ne2k-pci

Interfaces: RealTek RTL-8029
Winbond 89C940
Compex RL2000
KTI ET32P2
NetVin NV5000SC
Via 86C926
SureCom NE34
Winbond
Holtek HT80232
Holtek HT80229

Driver name: 3c95x (3Com 3c590/3c900 series Vortex/Boomerang driver)

This device driver is designed for the 3Com FastEtherLink and FastEtherLink XL, 3Com's PCI to 10/100baseT adapters. It also works with the 10Mbs versions of the FastEtherLink cards. The supported product IDs are shown in the following table:

Interfaces: 3c590, 3c592, 3c595, 3c597, 3c900, 3c905
3c590 Vortex 10Mbps
3c595 Vortex 100baseTx
3c595 Vortex 100baseT4
3c595 Vortex 100base-MII
3Com Vortex
3c900 Boomerang 10baseT
3c900 Boomerang 10Mbps Combo
3c900 Cyclone 10Mbps Combo
3c900B-FL Cyclone 10base-FL
3c905 Boomerang 100baseTx
3c905 Boomerang 100baseT4
3c905B Cyclone 100baseTx
3c905B Cyclone 10/100/BNC
3c905B-FX Cyclone 100baseFx
3c905C Tornado
3c980 Cyclone
3cSOHO100-TX Hurricane
3c555 Laptop Hurricane
3c575 Boomerang CardBus
3CCFE575 Cyclone CardBus
3CCFE656 Cyclone CardBus
3c575 series CardBus (unknown version)
3Com Boomerang (unknown version)

Driver name: lmc

Interfaces: LanMedia LMC5200
LanMedia LMC5245
LanMedia LMC1000

Driver name: eepro100 (Intel i82557/i82558 PCI EtherExpressPro driver)

This device driver is designed for the Intel i82557 "Speedo3" chip, Intel's single-chip fast Ethernet controller for PCI, as used on the IntelEtherExpressPro 100 adapter.

Driver name: tulip

This device driver is designed for the DECchip "Tulip", Digital's single-chip ethernet controllers for PCI. Supported members of the family are the 21040, 21041, 21140, 21140A, 21142, and 21143. Similar work-alike chips from Lite-On, Macronics, ASIX, Compex and other listed below are also supported.

Interfaces: Digital DC21040 Tulip
Digital DC21041 Tulip
Digital DS21140 Tulip
Digital DS21143 Tulip
D-Link DFE 570TX
Lite-On 82c168 PNIC
Macronix 98713 PMAC
Macronix 98715 PMAC
Macronix 98725 PMAC
ASIX AX88140
Lite-On LC82C115 PNIC-II
ADMtek AN981 Comet
Compex RL100-TX
Intel 21145 Tulip
Xircom Tulip clone

Driver name: rtl8139

This device driver is designed for the RealTek RTL8129, the RealTek Fast Ethernet controllers for PCI. This chip is used on a few clone boards.

Interfaces: RealTek RTL8129 Fast Ethernet
RealTek RTL8139 Fast Ethernet
SMC1211TX EZCard 10/100 (RealTek RTL8139)
Accton MPX5030 (RealTek RTL8139)

Driver name: winbond-840

This driver is for the Winbond w89c840 chip.

Interfaces: Winbond W89c840
Compex RL100-ATX

ISA Cards

Driver name: ne2k-isa

Interface: NE2000

Driver name: 3c509

Interface: 3c509

ISDN Cards

Only PCI ISDN cards are supported.

  to the contents

4. Network Interface Management

Introduction

An Interface is physical or virtual device which provides a connection to an external network. Network interfaces are created automatically when the Network Interface Card driver is loaded. Virtual (software) interfaces can be created manually.

Managing Network Interfaces from Java

Select the "Interfaces" menu to open the interface list window. The interfaces list displays basic interface parameters. Interface type specific parameters can be changed from interface details windows (opened by double clicking on icon to the left from interface name). The Interface details window has a standard "Traffic" tab which displays traffic that enters and leaves router through the interface. It can also contain other tabs with interface type specific parameters.

The Interfaces list window also contains a "blink" button. Selecting this button causes traffic to be generated on the highlighted interface and therefore blink the LEDs (light emitting diodes) on the card so that an administrator can determine which Interface name corresponds to the actual interface (when there are multiple interfaces of the same type). Some interfaces must have an Ethernet cable connected before the lights will blink. Note that not all interfaces support this function.

Managing Network Interfaces from Console

Network interface commands and submenus are located in the "interface" menu. It contains several commands that are common to all interfaces:

Command syntax Description
print Show interface summary
set <interface number> [up] [down]
[name <new name>] [mtu <MTU>]
Change basic interface properties
find [from] [name] [mtu] [up][down]  
export [file <name>] [noresolve]  
blink <interface number> Generate traffic to blink LEDs
monitor-traffic <interface number> Monitor traffic on interface

Whre <interface> is interface name or number obtained from "print" command.

The "interface" menu also contains device type specific submenus with device type specific commands. The following device type submenus can be available, depending on what features are licensed for a particular installation:

Submenu Description
ethernet Ethernet interfaces
ppp Async PPP interfaces
synchronous Moxa Sync interfaces
pptp-client PPTP dial-out interfaces
pptp-server PPTP server connections
bridge Bridge interface
arlan Arlan IC2200 interfaces
radiolan RadioLAN interfaces
wavelan WaveLAN IEEE 802.11 interfaces
pc Aironet 35/45/4800 interfaces
samsung Samsung IEEE 802.11 interfaces

Basic Interface Parameter Description

Name in Console Name in Java Description
name Name Human friendly name for the interface. Maximum 31 character.
up Enbled (yes) Enable interface
down Enabled (no) Disable interface
mtu MTU Maximum Transfer Unit (in bytes)
arp ARP Address Resolution Protocol Settings
disabled
  Disable ARP protocol, use only static ARP entries
enabled
  Enable ARP protocol for an interface (send ARP requests and replies)
proxy-arp
  Enable ARP protocol for an interface and also reply on ARP requests about IP addresses for which the router is a gateway

Ethernet Interfaces

Ethernet interfaces include standard 10/100 Mbit Ethernet network interface. Ethernet interfaces do not have any device type dependent parameters. Each Ethernet interface has its MAC-address (Medium Access Control).

Managing Ethernet Interfaces from Java

Ethernet interface parameters can be changed from interface list window or from interface details window "General" tab.

Managing Ethernet Interfaces from Console

Ethernet interface management is done in submenu "interface ether".

Command syntax Description
print [<interface>] Show interface(s) information
set <interface> [up] [down]
[name <new name>] [mtu <MTU>]
[arp disabled|enabled|proxy-arp]
Change interface properties
find  
export  

Where <interface> is interface name or number obtained from "print" command.

Ethernet Interface Parameters

Name in Console Name in Java Description
up/ down Enabled (yes/ no) Set Ethernet interface up or down
mtu MTU Maximum Transfer Unit.
Maximum packet size to be transmitted
arp ARP Address Resolution Protocol Settings
mac-address
MAC Address Medium Access Control Address

PPP Server

PPP (or Point-to-Point Protocol) provides a method for transmitting datagrams over serial point-to-point links. The 'com1' and 'com2' ports from standard PC hardware configurations will appear as 'serial0' and 'serial1' automatically. It is possible to add thirty-two additional serial ports with the Moxa C168 PCI multiport asynchronous card (eight ports each) to use the router for a modem pool.

Managing PPP Server from Java

To add PPP server interface, you have to choose "Interfaces" and click "Add New" . Then choose PPP Server and set all PPP server settings. When next time you want to change PPP server settings or check out status or traffic of the PPP server you have to double click on PPP server interface you added in the Interfaces list.

Managing PPP Server from Console

PPP server management is done in the submenu "interface ppp-server".

Command syntax Description
print Show interface(s) information
set <interface> [up] [down]
[name<new name>] [mtu <MTU>]
[mru <MRU>] [port-id <id>]
[pap no|yes] [chap no|yes]
[ms-chap no|yes] [ms-chapv2 no|yes]
[encryption none|optional|required| stateless]
[ring-count <rings>]
[idle-timeout <time>]
[null-modem <on|off>]
[modem-init <string>]
[local-address <address>]
[remote-address <address>]
Change interface properties
find  
export  
monitor <interface> Monitor interface status in real time

Where <interface> is interface name or number obtained from "print" command.

PPP Client

Managing PPP Client from JAVA

To add PPP client interface, you have to choose "Interfaces" and click "Add New" . Then choose PPP Client and set all PPP client settings. When next time you want to change PPP client settings or check out status or traffic of the PPP client you have to double click on PPP client interface you added in the Interfaces list.

Managing PPP Client from console

PPP server management is done in the submenu "interface ppp-server".

Command syntax Description
print Show interface(s) information
set <interface> [up] [down]
[name<new name>] [mtu <MTU>]
[mru <MRU>] [port-id <id>]
[pap no|yes] [chap no|yes]
[ms-chap no|yes] [ms-chapv2 no|yes]
[user <name>]
[encryption none|optional|required| stateless]
[tone-dial <enable|disable>]
[dial-on-demand <enable|disable>]
[add-default-route <address>]
[phone <number>]
[idle-timeout <time>]
[null-modem <on|off>]
[modem-init <string>]
[local-address <address>]
[remote-address <address>]
[use-peer-dns <enable|disable>]
Change interface properties
find  
export  
monitor <interface> Monitor interface status in real time

PPP Interface Parameters

Name in Console Name in Java Description
mtu MTU Maximum Transfer Unit.
Maximum packet size to be transmitted
mru MRU Maximum Size of received packets
pap/ms-chap/ chap/ms-chapv2 Authentication Allow Authentication protocol type
encryption Encryption Which encryption to use.
none
none No encryption is used. If the other end supports compression, it will be used
optional
optional If the other end supports encryption, it will be used
required
required Encryption is required, without it connection won't be established
stateless
stateless Stateless-MPPE is required. Router will use MPPE-128bit or MPPE-40bit depending on the other end of connection. In stateless mode password will be changed before every packet is transmitted
user User User name to use to log into server when dialing out. Can contain letters, digits, "@", "-",".", or be "*"
phone Phone Number Phone number to call when dialing out
tone-dial Tone Dial Enable/Disable tone dial
ring-count Rings Number of rings to wait before answering phone
null-modem Null Modem Enable/Disable null-modem mode (when enabled, no modem initialization strings are sent). Default value is "on" (for COM1 and COM2 only). So by default null-modem is turned on.
dial-on-demand Dial On Demand Enable/Disable dial on demand
idle-timeout Idle Time Idle time after which close connection
modem-init Modem Init Modem Initialization String
add-default-route Add Default Route Add PPP remote address as a default route. Other settings are: destination=0.0.0.0 netmask=0.0.0.0 interface=ppp, preferred source=0.0.0.0
local-address Local Address Local IP Address
remote-address Remote Address Remote IP Address

Moxa Sync Interfaces

Moxa Sync interfaces supports the Moxa C101 Sync adapters. Moxa C101 hardware specific instructions come together with the C101 when purchased from "MirkoTikls".

Managing Moxa Sync Interfaces from Java

Moxa Sync specific parameters can be controlled from "Synchronous" tab in interface details window. Current status (status of modem control lines, time since last keepalive and sequence number difference) can be monitored in real time under the "Status" tab in interface details window.

Managing Moxa Sync Interfaces from Console

Moxa Sync interface management is done in submenu "interface sync".

Command syntax Description
print [<interface>] Show interface(s) information
set <interface> [up] [down]
[name<new name>] [mtu <MTU>]
[keepalive-interval <keepalive>]
[speed <speed>]
[rx-clock-source <internal|line>]
[tx-clock-source <internal|line|rxc>]
[ignore-dcd <yes|no>]
Change interface properties
monitor <interface> Monitor interface status in real time

Where <interface> is an interface name or number obtained from "print" command.

Interface status includes status of modem control lines (DTR, RTS, CTS, DSR, DCD), time since last keepalive, and sequence number difference.

Moxa Sync Interface Parameters

Name in Console Name in Java Description
keepalive Keepalive Interval after which keepalive is sent (in seconds)
speed Speed Speed of internal clock
rx-clock-source Rx Clock Source Receive clock source
tx-clock-source
Tx Clock Source Transmit clock source
ignore-dcd Null Modem Enable/Disable null-modem mode (ignore DCD signal)

PPTP Server

PPTP (Point-to-Point Tunneling Potocol) provides a method for transmitting datagrams over IP network encapsulated into PPP protocol. Configuring PPTP server is much like configuring PPP server.

PPTP tunnels are used to create virtual private networks. You can connect two private networks via PPTP tunnel.

Managing PPTP Server from Java

You can configure PPTP Server settings by clicking icon. Then set all parameters as necessary. Read about PPTP Server parameters below.

Managing PPTP Server from Console

Go to the “interface pptp-server” menu.

Command syntax Description

monitor <interface number>

Monitor interface

print

Print PPTP server information

set <interface name> [name][up] [down]

Set PPTP server name and status

find

Find

export

Export PPTP server settings

"ip pptp-server" menu commands:

Command syntax Description

set [enabled no|yes]
[pap no|yes] [chap no|yes]
[ms-chap no|yes]
[ms-chapv2 no|yes]
[encryption none|optional| required|stateless]
[mtu <mtu>] [mru <mru>]
[idle-timeout hr:min:sec]
[local-address-from <address>]
[local-address-to <address>]
[remote-address-from <address>]
[remote-address-to <address>]

Configure PPTP settings

print

Print PPTP server information

export

Export PPTP server settings

PPTP Server Parameters

Name in Console Name in Java Description

enabled

Enabled

Enable/disable PPTP server

pap

PAP

Use PAP authentication

chap

CHAP

Use CHAP authentication

ms-chap

MS-CHAP

Use MS-CHAP authentication

ms-chapv2

MS-CHAP v2

Use MS-CHAP v2 authentication

encryption

Encryption

Which encryption to use. Encryption works only with MS-CHAP and MS-CHAP v2.

none

none

No encryption is used. If the other end supports compression, it will be used

optional

optional

If the other end supports encryption, it will be used

required

required

Encryption is required, without it connection won’t be established

stateless

stateless

Stateless-MPPE is required. Router will use MPPE-128bit or MPPE-40bit depending on the other end of connection. In stateless mode password will be changed before every packet is transmitted

mtu

MTU

Maximum Transfer Unit (in bytes)

mru

MRU

Maximum Size of received packets

idle-timeout

Idle Time

Connection time out

local-address-from
local-address-to

Local Addr. From/To

Range of local IP addresses for PPTP connection

remote-address-from
remote-address-to

Remote Addr. From/To

Range of remote IP addresses for PPTP connection

PPTP Client

Managing PPTP Client from Java

You can configure PPTP Client settings by clicking icon. Then set all parameters as necessary. Read about PPTP Client parameters below.

Managing PPTP Client from Console

Go to the "interface pptp-client" menu. The following commands are possible there:

Command Syntax Description

monitor <interface number>

Monitor interface

print

Print PPTP client information

set <number>
[name <interface name>] [up] [down]
[mtu <mtu>] [mru <mru>]
[pap no|yes] [chap no|yes]
[ms-chap no|yes]
[ms-chapv2 no|yes]
[encryption none|optional|required|stateless]
[idle-timeout hh:mm:ss]
[user <name>]
[connect-to <address>]

Configure PPTP client

add [name <interface name>] [up] [down]
[mtu <mtu>] [mru <mru>]
[pap no|yes] [chap no|yes]
[ms-chap no|yes]
[ms-chapv2 no|yes]
[encryption none|optional|required|stateless]
[idle-timeout hh:mm:ss]
[user <name>]
[connect-to <address>]

Add new PPTP client

remove <number>

Remove PPTP client

find

Find

export

Export PPTP client settings

PPTP Client Parameters

Name in Console Name in Java Description

up/down

Enabled

Enable/disable PPTP interface

name

Name

PPTP client interface name

pap/chap/
ms-chap/
ms-chapv2

PAP/CHAP/
MS-CHAP-
MS-CHAP v2

Authentication type to be used

encryption

Encryption

Which encryption to use. Encryption works only with MS-CHAP and MS-CHAP v2.

none

none

No encryption is used. If the other end supports compression, it will be used

optional

optional

If the other end supports encryption, it will be used

required

required

Encryption is required, without it connection won’t be established

stateless

stateless

Stateless-MPPE is required. Router will use MPPE-12bit or MPPE-40bit depending on the other end of connection.

user

User

User name to use to log into server when dialing out. Can contain letters, digits, “@”, “-“,”.”, or be “*”

connect-to

Connect To

PPTP server address to connect to

mtu

MTU

Maximum Transfer Unit (in bytes)

mru

MRU

Maximum Size of received packets

idle-timeout

Idle Time

Connection time out

PPPoE Server

PPPoE (Point-to-Point Potocol over Ethernet) provides a method for transmitting datagrams over ethernet encapsulated into PPP protocol. Configuring PPPoE server is much like configuring PPP server.

Example PPPoE server configuration:
/ip pppoe-server set ether1 server-name ExampleServer pap yes chap yes ms-chapv2 yes encryption optional compression no mtu 1460 mru 1460 idle-timeout 0 local-address-from 10.0.0.1 local-address-to 10.0.0.127 remote-address-from 10.0.0.128 remote-address-to 10.0.0.254
/ip pppoe-server enable ether1

This configures PPPoE server on ether1 interface. ether1 interface should be up. No ip address configuration is required on interface. Next thing is to add users with group PPP. We will add user test with password seCreT in this example:
/user add name test password seCreT group ppp

Next, configure general PPP settings - name server addresses that will be provided to PPPoE client. For example:
/ip ppp set primary-dns 159.148.60.2 secondary-dns 159.148.108.1 authentication local

Managing PPPoE Server from JAVA

PPPoE server from JAVA you can manage in Interface list window by choosing General settings and then PPPoE server.

Managing PPPoE Server from console

It is done from "interface pppoe-server" submenu.

Command syntax Description

monitor <interface number>

Monitor interface

print

Print PPPoE server information

set <interface name> [name][up] [down]

Set PPPoE server name and status

find

Find

export

Export PPPoE server settings

And "ip pppoe-server" submenu.

Command Syntax Description

<enable | disable> <interface>

Enable or disable PPPoE server on interface

print

Print PPPoE server configuration

set <interface name> [server-name <name>]
[pap <yes | no>] [chap <yes | no>]
[ms-chapv2 <yes | no>] [mtu <MTU>]
[mru <MRU>]
[encryption <none|optional|required|stateless>]
[compression <yes | no>]
[idle-timeout <time>]
[local-address-from <address>]
[local-address-to <address>]
[remote-address-from <address>]
[remote-address-to <address>]

Configure PPPoE server

PPPoE Client

Managing PPPoE Client from JAVA

You can configure PPPoE Client settings by clicking icon. Then set all parameters as necessary.

Managing PPPoE Client from console

It is done from "interface pppoe-client" submenu.