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.