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

Reply via email to