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 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 multipath 09-01-2014 23:58:45 <TRACE> kernel_gif <rejected by protocol 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.
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.
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.
participants (3)
-
Alexander V. Chernikov -
k simon -
曾小小