The IRDP is a protocol based on multicast route discovery ICMP messages. It eliminates the need for manual configuration of router addresses and is independent of any specific routing protocol. Therefore, it supplements a statically configured default router.
The ICMP router discovery messages are called router advertisements and router solicitations. By default, neither router discovery advertisements nor solicitations are sent over point-to-point links (for example, PPP). As the advertisement address, the router defaults to 224.0.0.1 if the router supports IP multicast on the interface; otherwise, 255.255.255.255 is used. Router solicitations are sent to 224.0.0.2. For further information, consult the RFC and the BSD manual page routed(8).
Example 12-10 demonstrates the IRDP featuring advertisements and client solicitations. In the gated example, IRDP server (advertiser) is running on ganymed, the Cisco IOS IRDP server on scar, callisto is listening via rdisc client, and castor is running routed -q "quiet mode" to demonstrate routed's IRDP client behavior; no dynamic routing protocols are running.
The preference statements (as highlighted in Example 12-10) allow weighting of the two available gateways. (This also works with two gateways on the same network.) The server side of the ICMP router discovery protocol is supported by Cisco IOS architecture, routed, and gated and can be tuned with preference statements. The command ip irdp multicast turns off the Cisco default broadcast behavior (also highlighted in Example 12-10).
Note that MRTd and Zebra do not support IRDP currently. Experimental code was added recently to Quagga's Zebra daemon, though. GateD and routed can run in either server or client mode. Linux provides a client implementation with the rdisc(8) tool. As you can see from the configurations and output, ganymed and scar are acting as IRDP advertisers (servers), whereas castor and callisto act as IRDP clients sending IRDP solicitations to trigger responses from candidate IRDP routers on directly connected networks.
Example 12-10. IRDP Server and Client Operation
[root@ganymed:~#] cat /etc/gated.cfg
### IRDP section ###
routerdiscovery server yes{
traceoptions state;
address 192.168.1.254 preference 100 multicast;
};
#routerdiscovery client yes{
# traceoptions state;
# interface ne3 multicast solicit;
#};
icmp{
traceoptions routerdiscovery;
};
[root@castor:~#]routed –q –T /var/log/routed.log
scar# show running-config
...
interface Ethernet1
ip address 192.168.14.254 255.255.255.0
no ip proxy-arp
ip irdp
ip irdp preference 10
ip irdp multicast
no ip route-cache
no ip mroute-cache
media-type 10BaseT
!
interface Ethernet0
ip address 192.168.7.254 255.255.255.0
no ip proxy-arp
ip irdp
ip irdp multicast
ip irdp preference 20
no ip route-cache
no ip mroute-cache
media-type 10BaseT
...
scar(config-if)# ip irdp ?
address addresses to proxy-advertise
holdtime how long a receiver should believe the information
maxadvertinterval maximum time between advertisements
minadvertinterval minimum time between advertisements
multicast advertisements are sent with multicasts
preference preference level for this interface
scar# show ip irdp ethernet 1
Ethernet1 has router discovery enabled
Advertisements will occur between every 450 and 600 seconds.
Advertisements are sent with multicasts.
Advertisements are valid for 1800 seconds.
Default preference will be 10.
[root@callisto:~#] rdisc -vst
Sending solicitation to ALL-ROUTERS.MCAST.NET (224.0.0.2)
ICMP Router Advertise from 192.168.14.254, lifetime 1800
address 192.168.14.254, preference 0xa
ICMP Router Advertise from ganymed (192.168.1.254), lifetime 1800
address ganymed (192.168.1.254), preference 0x64
address 192.168.45.254, preference 0x0
ICMP Router Advertise from 192.168.45.254, lifetime 1800
address ganymed (192.168.1.254), preference 0x64
address 192.168.45.254, preference 0x0
[root@castor:~#]cat /var/log/routed.log
...
turn on Router Discovery client using 192.168.7.254 via ed0
Add 0.0.0.0 -->192.168.7.254 metric=15 ed0
...
[root@callisto:~#] tethereal -i eth0
Capturing on eth0
0.000000 192.168.14.1 -> 224.0.0.2 ICMP Router solicitation
0.001527 192.168.14.254 -> 192.168.14.1 ICMP Router advertisement
...
167.026360 192.168.14.254 -> 224.0.0.1 ICMP Router advertisement
[root@callisto:~#] tethereal –i eth1
0.343388 192.168.1.1 -> 224.0.0.2 ICMP Router solicitation
0.344884 192.168.45.253 -> 224.0.0.2 ICMP Router solicitation
2.360836 192.168.1.254 -> 192.168.1.1 ICMP Router advertisement
2.361085 192.168.45.254 -> 192.168.45.253 ICMP Router advertisement
[root@callisto:~#] netstat -rne
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ipsec0
192.168.14.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.45.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth1
0 comments:
Post a Comment