News Update :

Route Cloning

Cloned routes are a concept unique to BSD networks stacks. The concept refers to on-demand generation (cloning) of host routes (/32). In other words (quoted from the FreeBSD arp(4) manual page), "The ARP cache is stored in the system routing table as dynamically created host routes. The route to a directly attached Ethernet network is installed as a 'cloning' route (one with the RTF_CLONING flag set), causing routes to individual hosts on that network to be created on demand."[1] The actual cloning template (or parent) is marked with (C = generate new routes on use), the instantiated cloned host route (child) with (W = was cloned) in the system routing table. The associated ref_counter indicates how many existing connections use that particular entry, which is also correlated with an expire_timer (usually 3600 seconds). Cloned routes time out periodically after initial validation as long as they are not used.

Examples 8-3 through 8-5 show the differences in arp and netstat command output on OpenBSD, Linux, and FreeBSD operating systems to demonstrate the connection between next-hop/interface Media Access Control (MAC) resolution and similarities between route and netstat commands. In addition, interface statistics with netstat are presented, as are usage statistics of routing table entries. All routing tables present prefix entries, flags, a reference counter for the number of uses of a prefix, and a usage counter for the number of packets that were forwarded along that route out of the associated physical interface. Additional parameters of netstat output are system-specific.

Example 8-3. OpenBSD arp and netstat Output

