add RP entry in all routers which are participating in multicast forwarding.
/routing pim rp add address=x.x.x.x disabled=no
basically you pick one device, which is in the forwarding path between the source(s) and the receivers.
if you have a redundant network, create a “loopback” interface (a bridge without ports) in the chosen device,
assign a /32 address to it, and use this as RP address.
make sure that this address gets into the routing table of all other routers in the network, otherwise RPF checks will fail.
OK so this is all happening on one device - an RB850Gx2. I have 3 VLANs that I am routing between. So I would add this ‘loopback’ bridge there? What subnet would the address be on?
loopback is only needed if you don’t want your RP flapping because the interface where it gets its IP address went down. you can use whatever /32 address which is routed in your network.
or it’s just a single device?
i have the same "problem".. im getting a "No RP address for this group" error message in the log. I executed the command mentioned in this email thread, viz. "rp add address=10.10.10.24 disabled=no".
Now the log gives a "upstream neighbour not found" message.
Im not a techie, and very new to Mikrotik, please advise.
Here is the "export verbose" output:
[admin@Router] /routing pim> export verbose
RP = rendezvous point - it’s the point in the network where all group join/leave messages (from IGMP) get relayed to, and where multicast streams are delivered to by default, even if there are no subscribers to it. This becomes the “root” of all of your multicast traffic pathways. Traffic goes “up” to the RP, and then rains back “down” through every interface which has at least one subscriber.
This would work if you have a router with that IP address on it. Whatever your most upstream router is (the one connected to your ISP) - choose an IP address on the router (a static IP address) and set RP=that address. If you have multiple routers, then all of them must use the same RP address or you’ll have issues.
It was mentioned earlier in this thread, making a loopback interface for this RP address. The reason is simple - suppose you use the IP of some interface, and that interface gets disconnected or goes down for whatever reason. You’d still like media that doesn’t use this interface to keep working even while the interface is down, so what you do is make a virtual interface (a loop interface) with a /32 IP address on it. Make sure that all routers have a route for this /32 (or if it’s on the most upstream router, then all other routers’ default gateway routes will lead to it, so that is fine). Create a bridge interface and name it “loopback” - then put an IP address on it - e.g. 10.10.10.24/32 (given your example IP). It can be anything you want so long as it’s unique in your network, and not some public IP address you picked at random…
Set that IP address as the RP for all routers in your network, and you’ll have it working.
Thanks for the reply. In my network, x.x.x.24 is my mikrotik router, and x.x.x.1 is the modem connected to my ISP. So, should rp be set to x.x.x.1 or to x.x.x.24?
Whatever your most upstream router is (the one connected to your ISP) - choose an IP address on the router (a static IP address) and set RP=that address. If you have multiple routers, then all of them must use the same RP address or you’ll have issues.
hence, i guess rp should be set to x.x.x.1 then? if so, please help me with the code to remove x.x.x.24… i tried “remove” but dont seem to understand the syntax to use it. sorry for such basic questions..
also, what you have said about loopback interface makes sense. I have a NAS, and im not able to access media on it when my internet is down, even though it is on my home network. So i guess i need to make a loopback interface and point my NAS to that. I’ll try this and report back.
a) added a loopback interface
b) assigned x.x.x.1 to this interface (this is the IP connected to my ISP)
c) executed rp add address=x.x.x.1 disabled=no
> ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK INTERFACE
0 10.0.0.1/24 10.0.0.0 bridge-lan
lets see what is our bridges:
> interface print where type=bridge
Flags: D - dynamic, X - disabled, R - running, S - slave
# NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU MAC-ADDRESS
0 R bridge-lan bridge 1500 1598 XX:XX:XX:XX:XX:XX
so we can see we have 10.0.0.1 on bridge-lan interface with a mask of /24
we could just do "/routing pim rp add address=10.0.0.1" but lets make things complicated
but lets add a loopback bridge.
#add the bridge interface:
>interface bridge add name=loopback0
#set the ip on the interface:
>ip address add address=192.168.0.254/32 interface=loopback0
#or same thing but explicit netmask
>ip address add address=192.168.0.254 netmask 255.255.255.255 interface=loopback0
#add lo0 as a rp :
>routing pim rp add address=192.168.0.254
of course you can change the 192.168.0.254 address to any private address that is not used and not part of another subnet on another interface.
after that you need to route that /32 network to your routing protocol to other "sites" or routers in your network.