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