<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 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 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 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>