The Hello Protocol
It's really better not to use HELLO unless you have a specific need
for it. We plan to drop it some time around GateD 4.0.
The HELLO protocol is an interior protocol that uses a routing metric
based on the length of time it takes a packet to make the trip between
the source and the destination. HELLO packets carry timestamp
information which allows receivers to compute the shortest delay paths
to destinations. The "best" route is the route with the shortest time
delay. The unit of time used in HELLO is milliseconds. If a HELLO
update packet takes less than 100 milliseconds to travel between two
routers, a minimum value of 100 is used for that hop. Thus on
networks built of high-speed interfaces HELLO essentially defaults to
using hop counts. As in any routing algorithm, HELLO cannot change
routes too rapidly or it would be unstable. To avoid instabilities,
implementations of HELLO build in hysteresis and "hesitate" to change
routes until they have confidence that the change will be lasting.
By default HELLO, like RIP, uses the kernel interface metric set by the
ifconfig
command to influence metric added to routes as
they are installed in the routing table (metricin
).
Since the kernel interface metric is in hops, it must be translated
into HELLOs millisecond metric. In order to do that, the following
table is used:
Hops HELLO metric
0 0
1 100
2 148
3 219
4 325
5 481
6 713
7 1057
8 1567
9 2322
10 3440
11 5097
12 7552
13 11190
14 16579
15 24564
16 30000
HELLO and network masks
HELLO derrives the network mask of received networks and hosts from
the network mask of the interface the packet via which the packet was
received. If a received network or host is on the same natural
network as the interface over which it was received and that network
is subnetted (the specified mask is more specific than the
natural netmask), the subnet mask is applied to the
destination. If bits outside the mask are set it is assumed to be a
host, otherwise it is assumed to be a subnet.
On point-to-point interfaces, the netmask is applied to the remote
address. The netmask on these interfaces is ignored if it matches the
natural network of the remote address or is all ones.
Unlike in previous releases, the zero subnet mask (a network that
matches the natural network of the interface, but has a more specific,
or longer, network mask) is ignored. If this is not desirable, a route filter may be used to reject it.
The Hello Statement
hello yes | no | on | off [ {
broadcast ;
nobroadcast ;
preference preference ;
defaultmetric metric ;
interface interface_list
[nohelloin] | [helloin]
[nohelloout] | [helloout]
[metricin metric]
[metricout metric] ;
trustedgateways gateway_list ;
sourcegateways gateway_list ;
traceoptions trace_options ;
} ] ;
the hello
statement enables or disables HELLO. If the
hello
statement is not specified the default is
hello off
. If enabled, HELLO will assume
nobroadcast
when there is only one interface and
broadcast
when there is more than one interface.
- broadcast
- Specifies that HELLO packets will be broadcast regardless of the
number of interfaces present. This is useful when propagating static
routes or routes learned from anther protocol into HELLO. In some
cases, the use of
broadcast
when only one network
interface is present can cause data packets to traverse a single
network twice.
- nobroadcast
- Specifies that HELLO packets will not be broadcast on attached
interfaces, even if there are more than one.
If a
sourcegateways
clause is present, routes will still
be unicast directly to that gateway.
- preference preference
- Sets the preference for routes learned from HELLO. The default
preference is op. This preference may be overridden by a preference
specified in import policy.
- defaultmetric metric
- Defines the metric used when advertising routes via HELLO that were
learned from other protocols. If not specified, the default value is
30000 (unreachable). This choice of values requires you to explicitly
specify a metric in order to export routes from other protocols into
HELLO. This metric may be overridden by a metric specified in export
policy.
- interface interface_list
- Controls various attributes of sending HELLO on specific
interfaces. See the section on inteface list specification for the description of the
interface_list.
Note that if there are multiple interfaces configured on the same
subnet, HELLO updates will only be sent from first one one which
HELLO output is configured. This limitation is required because of
the way the Unix kernel operates. It will hopefully be removed
in a future release.
The possible parameters are:
- nohelloin
- Specifies that HELLO packets received via the specified
interface will be ignored. The default is to listen to
HELLO on all non-loopback interfaces.
- helloin
- This is the default. This argument may be necessary
when
nohelloin
is used on a wildcard interface
descriptor.
- nohelloout
- Specifies that no HELLO packets will be sent on the
specified interfaces. The default is to send HELLO on all
broadcast and non-broadcast interfaces when in
broadcast
mode. The sending of HELLO on
point-to-point interfaces must be manually configured.
- helloout
- This is the default. This argument is necessary when it
is desired to send HELLO on point-to-point interfaces and
may be necessary when
nohelloin
is used on a
wildcard interface descriptor.
- metricin metric
- Specifies the HELLO metric to add to incoming routes before
they are installed in the routing table. The default is
the kernel interface metric plus 1 (which is the default
HELLO hop count). If this value is specified it will be
used as the absolute value, the kernel metric will not be
added. This option is used to make this router prefer
HELLO routes learned via the specified interface(s) less
than HELLO routes from other interfaces.
- metricout metric
- Specifies the HELLO metric to be added to routes that are
send via the specified interface(s). The default is
zero. This option is used to make other routers prefer
other sources of HELLO routes over this router.
- trustedgateways gateway_list
- Defines the list of gateways from which
HELLO will accept updates. The
gateway_list is simply a list of host names or IP
addresses.
By default, all routers on the shared network are trusted to
supply routing information. But if the
trustedgateways
clause is specified only updates
from the gateways in the list are accepted.
- sourcegateways gateway_list
- Defines a list of routers to which HELLO sends
packets directly, not through multicast or broadcast. This can be
used to send different routing information to specific gateways.
Updates to gateways in this list are not affected by
noripout
on the interface.
- traceoptions trace_options
- Specifies the tracing options for HELLO.
(See Trace Statements and the HELLO specific
tracing options below.)
The default preference is 90. The default metric is 30000.
Tracing options
The policy
option logs info whenever a new route is
announce, the metric being announced changes or a route goes or leaves
holddown.
Packet tracing options (which may be modified with
detail
, send
and/or recv
):
- packets
- All HELLO packets
Last updated 1995/04/19 18:42:12.
gated@gated.cornell.edu