[Olsr-dev] advanced policy routing patch

Sven-Ola Tuecke (spam-protected)
Thu Dec 27 17:00:25 CET 2007


Hi otti,

yes - should be the correct source. Just wanted to make sure. The man.gz is 
in the CVS? Ugly - didn't noticed that until now. Having a separate 
RtTableDefault sounds resonable now - thank you...

// Sven-Ola

----- Original Message ----- 
From: "otti" <(spam-protected)>
To: <(spam-protected)>
Sent: Thursday, December 27, 2007 2:04 PM
Subject: Re: [Olsr-dev] advanced policy routing patch


> Hi Sven!
>
> Am Donnerstag, den 27.12.2007, 13:26 +0100 schrieb Sven-Ola Tuecke:
>> your patch will not apply (at least, you diffed' a .gz by accident). This
>> patch is against kamikaze-cvs? That may be rather old anyhow. You may 
>> retry
>> it against olsrd-cvs.
>
> it's a patch against
> cvs -z3 -d:pserver:(spam-protected):/cvsroot/olsrd co
> -P olsrd-current
>
> Plaese tell me if this is the correct source to work on.
>
> the .gz is the man page (I added new config options). I don't know if
> theres a plain text version to patch against, if there is one i can
> change the patch.
>
>> And I don't get it - in what scenario an extra policy defroute will help
>> here? a) user wants inet from the mesh or b) user supplies inet to the 
>> mesh
>> or c) user confused by polrouting and fiddles with different default 
>> routes
>> too much? Did you notice the following passage in 
>> src/linux/kernel_routes.c?
>>
>> #else /* !LINUX_POLICY_ROUTING */
>>  if (0 == rt->rt_dst.prefix_len && 253 > olsr_cnf->rttable)
>>  {
>>   /*
>>    * Users start whining about not having internet with policy
>>    * routing activated and no static default route in table 254.
>>    * We maintain a fallback defroute in the default=253 table.
>>    */
>>   olsr_netlink_route(rt, AF_INET, 253, RTM_NEWROUTE);
>>  }
>>  return olsr_netlink_route(rt, AF_INET, olsr_cnf->rttable, RTM_NEWROUTE);
>> #endif /* LINUX_POLICY_ROUTING */
>
> That's not my code (it's allready included in the source),
> i just added an option to turn that off.
>
> What i really wanted (and did), is adding an option to split the
> olsrd routing table into a table containing the default route
> and one for the rest.
>
> Why splitting the table makes policy routing easyer/more powerfull:
>
> There are some things that wont work with the way policy routing is done 
> in
> freifunk-firmware now.
>
> If someone does an HNA annoucement of a network that is not in the
> subnet olsrd runs on, it won't get routed by the olsr table, because
> there is no ip rule for that subnet (network addresses in ip rule are
> not comming from olsrd). We really need to use multible different
> subnets within one olsrd cloud in Graz (we have private an public ip
> addresses in the net) and i think in Vienna it's needed too (they have
> 2 different public ip ranges)
>
> A more clean solution for policy routing (without network addresses in
> ip rule!) looks like:
>
> #!/bin/sh
> iptables -t mangle -F
> iptables -t mangle -A PREROUTING -i $OLSR_DEVICE1 -j MARK --set-mark 1
> iptables -t mangle -A PREROUTING -i $OLSR_DEVICE2 -j MARK --set-mark 1
>
> ip route del default
> ip route add default via $defgw table default
>
> ip rule add fwmark 1 lookup olsr-default
> ip rule add lookup main
> ip rule add lookup olsr
> #ip rule del pref 32766 #optionally delete second main table
>
> (spam-protected):~# cat /etc/olsrd.conf | grep Rt
> RtTable 111
> RtTableDefault 112
> RtDuplicateV4Def no
>
> (spam-protected):~# cat /etc/iproute2/rt_tables
> 111     olsr
> 112     olsr-default
> 255     local
> 254     main
> 253     default
> 0       unspec
>
> 





More information about the Olsr-dev mailing list