[root@ganymed:~#] arp -an

? (192.168.1.1) at 52:54:05:e3:51:87

? (192.168.1.2) at 08:00:46:64:74:1b

? (192.168.2.7) at 00:10:5a:c4:2c:04

? (111.11.117.1) at 00:05:9a:5b:23:fc



[root@ganymed:~#] netstat -rna -f inet

Routing tables

Internet:

Destination Gateway Flags Refs Use Mtu Interface

default 111.11.117.1 UGS 3 11991 1500 ne5

127/8 127.0.0.1 UGRS 0 0 33224 lo0

127.0.0.1 127.0.0.1 UH 2 0 33224 lo0

192.168.1/24 link#1 UC 0 0 1500 ne3

192.168.1.1 52:54:5:e3:51:87 UHL 0 8801 1500 ne3

192.168.1.2 8:0:46:64:74:1b UHL 1 4451 1500 ne3

192.168.1.254 127.0.0.1 UGHS 0 0 33224 lo0

192.168.2/24 link#2 UC 0 0 1500 ne4

192.168.2.7 0:10:5a:c4:2c:4 UHL 0 2111 1500 ne4

192.168.44.1 192.168.44.1 UH 0 0 33224 lo1

192.168.45/24 link#1 UC 0 0 1500 ne3

111.11.117/24 link#3 UC 0 0 1500 ne5

111.11.117.1 0:5:9a:5b:23:fc UHL 1 0 1500 ne5



[root@ganymed:~#] netstat -in -f inet

Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Colls

lo0 33224 0 0 0 0 0

lo0 33224 fe80::/64 fe80::1 0 0 0 0 0

lo0 33224 ::1/128 ::1 0 0 0 0 0

lo0 33224 127/8 127.0.0.1 0 0 0 0 0

lo1 33224 0 0 0 0 0

lo1 33224 192.168.44/ 192.168.44.1 0 0 0 0 0

lo1 33224 fe80::/64 fe80::1 0 0 0 0 0

lo1 33224 ::1/128 ::1 0 0 0 0 0

ne3 1500 48:54:e8:8c:0a:3f 17263 0 13427 0 329

ne3 1500 192.168.1/2 192.168.1.254 17263 0 13427 0 329

ne3 1500 fe80::/64 fe80::4a54:e8ff:f 17263 0 13427 0 329

ne3 1500 192.168.45/ 192.168.45.254 17263 0 13427 0 329

ne4 1500 52:54:05:e3:e4:2f 2503 234 2247 0 0

ne4 1500 192.168.2/2 192.168.2.254 2503 234 2247 0 0

ne4 1500 fe80::/64 fe80::5054:5ff:fe 2503 234 2247 0 0

ne5 1500 52:54:05:e3:51:87 11531 1253 12040 0 0

ne5 1500 111.11.117/ 111.11.117.206 11531 1253 12040 0 0

ne5 1500 fe80::/64 fe80::5054:5ff:fe 11531 1253 12040 0 0



[root@ganymed:~#] netstat -rs

routing:

0 bad routing redirects

0 dynamically created routes

0 new gateways due to redirects

10 destinations found unreachable

0 uses of a wildcard route




Example 8-4 also demonstrates an advanced feature of Linux: TCP parameters such as the TCP Maximum Segment Size (MSS) and the TCP Window Size, which can be altered on a per-prefix basis (shaded text). For a better understanding, consider the following technical details quoted from the Linux route(8) manual page:

mss M:

set the TCP Maximum Segment Size (MSS) for connections over this route to M bytes. The default is the device MTU minus headers, or a lower MTU when path mtu discovery occurred [sic]. This setting can be used to force smaller TCP packets on the other end when path mtu discovery does not work (usually because of misconfigured firewalls that block ICMP Fragmentation Needed)

window W:

set the TCP window size for connections over this route to W bytes. This is typically only used on AX.25 networks and with drivers unable to handle back to back frames.[2]

Example 8-4. Linux arp and netstat Output

[root@callisto:~#] arp -an

? (192.168.1.2) at 08:00:46:64:74:1B [ether] on eth1

? (192.168.1.254) at 48:54:E8:8C:0A:3F [ether] on eth1



[root@callisto:~#] netstat -rnva

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface

192.168.1.0 0.0.0.0 255.255.255.0 U 40 0 0 eth1

192.168.1.0 0.0.0.0 255.255.255.0 U 40 0 0 ipsec0

192.168.14.0 0.0.0.0 255.255.255.0 U 40 0 0 eth0

127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo

0.0.0.0 192.168.1.254 0.0.0.0 UG 40 0 0 eth1



[root@callisto:~#] netstat -i

Kernel Interface table

Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg

eth0 1500 0 276 0 0 0 166 0 0 0 BMRU

eth1 1500 0 14889 0 0 0 9260 0 0 0 BMRU

ipsec 16260 0 0 0 0 0 0 0 0 0 ORU

lo 16436 0 64 0 0 0 64 0 0 0 LRU



[root@callisto:~#] route -nee

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt

192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 40 0 0

192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ipsec0 40 0 0

192.168.14.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 40 0 0

127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 40 0 0

0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth1 40 0 0




The highlighted text in Example 8-5 emphasizes the timer correlation of ARP cache entries and the forwarding table on FreeBSD for cloned routes (ARP neighbors). On BSD systems, you can manually adjust the route_expire sysctl parameter net.inet.ip.rtexpire, which defaults to 3600 seconds. Connected routes are created for each interface attached to the local host. Examples of the ip Linux facility are left to the lab because it is specific only to Linux, whereas netstat and route are generic tools of all Unices.

Example 8-5. FreeBSD arp and netstat Output

[root@castor:~#] arp -an

? (192.168.2.254) at 52:54:05:e3:e4:2f on xl0 [ethernet]

? (192.168.7.254) at 00:00:0c:1a:a9:a8 on ed0 [ethernet]



[root@castor:~#] netstat -rnaW -f inet

Routing tables

Internet:

Destination Gateway Flags Refs Use Mtu Netif Expire

default 192.168.2.254 UGSc 4 6 1500 xl0

127.0.0.1 127.0.0.1 UH 0 0 16384 lo0

192.53.103.103 192.168.2.254 UGHW3 0 63 1500 xl0 3314

192.53.103.104 192.168.2.254 UGHW 1 64 1500 xl0

192.168.1.2 192.168.2.254 UGHW 1 1207 1500 xl0

192.168.2 link#1 UC 2 0 1500 xl0

192.168.2.254 52:54:05:e3:e4:2f UHLW 3 3 1500 xl0 1028

192.168.7 link#2 UC 1 0 1500 ed0

192.168.7.254 00:00:0c:1a:a9:a8 UHLW 1 5 1500 ed0 1038

195.34.133.10 192.168.2.254 UGHW3 0 14 1500 xl0 3440



[root@castor:~#] netstat -i -f inet

Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll

xl0 1500 192.168.2 192.168.2.7 2260 - 3303 - -

ed0 1500 192.168.7 castor 260 - 1214 - -

lo0 16384 your-net localhost 0 - 0 - -



[root@castor:~#] netstat -rs

routing:

0 bad routing redirects

0 dynamically created routes

0 new gateways due to redirects

3 destinations found unreachable

0 uses of a wildcard route

1 route not in table but not freed


Related Topic Router
Share this Article on :

0 comments:

Post a Comment

 

© Copyright Cisco elearning 2010 -2011 | Design by Herdiansyah Hamzah | Published by Borneo Templates | Powered by Blogger.com.