<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Re[2]: filter all prefixes except a few with 'case' control</title>
<META http-equiv=Content-Type content="text/html; charset=koi8-r">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
body {
  margin: 5px 5px 5px 5px;
  background-color: #ffffff;
}
/* ========== Text Styles ========== */
hr { color: #000000}
body, table /* Normal text */
{
 font-size: 9pt;
 font-family: 'Courier New';
 font-style: normal;
 font-weight: normal;
 color: #000000;
 text-decoration: none;
}
span.rvts1 /* Heading */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-weight: bold;
 color: #0000ff;
}
span.rvts2 /* Subheading */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-weight: bold;
 color: #000080;
}
span.rvts3 /* Keywords */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-style: italic;
 color: #800000;
}
a.rvts4, span.rvts4 /* Jump 1 */
{
 font-size: 10pt;
 font-family: 'Arial';
 color: #008000;
 text-decoration: underline;
}
a.rvts5, span.rvts5 /* Jump 2 */
{
 font-size: 10pt;
 font-family: 'Arial';
 color: #008000;
 text-decoration: underline;
}
span.rvts6
{
 font-size: 11pt;
 font-family: 'times new roman';
 color: #1f497d;
}
a.rvts7, span.rvts7
{
 font-size: 11pt;
 font-family: 'times new roman';
 color: #0563c1;
 text-decoration: underline;
}
a.rvts8, span.rvts8
{
 font-size: 11pt;
 font-family: 'times new roman';
 font-style: italic;
 color: #0563c1;
 text-decoration: underline;
}
span.rvts9
{
 font-size: 11pt;
 font-family: 'times new roman';
 font-weight: bold;
}
span.rvts10
{
 font-size: 11pt;
 font-family: 'times new roman';
}
span.rvts11
{
 font-size: 12pt;
 font-family: 'times new roman';
}
span.rvts12
{
 font-family: 'times new roman';
}
span.rvts13
{
 font-size: 11pt;
 font-family: 'calibri';
}
span.rvts14
{
 font-size: 11pt;
 font-family: 'calibri';
 color: #1f497d;
}
span.rvts15
{
 font-family: 'calibri';
 font-style: italic;
 color: #c0c0c0;
}
span.rvts16
{
 font-family: 'calibri';
 font-style: italic;
 color: #c0c0c0;
}
/* ========== Para Styles ========== */
p,ul,ol /* Paragraph Style */
{
 text-align: left;
 text-indent: 0px;
 padding: 0px 0px 0px 0px;
 margin: 0px 0px 0px 0px;
}
.rvps1 /* Centered */
{
 text-align: center;
}
--></style>
</head>
<body>

