Junos 10.4 olive box, multicast not working
I have 2 olive virtual routers running under qemu on Junos 10.4R9.2. I have several logical-systems running on each router, and multicast works between logical-systems, but not between the olive routers. This is impacting ospf, and more importantly, ldp.
Both qemu sessions are started connected to 4 tap interfaces:
I bridge the tap interfaces together to allow communication between the olive routers (br0), to allow communication between the logical-systems (br1 for R1, and br2 for R2), and to allow communication to the linux host for config file transfers (br3).
The logical-systems do something similar to this:
P:
PE:
I can ping between logical systems, and ospf neighbors are brought up. I can also ping multicast addresses with successful replies (such as 224.0.0.5). However, between olive routers on br0, I am unable to ping multicast addresses, ospf neighbors are not formed, and in order to ping the remote system I must specify the source address.
Here is what the other qemu system looks like:
Running tcpdump/wireshark on br0 shows that both P1 & P2 are sending OSPF discovery traffic to 224.0.0.5, and ldp traffic to 224.0.0.2. However, there is no return traffic. I am able to ping multicast addresses from the root shell over the link between the two successfully, so I believe the issue is with the olive routers themselves.
I did some searches and came up empty handed.. has anyone had trouble getting multicast to run between olive routers with qemu (1.5.3) under Junos 10.4? Any help is much appreciated.
Thanks
I trimmed the configs way down for the post, and changes the IP addresses (this lab mimics a production network).
Both qemu sessions are started connected to 4 tap interfaces:
sudo qemu-system-i386 -name R1 -m 512 R1.img -serial telnet:127.0.0.1:3001,server,nowait -vnc :1 -net nic,macaddr=00:aa:00:60:01:01,model=e1000,netdev=net0 -netdev tap,id=net0,script=no -net nic,macaddr=00:aa:00:60:01:02,model=e1000,netdev=net1 -netdev tap,id=net1,script=no -net nic,macaddr=00:aa:00:60:01:03,model=e1000,netdev=net2 -netdev tap,id=net2,script=no -net nic,macaddr=00:aa:00:60:01:04,model=e1000,netdev=net3 -netdev tap,id=net3,script=no -net nic,macaddr=00:aa:00:60:01:05,model=e1000,netdev=net4 -netdev tap,id=net4,script=no -daemonize sudo qemu-system-i386 -name R2 -m 512 R2.img -serial telnet:127.0.0.1:3002,server,nowait -vnc :2 -net nic,macaddr=00:aa:00:60:10:01,model=e1000,netdev=net10 -netdev tap,id=net10,script=no -net nic,macaddr=00:aa:00:60:10:02,model=e1000,netdev=net11 -netdev tap,id=net11,script=no -net nic,macaddr=00:aa:00:60:10:03,model=e1000,netdev=net12 -netdev tap,id=net12,script=no -net nic,macaddr=00:aa:00:60:10:04,model=e1000,netdev=net13 -netdev tap,id=net13,script=no -net nic,macaddr=00:aa:00:60:10:05,model=e1000,netdev=net14 -netdev tap,id=net14,script=no -daemonizeThe MAC addresses may not be needed anymore (was originally running with the "-net tap" option, and had duplicate MAC issues).
I bridge the tap interfaces together to allow communication between the olive routers (br0), to allow communication between the logical-systems (br1 for R1, and br2 for R2), and to allow communication to the linux host for config file transfers (br3).
~ $ sudo brctl show bridge name bridge id STP enabled interfaces br0 8000.86c659539226 no tap2 tap7 br1 8000.0a78c803fa35 no tap0 tap1 br2 8000.426f61620a3b no tap5 tap6 br3 8000.1efe92fe690c no tap4 tap9
The logical-systems do something similar to this:
P:
root@R1> show configuration logical-systems P1 interfaces { em0 { unit 6 { description "SPE em1.6"; vlan-id 6; family inet { address 10.10.10.0/31; } family mpls; } } em2 { unit 1 { vlan-id 1; family inet { address 10.10.20.1/25; } family mpls; } } lo0 { unit 1 { family inet { address 10.10.6.1/32; } } } } protocols { ldp { interface all; } mpls { interface all; } ospf { overload timeout 300; traffic-engineering; export OSPF-EXPORT; import STATIC_TO_OSPF; reference-bandwidth 100g; area 0.0.0.0 { interface lo0.1 { passive; } interface all { interface-type p2p; authentication { md5 1 key "***"; ## SECRET-DATA } bfd-liveness-detection { minimum-interval 150; multiplier 3; } } interface em2.1 { priority 200; bfd-liveness-detection { minimum-interval 500; multiplier 3; } } } } } policy-options { policy-statement OSPF-EXPORT { term STATIC { from protocol static; then accept; } } policy-statement STATIC_TO_OSPF { from protocol static; then accept; } } routing-options { router-id 10.10.6.1; autonomous-system 65001; }
PE:
root@R1> show configuration logical-systems PE interfaces { em1 { unit 6 { description "P em0.6"; vlan-id 6; family inet { address 10.10.10.1/31; } family mpls; } } lo0 { unit 7 { family inet { address 10.10.20.50/32; } } } } protocols { mpls { icmp-tunneling; interface all; } ospf { traffic-engineering; reference-bandwidth 100g; area 0.0.0.0 { interface em1.6 { interface-type p2p; authentication { md5 1 key "***"; ## SECRET-DATA } } interface lo0.7 { passive; } } } ldp { interface all; } }
I can ping between logical systems, and ospf neighbors are brought up. I can also ping multicast addresses with successful replies (such as 224.0.0.5). However, between olive routers on br0, I am unable to ping multicast addresses, ospf neighbors are not formed, and in order to ping the remote system I must specify the source address.
Here is what the other qemu system looks like:
root@R2> show configuration logical-systems P2 interfaces { em2 { unit 1 { vlan-id 1; family inet { address 10.10.20.2/25; } family mpls; } } lo0 { unit 2 { family inet { address 10.10.6.64/32; } } } } protocols { mpls { icmp-tunneling; interface all; } ospf { overload timeout 300; traffic-engineering; export OSPF-EXPORT; import STATIC_TO_OSPF; reference-bandwidth 100g; area 0.0.0.0 { interface lo0.2 { passive; } interface all { interface-type p2p; authentication { md5 1 key "***"; ## SECRET-DATA } bfd-liveness-detection { minimum-interval 150; multiplier 3; } } interface em2.1 { priority 200; bfd-liveness-detection { minimum-interval 500; multiplier 3; } } } } ldp { interface all; } } policy-options { policy-statement OSPF-EXPORT { term STATIC { from protocol static; then accept; } } policy-statement STATIC_TO_OSPF { from protocol static; then accept; } } router-id 10.10.6.64; autonomous-system 65001; }
Running tcpdump/wireshark on br0 shows that both P1 & P2 are sending OSPF discovery traffic to 224.0.0.5, and ldp traffic to 224.0.0.2. However, there is no return traffic. I am able to ping multicast addresses from the root shell over the link between the two successfully, so I believe the issue is with the olive routers themselves.
I did some searches and came up empty handed.. has anyone had trouble getting multicast to run between olive routers with qemu (1.5.3) under Junos 10.4? Any help is much appreciated.
Thanks
I trimmed the configs way down for the post, and changes the IP addresses (this lab mimics a production network).
Comments
-
Dayde Registered Users Posts: 2 ■□□□□□□□□□I was able to get my lab up and running using static routes and rsvp-te static lsp's, but I would like to solve this multicast issue as well for studying.