Configuring BIANCA/X.25 - link definitions - routing

Index
1. BinTec/X.25 - Introduction

2. BIANCA/X.25

2.1 BIANCA/X.25 link/partner definitions - part 1
(settings according to the transport medias -> "creating X.25 interfaces")
2.2 BIANCA/X.25 link/partner definitions - part 2 (data link charateristics)
2.3 BIANCA/X.25 routing
2.4 BIANCA/X.25 listener

1. BinTec/X.25 - Introduction
------------------------------------------------------------------------------
o X.25 Networking
o Data Links and Virtual Channels
o X.25 Interfaces
o X.25 Routing
o X.25 Data Encapsulation

o X.25 Networking
-----------------
To help you understand X.25 networking, the following sections explain the
ideas behind Data Links, Virtual Channels, Interfaces, Routing, and
Encapsulation relevant to X.25 on BIANCA/X.25.

o Data Links and Virtual Channels
---------------------------------
A data link is a direct, point-to-point, (layer 3) connection between two X.25
stations.
The physical connection can be via an ISDN B or D channel, an X.21 connection,
or an ethernet connection (LLC2). On a point-to-multipoint physical medium
(i.e. ethernet or ISDN b channel), multiple point-to-point data links are
multiplexed over the same physical interface.

A virtual channel (VC) is a Logical Connection that is multiplexed onto a data
link. This means that multiple X.25 connections can exist over the same
physical medium, simultaneously.

o X.25 Interfaces
-----------------
In X.25, each data link uses one x25lines definition. The characteristics of
each data link are defined in the file x25lines (BIANCA/X.25).

o X.25 Routing
--------------
The routing of X.25 packets is accomplished via the x25routes file.

o X.25 Data Encapsulation
-------------------------
There is a fixed encapsulation (x25 -> X.75 encapsulation is used
-> NOL3;X.75 in the services file).

2. BIANCA/X.25
------------------------------------------------------------------------------

2.1 BIANCA/X.25 link/partner definitions - part 1
------------------------------------------------------------------------------
- settings according to the transport medias (ISDN B or D channel, X.21, LLC)

o BIANCA/X.25 transported over ISDN-B channel (X.31)
o BIANCA/X.25 transported over ISDN-D channel (X.31)
o BIANCA/X.25 transported over an X.21 interface
o BIANCA/X.25 transported over Ethernet (LLC)

BIANCA/X.25 file: x25lines

o BIANCA/X.25 transported over ISDN-B channel (X.31)
----------------------------------------------------
line bchan_line # name of the line
type ISDN # Line type (ISDN for dialup lines)
partner partner1 # ISDN partner name, which has to be
# defined in /usr/isi/config/hosts
retries 1 # number of retries (default is 3)
{
device = isdn # name of the ISDN device (dev/isdn)
# With Solaris use dev/isdnx
protocol = tpi # tpi protocol has to be used
mode = AUTO # DTE, DCE or AUTO
...
}

For handling ISDN-Calls the following services file entries are often used:

LOCAL x25 0070004 NOL3
* x25 0070004 NOL3

depending on which EAZ/MSN should be used for dispatching calls, which are to
be handled by the xd (-> ISI/BASE manuals).

o BIANCA/X.25 transported over ISDN-D channel (X.31)
----------------------------------------------------
line dchan
{
device = ielcx # name of the ISDN adapter device
# (here: dev/ielcx, or e.g. dev/rm/bri1
# for a BRI card found at the second
# configured HW address (see FAQ 12
# how to find out, what devices you
# have)
push = hdlc # hdlc module has to be pushed
protocol = dlpi # dlpi protocol has to be used
profile = u_dss1_pmp # used D channel profile
sap = 2704 # 16+ISDN-TEI*64 (here: ISDN-TEI=42)
ppa = 0 # 256*Port+Channel (- handbook)
mode = DTE # should always be DTE
modulo = 8 # used for X.31
version = 1984 # in doubt ask your provider
def_packetsize_in = 128 # The packet and the window sizes
def_packetsize_out = 128 # settings should be fix for X.31 D
min_packetsize_in = 128 # channel, in doubt ask your provider
min_packetsize_out = 128
max_packetsize_in = 256
max_packetsize_out = 256
def_windowsize_in = 2
def_windowsize_out = 2
max_windowsize_in = 7
max_windowsize_out = 7
segsize = 64 # segment size -> only for accounting
ltc = 1 # ask your provider how many virtual
htc = 2 # links you are allowed to use
vcmax = 2 # (here: 2 two way channels)
...
}

Annotation:
To trace the X.25 packets in the D channel, you could use the tei filter, e.g.
ielctrace (britrace, ...) -h23 -T 42 0
||| | |- D-Channel
||| |------ set tei filter to TEI 42
|||--------- layer 3 output
||---------- layer 2 output
|----------- hexadecimal output