<p>Doesn't use case construct at all, so there is something special, I think.</p>
<p><br></p>
<p>In OSPF, maybe, you can better use something like:</p>
<p><br></p>
<p>     if net ~ [ 1.1.1.1/32, 2.2.2.2/32 ] then accept;</p>
<p>     reject;</p>
<p><br></p>
<p><br></p>
<p>Вы писали 29 сентября 2016 г., 12:01:00:</p>
<p><br></p>
<div><table border=0 cellpadding=1 cellspacing=2 style="background-color: #ffffff;">
<tr valign=top>
<td width=1 style="background-color: #0000ff;"><br>
</td>
<td width=1098>
<p><span class=rvts6>Construction with single IP addresses passes syntax check, but filter does not work as expected – it passes all routes and does not filter anything. I have ugly workaround which works:</span></p>
<p><span class=rvts6>filter permit_white {</span></p>
<p><span class=rvts6>        if net = 1.1.1.1/32 then {</span></p>
<p><span class=rvts6>                accept;</span></p>
<p><span class=rvts6>        }</span></p>
<p><span class=rvts6>                if net = 2.2.2.2/32 then {</span></p>
<p><span class=rvts6>                accept;</span></p>
<p><span class=rvts6>        }</span></p>
<p><span class=rvts6>        else {</span></p>
<p><span class=rvts6>                reject;</span></p>
<p><span class=rvts6>        }</span></p>
<p><span class=rvts6>}</span></p>
<p><span class=rvts6> </span></p>
<p><span class=rvts6>There are no examples on the internet with ‘case’ statement, seems the feature is rarely used and even implemented with some mistakes, isn’t it?</span></p>
<p><span class=rvts6> </span></p>
<p><span class=rvts6>ROA table would be helpful, but if I understood this feature correctly, it is used for BGP, but in my case I use OSPF only.</span></p>
<p><span class=rvts6> </span></p>
<p><span class=rvts6>------------------------------------------</span></p>
<p><span class=rvts6>Служба поддержки серверов</span></p>
<p><span class=rvts6>Группа сетевого администрирования</span></p>
<p><span class=rvts6>ДПП.УТП.СПС</span></p>
<p><span class=rvts6>ЗАО ПФ «СКБ-Контур»,</span></p>
<p><span class=rvts6>Тел. +7 (343) 344-11-50 доб. 75352</span></p>
<p><span class=rvts6>e-mail: </span><a class=rvts7 href="mailto:dc-noc@skbkontur.ru">dc-noc@skbkontur.ru</a></p>
<p><a class=rvts8 href="https://www.kontur.ru/">https://www.kontur.ru</a></p>
<p><span class=rvts6> </span></p>
<p><span class=rvts9>From:</span><span class=rvts10> Василий Олейников [mailto:oleynikov_v@ufanet.ru] </span></p>
<p><span class=rvts9>Sent:</span><span class=rvts10> Thursday, September 29, 2016 11:45 AM</span></p>
<p><span class=rvts9>To:</span><span class=rvts10> Войнович Андрей Александрович <andreyv@skbkontur.ru></span></p>
<p><span class=rvts9>Cc:</span><span class=rvts10> bird-users@network.cz</span></p>
<p><span class=rvts9>Subject:</span><span class=rvts10> Re: filter all prefixes except a few with 'case' control</span></p>
<p><span class=rvts11> </span></p>
<p><span class=rvts12>It seems, that case doesn't work with prefix, only with single ip</span></p>
<p><span class=rvts12> </span></p>
<p><span class=rvts12>As I see, this construct:</span></p>
<p><span class=rvts12> </span></p>
<p><span class=rvts12>     case net {</span></p>
<p><span class=rvts12>         1.1.1.1:accept;</span></p>
<p><span class=rvts12>         2.2.2.2:accept;</span></p>
<p><span class=rvts12>         else: reject;</span></p>
<p><span class=rvts12>     }</span></p>
<p><span class=rvts12> </span></p>
<p><span class=rvts12>works fine.</span></p>
<p><span class=rvts12> </span></p>
<p><span class=rvts12>Maybe, ROA table can help you to simplify config?</span></p>
<p><span class=rvts12> </span></p>
<div><table border=0 cellpadding=0 cellspacing=2 style="background-color: #ffffff;">
<tr valign=top>
<td width=3 style="background-color: #0000ff;"><br>
</td>
<td width=1089>
<p><span class=rvts13>Hi all!</span></p>
<p><span class=rvts13> </span></p>
<p><span class=rvts13>I try to implement simple filter which rejects all prefixes except a few with 'case' control this way:</span></p>
<p><span class=rvts13> </span></p>
<p><span class=rvts13>filter permit_white {</span></p>
<p><span class=rvts13>        case net {</span></p>
<p><span class=rvts13>                1.1.1.1/32: accept;</span></p>
<p><span class=rvts13>                2.2.2.2/32: accept;</span></p>
<p><span class=rvts13>                else: reject;</span></p>
<p><span class=rvts13>        }</span></p>
<p><span class=rvts13>}</span></p>
<p><span class=rvts13> </span></p>
<p><span class=rvts13>But syntax check fails on line ‘1.1.1.1/32: accept;’. I read everything on Internet what was found, but cannot understand what is wrong.</span></p>
<p><span class=rvts14> </span></p>
<p><span class=rvts14>------------------------------------------</span></p>
<p><span class=rvts14>Служба поддержки серверов</span></p>
<p><span class=rvts14>Группа сетевого администрирования</span></p>
<p><span class=rvts14>ДПП.УТП.СПС</span></p>
<p><span class=rvts14>ЗАО ПФ «СКБ-Контур»,</span></p>
<p><span class=rvts14>Тел. +7 (343) 344-11-50 доб. 75352</span></p>
<p><span class=rvts14>e-mail: </span><a class=rvts7 href="mailto:dc-noc@skbkontur.ru">dc-noc@skbkontur.ru</a></p>
<p><a class=rvts8 href="https://www.kontur.ru/">https://www.kontur.ru</a></p>
<p><span class=rvts13> </span></p>
</td>
</tr>
</table>
</div>
<p><span class=rvts12> </span></p>
<p><span class=rvts12> </span></p>
<p><span class=rvts12> </span></p>
<p><span class=rvts15>-- </span></p>
<p><span class=rvts15>С уважением,</span></p>
<p><span class=rvts15>Василий Олейников</span></p>
<p><span class=rvts15>Системный администратор</span></p>
<p><span class=rvts15>Отдел эксплуатации и развития магистральной сети</span></p>
<p><span class=rvts15>Служба СПО ОАО "Уфанет"</span></p>
<p><span class=rvts15>тел. +7 (347) 2-900-402 вн.3314</span></p>
<p><span class=rvts15>моб. +7 937 333 45 56</span></p>
</td>
</tr>
</table>
</div>
<p><br></p>
<p><br></p>
<p><br></p>
<p><span class=rvts16>-- </span></p>
<p><span class=rvts16>С уважением,</span></p>
<p><span class=rvts16>Василий Олейников</span></p>
<p><span class=rvts16>Системный администратор</span></p>
<p><span class=rvts16>Отдел эксплуатации и развития магистральной сети</span></p>
<p><span class=rvts16>Служба СПО ОАО "Уфанет"</span></p>
<p><span class=rvts16>тел. +7 (347) 2-900-402 вн.3314</span></p>
<p><span class=rvts16>моб. +7 937 333 45 56</span></p>

</body></html>