[SR-Users] subnet match

Daniel-Constantin Mierla miconda at gmail.com
Wed Mar 14 16:56:28 CET 2018


Hi Hugh,

thanks for digging into it. I guess it would be safe to change the
condition into:

if ((ip->s_addr & ipv4_mask) == (net_addr.s_addr & ipv4_mask))

to be more flexible in matching by providing full ip and its netmask. It
should not break existing matching with masked subnet address.

Anyone having a different opinion on this?

Cheers,
Daniel

On 14.03.18 15:57, Hugh Waite wrote:
> Hi,
> It looks from the code that the subnet IP address must be masked.
> https://github.com/kamailio/kamailio/blob/master/src/modules/ipops/ipops_mod.c#L393
>
> if ((ip->s_addr & ipv4_mask) == net_addr.s_addr)
> return 1;
> return 0;
>
> So 10.1.1.0/24 <http://10.1.1.0/24> will match 10.1.1.241
> but 10.1.1.128/24 <http://10.1.1.128/24> will NOT match 10.1.1.241
>
> Regards,
> Hugh
>
> On 14 March 2018 at 12:39, Daniel-Constantin Mierla <miconda at gmail.com
> <mailto:miconda at gmail.com>> wrote:
>
>     Hello,
>
>     maybe it is what Hugh said in his response, respectively that the
>     subnet
>     needs to have the lowest bits masked.
>
>     Can you run with debug=3? Maybe ipops module writes more debug message
>     to track it.
>
>     Cheers,
>     Daniel
>
>
>     On 14.03.18 13:33, volga629 at networklab.ca
>     <mailto:volga629 at networklab.ca> wrote:
>     > Hello Daniel,
>     > I adjusted var to $dd and still not match
>     >
>     >        if(is_method("INVITE")) {
>     >                #$avp(destIP)=$(du{s.select,1,:});
>     >                #$avp(subnet) = $avp(destIP) + "/16";
>     >                #xlog("L_INFO", "Initial Request: [$rm]
>     destination ip
>     > [$avp(destIP)] and sourceip [$si]\n");
>     >                xlog("L_INFO", "Initial Request: [$rm] destination ip
>     > [$dd] and sourceip [$si]\n");
>     >                if(!is_in_subnet("$si", "$dd/16")) {
>     >                        xlog("L_INFO", "Subnets not match processing
>     > rtp...destination ip [$dd] and source ip [$si]\n");
>     >                        route(RTP_MANAGE);
>     >                }
>     >        }
>     >
>     >
>     > Mar 14 13:21:06 sbc00 /usr/sbin/kamailio[1104]: {1 2 INVITE
>     > Edz14KmQgLQpO5L323Wodw..} INFO: <script>: Initial Request: [INVITE]
>     > destination ip [10.0.1.241] and sourceip [10.0.1.242]
>     > Mar 14 13:21:06 sbc00 /usr/sbin/kamailio[1104]: {1 2 INVITE
>     > Edz14KmQgLQpO5L323Wodw..} INFO: <script>: Subnets not match
>     processing
>     > rtp...destination ip [10.0.1.241/16 <http://10.0.1.241/16>] and
>     source ip [10.0.1.242]
>     >
>     >
>     > Slava
>     >
>     > On Wed, Mar 14, 2018 at 6:19 AM, Daniel-Constantin Mierla
>     > <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>     >> Hello,
>     >>
>     >>
>     >> On 14.03.18 00:19, volga629 at networklab.ca
>     <mailto:volga629 at networklab.ca> wrote:
>     >>>  Hello Everyone,
>     >>>  Not sure what I am missing, but can't match ip address to subnet
>     >>>
>     >>>  Log says
>     >>>
>     >>>   INFO: <script>: Subnets not match processing
>     rtp...destination ip
>     >>>  [10.0.1.242] and sourceip [10.0.1.241]
>     >>>
>     >>>
>     >>>         if(is_method("INVITE")) {
>     >>>                 $avp(destip)=$(du{s.select,1,:});
>     >>>                 $avp(subnet) = $avp(destip) + "/16";
>     >> if you want to get the host part (ip) of the $du, then just use
>     $dd.
>     >>
>     >>>                 xlog("L_INFO", "Initial Request: [$rm]
>     destination ip
>     >>>  [$avp(destip)] and sourceip [$si]\n");
>     >>>                 if(!is_in_subnet("$si", "$avp(subnet)")) {
>     >>
>     >> So instead of the above if, get rid of the avps and you can
>     just use:
>     >>
>     >>                if(!is_in_subnet("$si", "$dd/16")) {
>     >>
>     >> Cheers,
>     >> Daniel
>     >>>                         xlog("L_INFO", "Subnets not match
>     processing
>     >>>  rtp...destination ip [$avp(subnet)] and source ip [$si]\n");
>     >>>                         route(RTP_MANAGE);
>     >>>                 }
>     >>>         }
>     >>>
>     >>>
>     >>>
>     >>>  [root at prx00 ~]# rpm -qa | grep kamailio
>     >>>  kamailio-mysql-5.1.2-2.git4c840b7e9.fc27.x86_64
>     >>>  kamailio-5.1.2-2.git4c840b7e9.fc27.x86_64
>     >>>
>     >>>
>     >>>  Slava.
>     >>>
>     >>>
>     >>>  _______________________________________________
>     >>>  Kamailio (SER) - Users Mailing List
>     >>>  sr-users at lists.kamailio.org <mailto:sr-users at lists.kamailio.org>
>     >>>  https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>     <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>     >>
>     >> --
>     >> Daniel-Constantin Mierla
>     >> www.twitter.com/miconda <http://www.twitter.com/miconda> --
>     www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>     >> Kamailio Advanced Training - April 16-18, 2018, Berlin -
>     www.asipto.com <http://www.asipto.com>
>     >> Kamailio World Conference - May 14-16, 2018 -
>     www.kamailioworld.com <http://www.kamailioworld.com>
>     >>
>     >>
>     >
>
>     --
>     Daniel-Constantin Mierla
>     www.twitter.com/miconda <http://www.twitter.com/miconda> --
>     www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>     Kamailio Advanced Training - April 16-18, 2018, Berlin -
>     www.asipto.com <http://www.asipto.com>
>     Kamailio World Conference - May 14-16, 2018 -
>     www.kamailioworld.com <http://www.kamailioworld.com>
>
>
>     _______________________________________________
>     Kamailio (SER) - Users Mailing List
>     sr-users at lists.kamailio.org <mailto:sr-users at lists.kamailio.org>
>     https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>     <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>
>
>
>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - April 16-18, 2018, Berlin - www.asipto.com
Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20180314/7185f50d/attachment.html>


More information about the sr-users mailing list