Example:
A ------- ISDN ------ PH -------- X25 --------- B
DSS1

If A want to access Datex-P, A have to use the DNIC, e.g. 0262:
4279933.579 X DATA[0017] Link_ID=2
INCOMING CALL / CALL REQUEST LCN=2 A=0 D=0
Called Address = 02624591102322
User Data = 01 00 00 00

If B wants to access a machine, which have activated X.31, it have to use
E.164, i.e 0049 + ONKZ + MSN, e.g.:
4288518.571 X DATA[0017] Link_ID=3
INCOMING CALL / CALL REQUEST LCN=2 A=0 D=0
Called Address = 00499116804803
User Data = 01 00 00 00

o BIANCA/X.25 transported over an X.21 interface
------------------------------------------------
line x21line # name of the line
{
device = x21x2 # name of the X.21 device (/dev/rm/x21x2)
channel = upper # upper or lower physical adapter interface
push = hdlc # hdlc modul has to be pushed
protocol = dlpi # dlpi protocol has to be used
profile = u_net2 # L1 and L2 is set to DTE
mode = DTE # layer 3 is set to DTE
...
}

o older releases used another notation for the X.21 device, which is still be
possible:
device = x21x6 (new notation)
channel = upper
is the same as
device = x21a6 (old notation)

device = x21x6 (new notation)
channel = lower
would be the same as
device = x21b6 (old notation)

Older releases: There are two devices /dev/rm/x21an und /dev/rm/x21bn
Newer releases: Only there is only one device /dev/rm/x21xn

The following settings are also possible:
profile = n_net2 # L1 and L2 is set to DCE
mode = DCE # layer 3 is set to DCE

# dlpi protocol settings (only if protocol = dlpi and profile = u_net2 or
# n_net2, i.e only for the X.21 hardware):
dlpiparam T201 = [value] # (CCITT T1) retransmission timer (def: 3000 ms)
dlpiparam T203 = [value] # (CCITT T3) link control timer (def: 10000 ms)
dlpiparam N201 = [value] # (CCITT N1) max number of bits in a layer 2
# frame (def: 261)
dlpiparam N20k = [value] # (CCITT k) max number of outstanding layer 2
# frames (window size) (def: 7)
# to overwrite the profile settings of layer 2/3 (u_net2/n_net2)
dlpiparam B2NT = 1 # L2 is set to DCE
dlpiparam B2NT = 0 # L2 is set to DTE
dlpiparam B1NT = 1 # L1 is set to DCE
dlpiparam B1NT = 0 # L1 is set to DTE
dlpiparam BAUD = [value] # specifies the transmission speed for layer 1
# only interpreted if L1 is in DCE mode

o BIANCA/X.25 transported over Ethernet (LLC)
---------------------------------------------

line llcline # name of the line
{
device = llcx # name of the LLC device (/dev/llcx)
push = hdlc # HDLC modul has to be pushed
protocol = dlpi # dlpi protocol has to be used
profile = llc2 # llc2 profile has to be used
ppa = 0 # everytime 0
sap = 42 # Not known at the moment, but is to be
# got a standard
dlpiaddr = 0, 0, 0, 0, 0, 0, 0x5a, 0x11, 0x90, 0xaf
# 4 times 0, then the ethernet address
# of the remote side
mode = AUTO # DTE, DCE or AUTO
...
}

2.2 BIANCA/X.25 link/partner definitions - part 2
------------------------------------------------------------------------------
- data link charateristics (X.25 version, L3 window size, packet size, virtual channels, facilties)

o X.25 version and segsize
o Layer 3 window size - packet size
o Layer 3 virtual channels
o The idletimer

BIANCA/X.25 file: x25lines

o BIANCA/X.25 version and segsize
---------------------------------
...
version = 1984 # 1980, 1984 or 1988
...
segsize = 64 # only for accounting purposes
# (-> handbook)
...

o BIANCA/X.25 Layer 3 window size - packet size
-----------------------------------------------
...
modulo = 8 # 8 or 128 are possible
def_packetsize_in = [size] # default incoming packet size
def_packetsize_out = [size] # default outgoing packet size
min_packetsize_in = [size] # minimum incoming packet size
min_packetsize_out = [size] # minimum outgoing packet size
max_packetsize_in = [size] # maximum incoming packet size
max_packetsize_out = [size] # maximum outgoing packet size
def_windowsize_in = [value] # L3 default incoming windowsize
def_windowsize_out = [value] # L3 default outgoing windowsize
max_windowsize_in = [value] # L3 maximum incoming windowsize
max_windowsize_out = [value] # L3 maximum outgoing windowsize

