Ok, first off I'm going to attach a service manifest file for anyone else who 
finds this and decides they need to also disable this property.

> svccfg import disable_icmp_redirect.xml
> svcadm enable disable_icmp_redirect

Now, yes I have been watching arp, and yes that MAC address is the mac address 
of the windows box, I really do think I have a broken router (having said that 
it has always been broken). Obviously something has changed somewhere between 
snv_122 and 129, because booting into 122 I don't get the same behaviour (it 
ignores the ICMP redirect). I assume somewhere along the line someone has 
either:
a. turned on a feature that was always there and disabled, or
b. implemented a new feature to process this stuff, and didnt include any 
sanity checking

So I suppose it's up to whoever decides to look at this and how they choose to 
look at this. I'm gonna put it in bugzilla so its registered. Really for most 
people it won't cause any actual problems (because they don't have buggy 
devices on their network), but in terms of security it is an issue.

I'm off to look for firmware updates for my router (although I don't hold much 
hope).

As an experiment I duplicated the test on my mac to prove the router is 
behaving the same way for that too. The results show the routing tables are 
done way differently (and are more complex because there are more interfaces - 
including a bunch of vmware ones). I suppose this is expected given its 
basically FreeBSD.

> netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.1.254      UGSc           11        0     en1
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH              6     4558     lo0
169.254            link#6             UCS             0        0     en1
172.16.68/24       link#9             UC              0        0  vmnet1
172.16.217/24      link#8             UC              0        0  vmnet8
192.168.1          link#6             UCS             6        0     en1
192.168.1.11       0:23:12:9f:8f:b5   UHLWI           0        0     en1    351
192.168.1.69       127.0.0.1          UHS             0        0     lo0
192.168.1.70       0:19:d1:e7:99:5d   UHLWI           0      193     en1
192.168.1.71       0:1c:c0:38:fa:87   UHLWI           0     2408     en1   1159
192.168.1.169      0:1c:c0:c4:6e:44   UHLWI           3   652806     en1   1164
192.168.1.254      0:12:bf:12:a0:32   UHLWI          31     4991     en1   1161
192.168.1.255      ff:ff:ff:ff:ff:ff  UHLWbI          0        2     en1

Internet6:
Destination                             Gateway                         Flags   
      Netif Expire
::1                                     ::1                             UH      
        lo0
fe80::%lo0/64                           fe80::1%lo0                     Uc      
        lo0
fe80::1%lo0                             link#1                          UHL     
        lo0
fe80::%en1/64                           link#6                          UC      
        en1
fe80::21c:c0ff:fec4:6e44%en1            0:1c:c0:c4:6e:44                UHLW    
        en1
fe80::223:6cff:fe83:702e%en1            0:23:6c:83:70:2e                UHL     
        lo0
ff01::/32                               ::1                             Um      
        lo0
ff02::/32                               ::1                             UmC     
        lo0
ff02::/32                               link#6                          UmC     
        en1

Pinging gives me this output:

> ping activity
PING activity (192.168.1.70): 56 data bytes
36 bytes from router (192.168.1.254): Redirect Host(New addr: 192.168.1.70)
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 041f   0 0000  3f  01 f3ae 192.168.1.69  192.168.1.70 

Request timeout for icmp_seq 0
...

No changes are made to the routing table.

As for the raw snoop:
tcpdump -i en1 -e -XX -n host router or activity
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en1, link-type EN10MB (Ethernet), capture size 65535 bytes
00:26:06.428430 00:23:6c:83:70:2e > 00:19:d1:e7:99:5d, ethertype IPv4 (0x0800), 
length 98: 192.168.1.69 > 192.168.1.70: ICMP echo request, id 24596, seq 0, 
length 64
        0x0000:  0019 d1e7 995d 0023 6c83 702e 0800 4500  .....].#l.p...E.
        0x0010:  0054 041f 0000 4001 f2ae c0a8 0145 c0a8  .t....@......e..
        0x0020:  0146 0800 ce2d 6014 0000 4b29 0a1e 0006  .F...-`...K)....
        0x0030:  896d 0809 0a0b 0c0d 0e0f 1011 1213 1415  .m..............
        0x0040:  1617 1819 1a1b 1c1d 1e1f 2021 2223 2425  ...........!"#$%
        0x0050:  2627 2829 2a2b 2c2d 2e2f 3031 3233 3435  &'()*+,-./012345
        0x0060:  3637                                     67
00:26:06.432453 00:12:bf:12:a0:32 > 00:23:6c:83:70:2e, ethertype IPv4 (0x0800), 
length 70: 192.168.1.254 > 192.168.1.69: ICMP redirect 192.168.1.70 to host 
192.168.1.70, length 36
        0x0000:  0023 6c83 702e 0012 bf12 a032 0800 4500  .#l.p......2..E.
        0x0010:  0038 1ce1 0000 4001 d950 c0a8 01fe c0a8  .8....@..p......
        0x0020:  0145 0501 02ce c0a8 0146 4500 0054 041f  .E.......FE..T..
        0x0030:  0000 3f01 f3ae c0a8 0145 c0a8 0146 0800  ..?......E...F..
        0x0040:  ce2d 6014 0000                           .-`...
00:26:06.504309 00:12:bf:12:a0:32 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), 
length 60: Request who-has 192.168.1.70 tell 192.168.1.254, length 46
        0x0000:  ffff ffff ffff 0012 bf12 a032 0806 0001  ...........2....
        0x0010:  0800 0604 0001 0012 bf12 a032 c0a8 01fe  ...........2....
        0x0020:  0000 0000 0000 c0a8 0146 0000 0000 0000  .........F......
        0x0030:  0000 0000 0000 0000 0000 0000

You can even see the router is trying to find the missing host.
-- 
This message posted from opensolaris.org
_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org

Reply via email to