Ok, so I'll run through in detail whats going on exactly. All these machines are on my LAN, solaris is obviously my opensolaris box, activity is a random vista box (although it doesnt matter what the host is because the behaviour is the same with any device on my LAN), and router is my belkin ADSL router. You can tell I cant be bothered with inventive names...
Obviously pinging solaris->activity shouldnt even involve the router at all, considering its all on the same network (although both devices are plugged into the switch in the ADSL router), the ping shouldnt go via the default route - maybe this is the cause of the problem rather than anything to do with ICMP redirect, I'm a software guy not a network guy so I'm not 100% on this stuff. So, it gets a bit funny, theres 2 cases. If the machine activity has not been contacted since a fresh reboot of my solaris box (I went back to the old boot env to look at what happens there, then back to the new one). This is what I get: >netstat -r Routing Table: IPv4 Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ---------- --------- default router UG 3 133 solaris solaris UH 3 276 lo0 192.168.1.0 192.168.1.169 U 8 213 e1000g0 Routing Table: IPv6 Destination/Mask Gateway Flags Ref Use If --------------------------- --------------------------- ----- --- ------- ----- opensolaris opensolaris UH 2 0 lo0 fe80::/10 fe80::21c:c0ff:fec4:6e44 U 2 0 e1000g0 During a ping, I can snoop with these 2 commands to see whats going on (I gotta limit it theres too much to post): > snoop -I e1000g0 -x0 host activity 192.168.1.169 -> activity ICMP Echo request (ID: 740 Sequence number: 0) 0: 0102 0100 0000 0054 0000 0002 0000 0000 .......T........ 16: 0000 0000 ffff ffff 4500 0054 031e 4000 ........e.....@. 32: ff01 f44a c0a8 01a9 c0a8 0146 0800 1b43 ...J.......F...C 48: 02e4 0000 fada 284b c2af 0900 0809 0a0b ......(K........ 64: 0c0d 0e0f 1011 1213 1415 1617 1819 1a1b ................ 80: 1c1d 1e1f 2021 2223 2425 2627 2829 2a2b .... !"#$%&'()*+ 96: 2c2d 2e2f 3031 3233 3435 3637 ,-./01234567 etc... > snoop -I e1000g0 -x0 host router nothing but some unrelated upnp stuff ping times out and my routing table is unchanged. Now for case 2, I turn on the machine called activity and ping it (also I have cacti running which does some snmp polls). 192.168.1.169 -> activity ICMP Echo request (ID: 798 Sequence number: 0) 0: 0102 0100 0000 0054 0000 0002 0000 0000 .......T........ 16: 0000 0000 ffff ffff 4500 0054 054e 4000 ........e.....@. 32: ff01 f21a c0a8 01a9 c0a8 0146 0800 0b42 ...........F...B 48: 031e 0000 3bdd 284b 9974 0100 0809 0a0b ....;.(K.t...... 64: 0c0d 0e0f 1011 1213 1415 1617 1819 1a1b ................ 80: 1c1d 1e1f 2021 2223 2425 2627 2829 2a2b .... !"#$%&'()*+ 96: 2c2d 2e2f 3031 3233 3435 3637 ,-./01234567 activity -> 192.168.1.169 ICMP Echo reply (ID: 798 Sequence number: 0) 0: 0102 0000 0000 0054 0000 0002 0000 0000 .......T........ 16: ffff ffff 0000 0000 4500 0054 00f1 0000 ........E..T.... 32: 8001 b578 c0a8 0146 c0a8 01a9 0000 1342 ...x...F.......B 48: 031e 0000 3bdd 284b 9974 0100 0809 0a0b ....;.(K.t...... 64: 0c0d 0e0f 1011 1213 1415 1617 1819 1a1b ................ 80: 1c1d 1e1f 2021 2223 2425 2627 2829 2a2b .... !"#$%&'()*+ 96: 2c2d 2e2f 3031 3233 3435 3637 ,-./01234567 The routing table remains unchanged from above, so then lets turn it off. Now lets repeat this test again. So then it took a little while to happen, there was about 5 minutes of normal ping timeouts before I got this: >ping activity ICMP Host redirect from gateway router (192.168.1.254) to activity (192.168.1.70) for activity (192.168.1.70) ping: sendto No route to host I wonder if case 1 above just required me to wait for a while too... Anyway, after the ping my routing table looks like this: Routing Table: IPv4 Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ---------- --------- default router UG 3 1635 solaris solaris UH 3 528 lo0 192.168.1.0 192.168.1.169 U 8 132887 e1000g0 activity activity UHD 1 0 Routing Table: IPv6 Destination/Mask Gateway Flags Ref Use If --------------------------- --------------------------- ----- --- ------- ----- opensolaris opensolaris UH 2 0 lo0 fe80::/10 fe80::21c:c0ff:fec4:6e44 U 3 2 e1000g0 So lets look at snoop... >snoop -I e1000g0 -x0 router or activity with all the UPNP crap filtered out: 192.168.1.169 -> activity ICMP Echo request (ID: 1024 Sequence number: 0) 0: 0102 0100 0000 0054 0000 0002 0000 0000 .......T........ 16: 0000 0000 ffff ffff 4500 0054 07c3 4000 ........e.....@. 32: ff01 efa5 c0a8 01a9 c0a8 0146 0800 fecd ...........F.... 48: 0400 0000 bde1 284b 2202 0200 0809 0a0b ......(K"....... 64: 0c0d 0e0f 1011 1213 1415 1617 1819 1a1b ................ 80: 1c1d 1e1f 2021 2223 2425 2627 2829 2a2b .... !"#$%&'()*+ 96: 2c2d 2e2f 3031 3233 3435 3637 ,-./01234567 router -> 192.168.1.169 ICMP Redirect (for host activity to activity) 0: 0102 0000 0000 0038 0000 0002 0000 0000 .......8........ 16: ffff ffff 0000 0000 4500 0038 1cad 4000 ........e.....@. 32: 4001 9920 c0a8 01fe c0a8 01a9 0501 2e42 @.. ...........B 48: c0a8 0146 4500 0054 07c3 4000 fe01 f0a5 ...fe.....@..... 64: c0a8 01a9 c0a8 0146 0800 fecd 0400 0000 .......F........ As you can see, message 5 ICMP redirect, code 1 (network error) coming from the router to my opensolaris box in response to the ping. why? is it something the osol box solicits? I dont think the router should be involved in this at all. I dont think its related at all but there is a bunch of this going on all the time: 192.168.1.169 -> router DNS C _ldap._tcp.dc._msdcs. Internet Unknown (33) ? 0: 0102 0100 0000 0042 0000 0002 0000 0000 .......B........ 16: 0000 0000 ffff ffff 4500 0042 027b 0000 ........E..B.{.. 32: ff11 3438 c0a8 01a9 c0a8 01fe a136 0035 ..48.........6.5 48: 002e c6a9 a5cf 0100 0001 0000 0000 0000 ................ 64: 055f 6c64 6170 045f 7463 7002 6463 065f ._ldap._tcp.dc._ 80: 6d73 6463 7300 0021 0001 msdcs..!.. router -> 192.168.1.169 DNS R Error: 3(Name Error) 0: 0102 0000 0000 008d 0000 0002 0000 0000 ................ 16: ffff ffff 0000 0000 4500 008d 8150 0000 ........E....P.. 32: 4011 7418 c0a8 01fe c0a8 01a9 0035 a136 @.t..........5.6 48: 0079 2725 a5cf 8183 0001 0000 0001 0000 .y'%............ 64: 055f 6c64 6170 045f 7463 7002 6463 065f ._ldap._tcp.dc._ 80: 6d73 6463 7300 0021 0001 0000 0600 0100 msdcs..!........ 96: 0004 fd00 4001 410c 524f 4f54 2d53 4552 ....@.a.root-ser 112: 5645 5253 034e 4554 0005 4e53 544c 440c VERS.NET..NSTLD. 128: 5645 5249 5349 474e 2d47 5253 0343 4f4d VERISIGN-GRS.COM 144: 0077 c0c3 4000 0007 0800 0003 8400 093a ....@..........: 160: 8000 0151 80 ...Q. Now any further pings result in "ping: sendto No route to host", obviously because it follows the new route entry. I have to manually "route delete activity activity". After looking at the settings on my old boot env, nothing with regards to routing setup or low level icmp redirect settings have changed (I checked with routeadm and ndd to look at the settings) they're all the same and as you would expect. According to the in.routed man page, automagically added routes are supposed to be removed after network timeouts, which doesnt seem to be the case. Maybe I should actually be enabling routing rather than disabling stuff? > routeadm Configuration Current Current Option Configuration System State --------------------------------------------------------------- IPv4 routing disabled disabled IPv6 routing disabled disabled IPv4 forwarding disabled disabled IPv6 forwarding disabled disabled Routing services "route:default ripng:default" Routing daemons: STATE FMRI disabled svc:/network/routing/route:default disabled svc:/network/routing/rdisc:default disabled svc:/network/routing/legacy-routing:ipv4 disabled svc:/network/routing/legacy-routing:ipv6 online svc:/network/routing/ndp:default disabled svc:/network/routing/ripng:default > routeadm -p ipv4-routing persistent=disabled default=disabled current=disabled ipv6-routing persistent=disabled default=disabled current=disabled ipv4-forwarding persistent=disabled default=disabled current=disabled ipv6-forwarding persistent=disabled default=disabled current=disabled ipv4-routing-daemon persistent="" default="" ipv4-routing-daemon-args persistent="" default="" ipv4-routing-stop-cmd persistent="" default="" ipv6-routing-daemon persistent="" default="" ipv6-routing-daemon-args persistent="" default="" ipv6-routing-stop-cmd persistent="" default="" routing-svcs persistent="route:default ripng:default" default="route:default ripng:default" I'm at a loss here, all I need to do is prevent that route being added, or at least somehow automatically invalidated. -- This message posted from opensolaris.org _______________________________________________ networking-discuss mailing list networking-discuss@opensolaris.org