Junos 10.4 olive box, multicast not working

DaydeDayde Registered Users Posts: 2 ■□□□□□□□□□
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:
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 -daemonize
The 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

  • DaydeDayde 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.
Sign In or Register to comment.