...
[size] .. 16, 32, 64, 128, 256, 512, 1024, 2048 and 4096
[value] .. has to be less than modulo

o good values for best performance are:
def_packetsize_in = 256
def_packetsize_out = 256
def_windowsize_in = 7
def_windowsize_out = 7
(values have to be in the range of the partner)

More information about performance you can get from BinTec's support
(support@bintec.de)

o BIANCA/X.25 Layer 3 virtual channels
--------------------------------------
...
ltc = [value] # lowest two-way-channel
htc = [value] # highest two-way-channel
vcmax = [value] # max number of VC's on this link
...
[value] .. beetween 1 and 4095, with ltc < htc
(for an exact definition see your handbook or man x25lines

o in most cases, only two way channels are used, so it is sufficient to
specify ltc, htc and vcmax. In this case vcmax = htc.
A typical example is:
ltc = 1
htc = 4095
vcmax = 4095

Annotation:
Ask your provider how many virtual channels
- you are allowed to use or
- you should configure.
(This is a often made failure!)

o BIANCA/X.25 The idletimer
---------------------------
...
idletimer = 10 # clear link after this idletime
...

Annotation:
The idletimer should be set to 0 for X.21 links and llc links.
The idletimer is only usefull for connections, which has costs depending on
the connection time. (It is the same as the thing with the shorthold when
making IP over ISDN; if you make IP over X.25 over ISDN you should also set the
idletimer to 0 and control the shorthold by the IP idletimer, i.e MINTIME for
BinTec solutions.)

2.3 BIANCA/X.25 routing
------------------------------------------------------------------------------
BIANCA/X.25 file: x25routes

o Introduction
o Example

o Introduction
--------------
A virtual call through a packet-switched network is initiated with a CALL
REQUEST packet being transmitted by the local DCE. The CALL REQUEST is routed
along precise rules by the network node. The packet header contains certain
parameters (e.g. the X.25 address) to define the link the packet will be sent
to. These parameters are responsible for routing decisions.

Each link could be referenced by its linename (-> x25lines file).
Two special link (line) names are:
local -> To route calls to or from the local host.
default -> To route calls originating from links, for which no explicit routing
table entry is made.

A routing table consists of alternatives in the form:
[if (<condition>] { <assignment> }
Important: You have to make routing tables for every line.

o Example
---------
line local
{ source_addr = 4591111111 } # set/rewrite the X.25
# source address for all
# outgoing calls, coming
# from line local
if (target_addr == 4591196733) { source_addr = 4591111112 }
# rewrite the above rule
# for this target link
line partner1
{ terminate local } # incoming calls from
# partner1 always terminate
# local
line default
if (target_addr == 4591111112) { target_addr = 4591111111 }
# rewrite the target X.25
# address -> so calls for
# this target addr are
# like the following
if (target_addr == 4591111111) { terminate local }
if (target_addr == 4591196731) { terminate partner1 }
if (target_addr == 4591196733) { terminate partner3 }
if (target_addr == 45.*) { terminate DATEXP } # for all other nat. X.25
# addresses route to the
# DATEX-P link
if (target_addr == 0.*) { reject } # no international calls
if (reverse_charging == TRUE) { reject } # accept no reverse
# charging for incoming
# calls
{ reject } # reject all others

Further possibilities (rewriting rules, etc. ) you can find in your X.25
handbook.

2.4 BIANCA/X.25 listener
------------------------------------------------------------------------------
BIANCA/X.25 file: x25listener

o Introduction
o Example

o Introduction
--------------
This file serves for configuring various services that are accessible through
the application programs. INCOMING CALL REQUEST packets may select and start
certain programs on the basis of the information contained in the source
and destination X.25 addresses. Entries in X25listener have the following
syntax:

<Source-addr>:<Service-addr>:<usr-name>:<grid>:<md1>[,<md2>..]:<Cmd>

Source-addr -> The calling party's X.25 address
Service-addr -> destination address
usr-name -> User name as entered in /etc/passwd
grid -> Group ID of the CUG (from /etc/group)
md -> STREAMS module names.
Cmd -> Program invocation including path and parameters

o Example
---------
.*:4591111111:root:wheel::/usr/bianca/bin/x29logind
.*:.*:root:wheel::echo no matching configuration

1. entry: All calls for the local link with the destination X.25 address
4591111111 execute the command /usr/bianca/bin/x29logind, which is the
login daemon for BinTec's PAD.

2. entry: All other calls will lead to the message "no matching configuration",
e.g. a call with the PAD which arrives with a target X.25 address
other than 4591111111.

 

Wichtige Links

FAQ-Indexseite
 
If you have comments or suggestions, send email  at support@BinTec.DE