On Mon, 2 Jul 2001, Ruslan Ermilov wrote:

> On Mon, Jul 02, 2001 at 04:34:40PM +0300, Iasen Kostoff wrote:
> > 
> > 
> > On Mon, 2 Jul 2001, Ruslan Ermilov wrote:
> > 
> > > On Mon, Jul 02, 2001 at 01:16:19PM +0300, Iasen Kostoff wrote:
> > > > 
> > > > 
> > > > On Mon, 2 Jul 2001, Ruslan Ermilov wrote:
> > > > 
> > > > > On Mon, Jul 02, 2001 at 12:49:44PM +0300, Iasen Kostoff wrote:
> > > > > > 
> > > > > > 
> > > > > > On Mon, 2 Jul 2001, Ruslan Ermilov wrote:
> > > > > > 
> > > > > > > On Sun, Jul 01, 2001 at 03:15:56PM -0600, Wes Peters wrote:
> > > > > > > > Ruslan Ermilov wrote:
> > > > > > > > > 
> > > > > > > > > BTW, Wes, I'm still waiting for a working example of an indirect 
>route
> > > > > > > > > with also indirect gateway.
> > > > > > > > 
> > > > > > > > Any indirect route via the opposite end of a point-to-point 
>connection.  
> > > > > > > > Right?
> > > > > > > > 
> > > > > > > You probably meant that the gateway is accessible via the opposite end.
> > > > > > > 
> > > > > > > But the gateway value on a P2P link is a no-op.  Whatever gateway you
> > > > > > > specify, the actual gateway is always the "opposite end".  Here, the
> > > > > > > gateway only helps the routing code to select the right interface.
> > > > > > > I.e., on a 1.1.1.1 -> 2.2.2.2 configured tun0 interface, the following
> > > > > > > two commands are equivalent:
> > > > > > > 
> > > > > > > route add -net 10 2.2.2.2
> > > > > > > route add -net 10 -iface tun0
> > > > > > > 
> > > > > > > Funny though that you're giving this example, as it only works starting
> > > > > > > with revision 1.62 (from June 4, 2001) of sys/net/route.c.  Before this,
> > > > > > > routing code incorrectly set up the interface based on destination, not
> > > > > > > the gateway:
> > > > > > > 
> > > > > > > # ifconfig tun0
> > > > > > > tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
> > > > > > >   inet 1.1.1.1 --> 2.2.2.2 netmask 0xff000000 
> > > > > > > 
> > > > > > > # netstat -rn
> > > > > > > Routing tables
> > > > > > > 
> > > > > > > Internet:
> > > > > > > Destination        Gateway            Flags     Refs     Use     Netif 
>Expire
> > > > > > > default            192.168.4.65       UGSc        1        0     rl0
> > > > > > > 2.2.2.2            1.1.1.1            UH          0        0    tun0
> > > > > > > 3.3.3.3            tun0               UHS         1        0    tun0
> > > > > > > 127.0.0.1          127.0.0.1          UH          1        6     lo0
> > > > > > > 192.168.4          link#1             UC          3        0     rl0 =>
> > > > > > > 192.168.4.65       0:d0:b7:16:9c:c6   UHLW        2     1576     rl0    
>899
> > > > > > > 192.168.4.115      0:c0:df:3:2d:79    UHLW        2        2     lo0
> > > > > > > 
> > > > > > > # route add -net 10 3.3.3.3
> > > > > > > add net 10: gateway 3.3.3.3
> > > > > > > 
> > > > > > > # netstat -rn | grep 3.3.3.3
> > > > > > > 3.3.3.3            tun0               UHS         1        0    tun0
> > > > > > > 10                 3.3.3.3            UGSc        0        0     rl0
> > > > > > >                                                                 ^^^^ oops
> > > > > > > 
> > > > > > > I still think we should disallow such routes on non-P2P interfaces, at
> > > > > > > least.  What do you think?
> > > > > > > 
> > > > > > If you speek about disallowing routes like : route add -net 10 3.3.3.3
> > > > > > I don't think we should. I'm using such routes now (ethernet bridges for
> > > > > > leased lines) and don't want to loose this functionality.
> > > > > > 
> > > > > Could you please describe your setup in more details?
> > > > > 
> > > > > I would like to disallow such routes for broadcast-like interfaces like
> > > > > Ethernet, because on these interfaces, adding such a route results in:
> > > > > 
> > > > > arplookup 3.3.3.3 failed: host is not on local network
> > > > > arpresolve: can't allocate llinfo for 3.3.3.3rt
> > > > > 
> > > > > It is a MUST here that the gateway should be directly connected
> > > > > (via ARP).
> > > > > 
> > > > If you have this route : 
> > > > 3.3.3.3            link#1             UC          1        0     rl0 =>
> > > > 
> > > > it won't result in this error message.
> > > > 
> > > Having this host entry with the RTF_CLONING flag set, as you have shown
> > > it, is impossible.  It could only have been "cloned" from a network-type
> > > routing table entry, as shown in the commit log for revision 1.50 of
> > > route/route.c, and this case shouldn't be affected by that change.
> > > Or like this:
> > > 
> > > 3.3.3/24           link#1             UCSc        1        0     rl0
> > > 3.3.3.3            link#1             UHLW        1        1     rl0
> > > 10                 3.3.3.3            UGSc        0       11     rl0
> > > 
> > > But then again, this means that the gateway (3.3.3.3) is directly reachable
> > > (think one hop) on one of the attached networks (rl0), but the ARP reply
> > > haven't been (yet) received, due to the host being down, as indicated by
> > > ping(8):
> > > 
> > > # ping 10.0.0.1
> > > PING 10.0.0.1 (10.0.0.1): 56 data bytes
> > > ping: sendto: No route to host
> > > ping: sendto: No route to host
> > > ^C
> > > --- 10.0.0.1 ping statistics ---
> > > 6 packets transmitted, 0 packets received, 100% packet loss
> > > 
> > > 3.3.3.3            link#1             UHRLW       1        0     rl0
> > > 
> > > (Note that `R' (RTF_REJECT) flag is set by arpresolve() after
> > > net.link.ether.inet.maxtries unsuccessful ARP request tries.)
> > > 
> > > 
> > That is my interface config:
> > 
> > xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> >         inet 212.36.9.113 netmask 0xffffff00 broadcast 212.36.9.255
> >         ether 00:04:76:22:15:83
> >         media: autoselect (100baseTX <full-duplex>) status: active
> >         supported media: autoselect 100baseTX <full-duplex> 100baseTX
> > 10baseT/UT
> > P <full-duplex> 10baseT/UTP 100baseTX <hw-loopback>
> > xl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> >         inet 212.36.9.113 netmask 0xffffffff broadcast 212.36.9.113
> >         ether 00:10:5a:21:73:55
> >         media: autoselect (100baseTX) status: active
> >         supported media: autoselect 100baseTX <full-duplex> 100baseTX
> > 10baseT/UT
> > P <full-duplex> 10baseT/UTP 100baseTX <hw-loopback>
> > xl2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> >         inet 212.36.9.113 netmask 0xffffffff broadcast 212.36.9.113
> >         ether 00:10:4b:b8:65:2c
> >         media: autoselect (10baseT/UTP) status: active
> >         supported media: autoselect 100baseTX <full-duplex> 100baseTX
> > 10baseT/UT
> > P <full-duplex> 10baseT/UTP 100baseTX <hw-loopback>
> > ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> >         inet 212.36.9.113 netmask 0xffffffff broadcast 212.36.9.113
> >         ether 00:40:05:60:f8:d8
> > 
> > 
> > and the static routes:
> > 
> [...]
> > default            212.36.8.129       UGSc       16  1612418      xl0
> > 212.36.8           link#1             UCSc       28        0      xl0 =>
> > 
> This case indeed should be allowed.  Your ``default'' route isn't with
> "indirect gateway", because the gateway route (route to 212.36.8.129)
> doesn't have the `G' flag set.
> 
> An example of "indirect route with also indirect gateway" would be:
> 
> # route -n get -net 10
>    route to: 10.0.0.0
> destination: 10.0.0.0
>        mask: 255.0.0.0
>     gateway: 1.2.3.4
>   interface: rl0
>       flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
>  recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
>        0         0         0         0         0         0      1500         0
> 
> # route -n get 1.2.3.4
>    route to: 1.2.3.4
> destination: default
>        mask: default
>     gateway: 192.168.4.65
>   interface: rl0
>       flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
>  recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
>        0         0         0         0         0         0      1500         0
> 
> Or, in netstat(1) equivalent:
> 
> default            192.168.4.65       UGSc        4        0      rl0
> 10                 1.2.3.4            UGSc        0        0      rl0
> 192.168.4.65       0:d0:b7:16:9c:c6   UHLW        3     4055      rl0   1108
> 
> I.e., the gateway for net 10 is 1.2.3.4, where 1.2.3.4 is *indirectly*
> reachable via the `default' route with gateway 192.168.4.65.
> 
> 
Yes the gateway should be directly reachable throw interface.
And I'm agree that this indirect gateway should be disallowed by some
error message like : "gateway is not direcly reachable" or something.



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to