Great, I'd like to test ecmp on freebsd after Alexander release it.
And how about flowtable's process? In a SLB scene, it's useful, but I
remembered it's confilict with BGP update.
Regards
Simon
于 10/1/14 下午4:53, Alexander V. Chernikov 写道:
On 10.01.2014 08:14, 曾小小 wrote:
Hello,
I want to use the ospf protocol ecmp function, load balancing local to
remote devices.
Interface uses ipip tunnel connected.
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
Hello. Currently FreeBSD ECMP is unstable and turned off in GENERIC
(options RADIX_MPATH). Additionally, AFAIR bird does not support
multipath on (Free)BSD.
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.
1.
the remote use Ubuntu 13.04 and Quagga (version 0.99.22).
Configured as follows:
protocol ospf ospf_gif {
table tab_ospf_gif;
router id 192.168.148.17;
ecmp yes ;
export all;
import all;
preference 200;
area 0.0.0.10 {
interface "gif0" {
ecmp weight 3;
hello 10;
retransmit 5;
cost 10;
transmit delay 1;
dead count 4;
wait 40;
type pointopoint;
priority 0;
authentication cryptographic;
password "abc";
};
interface "gif1" {
hello 10;
retransmit 5;
cost 10;
transmit delay 1;
dead count 4;
wait 40;
type pointopoint;
priority 0;
authentication cryptographic;
password "abc";
};
};
}
protocol pipe pipe_gif
{
table tab_ospf_gif;
peer table master;
import none;
export all;
}
protocol kernel kernel_gif
{
debug all;
table tab_ospf_gif;
export all;
kernel table 10;
scan time 15;
}
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).
bird> show route table master
1007-0.0.0.0 / 0 multipath [ospf_gif 18:18] * E2 (200/10/10) [xxxx]
via 192.168.170.41 on gif0 weight 3
via 192.168.170.149 on gif1 weight 1
bird> show route table tab_ospf_gif
1007-0.0.0.0 / 0 multipath [ospf_gif 18:18] * E2 (200/10/10) [xxxx]
via 192.168.170.41 on gif0 weight 3
via 192.168.170.149 on gif1 weight 1
But I can not see the route to the fib in freebsd. Why? ?
I look protocols, found that the route was refused entry, as follows:
1002-kernel_gif Kernel tab_ospf_gif up 18:42
1006- Preference: 10
Input filter: ACCEPT
Output filter: ACCEPT
Routes: 0 imported, 0 exported, 0 preferred
Route change stats: received rejected filtered ignored
accepted
Import updates: 0 0 0 0
0
Import withdraws: 0 0 --- 0
0
Export updates: 3 3 0 ---
0
Export withdraws: 0 --- --- ---
0
Use debug discovery and found the following:
09-01-2014 23:58:45 <TRACE> kernel_gif <rejected by protocol 0.0.0.0 /
0 multipath
09-01-2014 23:58:45 <TRACE> kernel_gif <rejected by protocol
192.168.170.40/30 <http://192.168.170.40/30> multipath
09-01-2014 23:58:45 <TRACE> kernel_gif <rejected by protocol
192.168.170.148/30 <http://192.168.170.148/30> multipath
If I do not use ecmp function, fib table freebsd system can view the
routing entries, but only a single path.
thank you very much.