Anwyay. With "fresh" routing table - let's assume that the only thing there is localhost. When you did:

$ ifconfig sk0 192.168.50.1
$ ifconfig sk1 192.168.50.2

The first command would add something like:

192.168/255.255.0.0     link#1  .... UC sk0

Flag C (check netstat man page) is important here. Now every new connection you would normally do to subnet 192.168 will add direct routes to hosts. That includes 192.168.50.2, which isn't on sk0. 192.168.50.1 otoh, on sk0, will add similar entry, but going through lo0 (as going to itself, through sk0, is not the thing to do).

The first of your ping will send requests to "host" .2 going through sk0, but the replies from that "host" will go locally through loopback, as per routing table. Similary, the second ping command, will send requests through lo0, but replies through sk0.

If you changed ifconfig sequence, you would see something similar, but traffic to .1 would go through sk1 and to .2 through lo0.

Small correction to my prev post - messing with route / PF to enforce going over cable in both ways shouldn't probably yield any results here.

Reply via email to