<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 10.01.2014 08:14, 曾小小 wrote:<br>
    </div>
    <blockquote
cite="mid:CAMi8bGu+cHuhhsYsZuLO9-ArOEF7YJfBYx_z4zjYuK+r-GQa+g@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div><span style="font-family:arial,sans-serif;font-size:14px">Hello,</span><br>
        </div>
        <div><br>
        </div>
        <div>I want to use the ospf protocol ecmp function, load
          balancing local to remote devices. </div>
        <div><br>
        </div>
        <div>Interface uses ipip tunnel connected. </div>
        <div><br>
        </div>
        <div>the local use FreeBSD 10.0-BETA1 and BIRD 1.3.11, using fib
          support multiple routing tables, gif interface is configured
          for parallel tunnels by setting the sysctl variable
          net.link.gif.parallel_tunnels to </div>
      </div>
    </blockquote>
    Hello. Currently FreeBSD ECMP is unstable and turned off in GENERIC
    (options RADIX_MPATH). Additionally, AFAIR bird does not support
    multipath on (Free)BSD.<br>
    I'm working to improve multipath in FreeBSD (I hope necessary
    changes will get in 10-STABLE in a month). After that I'll take a
    look on bird and probably update FreeBSD port to enable ecmp.<br>
    <blockquote
cite="mid:CAMi8bGu+cHuhhsYsZuLO9-ArOEF7YJfBYx_z4zjYuK+r-GQa+g@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>1.</div>
        <div><br>
        </div>
        <div>the remote use Ubuntu 13.04 and Quagga (version 0.99.22). </div>
        <div><br>
        </div>
        <div>Configured as follows: </div>
        <div><br>
        </div>
        <div>
          <div>protocol ospf ospf_gif {</div>
          <div>        table tab_ospf_gif;</div>
          <div>        router id 192.168.148.17;</div>
          <div>        ecmp yes ;</div>
          <div>        export all;</div>
          <div>        import all;</div>
          <div>        preference 200;</div>
          <div>        area 0.0.0.10 {</div>
          <div>                interface "gif0" {</div>
          <div>                        ecmp weight 3;</div>
          <div>                        hello 10;</div>
          <div>                        retransmit 5;</div>
          <div>                        cost 10;</div>
          <div>                        transmit delay 1;</div>
          <div>                        dead count 4;</div>
          <div>                        wait 40;</div>
          <div>                        type pointopoint;</div>
          <div>                        priority 0;</div>
          <div>                        authentication cryptographic;</div>
          <div>                        password "abc";</div>
          <div>                };</div>
          <div><br>
          </div>
          <div>                interface "gif1" {</div>
          <div>                        hello 10;</div>
          <div>                        retransmit 5;</div>
          <div>                        cost 10;</div>
          <div>                        transmit delay 1;</div>
          <div>                        dead count 4;</div>
          <div>                        wait 40;</div>
          <div>                        type pointopoint;</div>
          <div>                        priority 0;</div>
          <div>                        authentication cryptographic;</div>
          <div>                        password "abc";</div>
          <div>                };                      </div>
          <div><br>
          </div>
          <div>        };</div>
          <div>}</div>
          <div><br>
          </div>
          <div>protocol pipe pipe_gif</div>
          <div>{</div>
          <div>        table tab_ospf_gif;</div>
          <div>        peer table master;</div>
          <div><br>
          </div>
          <div>        import none;</div>
          <div>        export all;</div>
          <div>}</div>
          <div><br>
          </div>
          <div>protocol kernel kernel_gif</div>
          <div>{</div>
          <div>        debug all;</div>
          <div>        table tab_ospf_gif;</div>
          <div>        export all;</div>
          <div>        kernel table 10;</div>
          <div>        scan time 15;</div>
          <div>}</div>
        </div>
        <div><br>
        </div>
        <div>In the test if configured ecmp function, the local device
          using bird view master table, tab_ospf_gif two tables are
          learning two equal cost routes to the remote device (see
          below). </div>
        <div><br>
        </div>
        <div>bird> show route table master </div>
        <div>1007-0.0.0.0 / 0 multipath [ospf_gif 18:18] * E2
          (200/10/10) [xxxx] </div>
        <div>     via 192.168.170.41 on gif0 weight 3 </div>
        <div>     via 192.168.170.149 on gif1 weight 1 </div>
        <div><br>
        </div>
        <div>bird> show route table tab_ospf_gif </div>
        <div>1007-0.0.0.0 / 0 multipath [ospf_gif 18:18] * E2
          (200/10/10) [xxxx] </div>
        <div>     via 192.168.170.41 on gif0 weight 3 </div>
        <div>     via 192.168.170.149 on gif1 weight 1 </div>
        <div><br>
        </div>
        <div>But I can not see the route to the fib in freebsd. Why? ? </div>
        <div><br>
        </div>
        <div>I look protocols, found that the route was refused entry,
          as follows: </div>
        <div><br>
        </div>
        <div>
          <div>1002-kernel_gif Kernel   tab_ospf_gif up     18:42       </div>
          <div>1006-  Preference:     10</div>
          <div>       Input filter:   ACCEPT</div>
          <div>       Output filter:  ACCEPT</div>
          <div>       Routes:         0 imported, 0 exported, 0
            preferred</div>
          <div>       Route change stats:     received   rejected  
            filtered    ignored   accepted</div>
          <div>         Import updates:              0          0      
               0          0          0</div>
          <div>         Import withdraws:            0          0      
             ---          0          0</div>
          <div>         Export updates:              3          3      
               0        ---          0</div>
          <div>         Export withdraws:            0        ---      
             ---        ---          0</div>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Use debug discovery and found the following: </div>
        <div><br>
        </div>
        <div>09-01-2014 23:58:45 <TRACE> kernel_gif <rejected
          by protocol 0.0.0.0 / 0 multipath </div>
        <div>09-01-2014 23:58:45 <TRACE> kernel_gif <rejected
          by protocol <a moz-do-not-send="true"
            href="http://192.168.170.40/30">192.168.170.40/30</a>
          multipath </div>
        <div>09-01-2014 23:58:45 <TRACE> kernel_gif <rejected
          by protocol <a moz-do-not-send="true"
            href="http://192.168.170.148/30">192.168.170.148/30</a>
          multipath </div>
        <div><br>
        </div>
        <div>If I do not use ecmp function, fib table freebsd system can
          view the routing entries, but only a single path.</div>
        <div><br>
        </div>
        <div style="">thank you very much.</div>
      </div>
    </blockquote>
    <br>
  </body>
</html>