2

The situation is this: a small broadcasting company is going to have multiple remote cameras sending live video back to the company HQ where they have the hardware to produce the live stream sent to YouTUBE, FB, and similar services.

The company wants to have redundant Internet connections in such a way that the cameras, which are only able to have one destination IP address are never aware of whether or not one of the connections goes down.

It has always been my understanding is from day 1 the ARPENET was designed to handle the exact situation.

My impression is the solution is for the company to have its own router on the public Internet. It has three connections: Primary provider, secondary provider, a firewall of the company. Somehow, through the magic of the Internet, routing tables, and the like, this router is able to tell the world the best way to get to the companies firewall is via the Primary provider. If that goes down, the routing tables will offer up the secondary route to the server. The whole time the cameras only need to know about the companies firewall.

Do I have the basic idea correct?

I am assuming to set this up, it will require coordination with both providers so they both can make adjustments to their routing tables, too. In normal circumstances is this type of setup one where the providers are exacting the company to have someone that knows how to set up the router at the company or will one of the providers help with that?

enter image description here

5
  • Note that it may be much easier and much cheaper if the processing were done on a server hosted in a datacenter rather than in customer premises. "Cloud service provides" like AWS will have widely redundant networks, links, etc. You could even use global anycast. Also, redundant Internet connections ending up in a single router, single firewall and single video processing server seems like a waste. If you really want no SPF (single point of failure), you have quite a more components to add. – jcaron Jan 16 at 14:20
  • Also, having two links from two separate ISPs, if they end up in the same cable/fiber because they both go through the same "last mile" link, will both go down at the same time when someone is a bit clumsy with their backhoe while doing roadworks. Having real redundancy with no SPF is a lot harder (and expensive) that it may seem. Don't forget your UPS and backup generator as well :-) And if you may want an alternate backup site as well, just in case of fire or natural disaster... – jcaron Jan 16 at 14:24
  • Just as a note: RFC 5737 is reserving several address blocks for use in documentation and examples, so you could use addresses from these blocks instead of using random ones. – Paŭlo Ebermann Jan 16 at 20:47
  • grassvalley perhaps? – Thomas Jan 16 at 22:41
  • Am I missing something? I have installed hundreds of IP cameras of dozens of makes and models, and, aside from some that were cloud based, basic IP operation is to serve the video to a client at any IP address(unless that has been specifically disallowed in the camera's security settings) with the correct credentials, not to "push" the video to one specific IP address. What am I missing here? – Hitek Jan 17 at 3:41
12

In your question, you're broadly describing the concepts implemented by Border Gateway Protocol (BGP), a signaling protocol "big" Internet routers use to coordinate the Internet routing table.

Somehow, through the magic of the Internet, routing tables, and the like, this router is able to tell the world the best way to get to the companies firewall is via the Primary provider. If that goes down, the routing tables will offer up the secondary route to the server. The whole time the cameras only need to know about the companies firewall.

You're further correct that this is usually done in such a manner that the cameras (and often the firewall, too) aren't required to know about BGP. The router owned by company in your conceptual diagram does know about BGP, as do the ISP routers; but the downstream devices don't need to.

...

I am assuming to set this up, it will require coordination with both providers so they both can make adjustments to their routing tables, too.

Yes, and that's BGP's primary function -- to enable different companies to coordinate their routing tables by sharing information.

In your example, you use the IP address 109.204.4.184 for the video processing machine. I'm going to substitute the IP 192.0.2.184 which is an address reserved for documentation.

The router owned by company would use BGP to advertise reach-ability to 192.0.2.0/24 and the ISP routers would be configured to accept that advertisement.

The ISPs further propagate that reach-ability information for 192.0.2.0/24 to other ISPs throughout the Internet (there are tens-of-thousands of ISPs who do this together using BGP.)

If the connection between router owned by company and ISP 1 goes down, so will the BGP advertisement. ISP 1 will withdraw its reach-ability advertisement from the Internet by telling its neighboring ISPs that it no longer has a path to 192.0.2.0/24 via your connection. ISP 2 will still have a working path, and the Internet shifts to that working path.

Indeed, under normal circumstances, both ISP 1 and ISP 2 are working in an active-active configuration; and if one of your uplinks fails, even ISP 1 will know how to reach you by going through ISP 2 (but it won't tell the rest of the world about the ISP 2 link, for reasons outside the scope of this question.)

I hope this helps. There are many tutorials online if you think your business needs BGP.

6
  • Thank you SO much, that is exactly what I needed to know. Oh, and I never realized there was an IP address reserved for documentation, thanks for the little nugget of info! – Sam Carleton Jan 15 at 14:52
  • @SamCarleton You probably also want redundant routers on the company side as well, which means you will need either complicated configuration on the internal network, or you need the routers to properly handle failover in a way that does not disrupt connections (which in practice probably means VRRP or CARP). The second option (proper failover in the routers) is likely to be easier to set up. – Austin Hemmelgarn Jan 16 at 3:17
  • This simply isn't true at all. I spent years building redundant systems. Only about 20% of this answer is relevant. Some points are just wrong. – blankip Jan 17 at 7:18
  • @blankip the tricky thing about the Network Engineering SX is it's limited in scope to network-based Q&A. Should the user consider some other redundancy strategy? Maybe, but that depends on his application -- and that is out of scope here. The answer I contributed is written with that in mind. I've been a professional network engineer for over 20 years, architecting & operating globe-spanning BGP networks for dozens of clients. Do I think the user needs that for his video application? Unfortunately, that's not really what he asked; and is a topic for another SX site, not this one. – Jeff Wheeler Jan 17 at 16:22
  • @JeffWheeler - but the question isn't "what is BGP" it is what do I need to solve this problem - which has zero to do with BGP. BGP doesn't know if 20 other things are wrong with the network for the feed or the feed itself. This isn't how you have a live backup, actually I have never heard of a video/audio live/live system that even remotely relied on BGP or network timeouts to fail over. Also this isn't how the internet works - he would have to have everything under one umbrella for your scheme to sort of work (not for him). – blankip Jan 18 at 6:02
6

In addition to @ronmaupin 's answer, you will need your own IP address space (not owned by your ISPs), and your own Autonomous System Number (ASN) for the company location. Depending where you are, it may be difficult to get IPv4 addresses, so you should plan on using IPv6. You also will need to establish BGP peering with each of your ISPs.

Depending on the model, you may use one router for both ISPs, or have one for each. In the latter case, you will use VRRP, as suggested.

It also may be possible to connect to one ISP at two different locations (point of presence). You could use the ISP's address space and alleviate the need for your own. You will still need to run BGP.

2
  • Even if he would use ipv6, I doubt a little bit that it would be so easy to get an ASN with it. I think it is quite unlikely that any ISP would route anything to a customer line which is not the IP provided by it. Again a problem what ipv6 promises but does not solve. – peterh Jan 15 at 18:21
  • 4
    Plenty of ISPs will sell you IP transit links over which you can route your own IP space. Of course you will likely pay significantly more for those than for a "broadband" connection. – Peter Green Jan 15 at 18:43
2

If you want to do this, you will need to get IP space and probably an AS number allocated by a regional internet registry. You will then need to get a router that supports BGP and work with your providers to set it up to advertise your IP space to them. Ron and Jeff have described the mechanics pretty well.

However there are a few more things you should think about before going down this route.

The first is that internet routing changes are not instant. If a link goes down unexpectedly then it may take time for the traffic to re-route (afaict this varies from about half a second in the best case to sometimes minutes or longer). The public internet itself is also ultimately a "best effort" network, not a network that provides guaranteed bandwidth from A to B.

The second is that internet traffic is bi-directional, you also need to think about your outgoing traffic and you have several choices here. You could just point default routes at your providers, but this gives your router no information on which ISP has the better route to a given destination. You could import the full routing table, but that means you need a router that can accomodate a very large number of routes. You could also import routes for providers you consider strategically important (e.g. those associated with google, facebook, major ISPs in your country etc) and use default routes for the rest.

The third is that the regional internet registries have run out of v4 space for new allocations, so if you need v4 space you will have to buy it on the markets.

Finally don't expect to do this on "broadband" connections. You are likely going to have to rent dedicated links to IP transit providers.

1
  • The "IP transit" should probably be highlighted. – jcaron Jan 16 at 14:21
2

I'm going to not exactly answer your question but instead talk about solutions. Based on my professional experience working with media companies, you're over-complicating this. Instead of trying to DIY something when you don't already have the institutional knowledge, if you really need reliable, real-time video streaming you should find a solution for that which doesn't demand you get up to speed on technology that might not even suit your purposes.

Media companies I have worked with in the past have never done their own redundant links, they have contracted with telecom providers to arrange for temporary point-to-point or private cloud connections for their remote content and real-time streaming needs.

There are many other options you have besides BGP, and most of them are probably better for your needs than BGP.

For example, you could get two separate ISPs at the broadcasting company location, set up one VPN across each ISP to the same AWS tenancy, and build out AWS to ingest the content streamed from the cameras/remote location(s) with all of the redundancy and instant failover that AWS provides. In that case you are letting the experts in the field handle the hardest and most critical part of the connection.

Another option is to reach out to an internet provider like Verizon or whoever has a lot of capabilities in your part of the world and ask what solutions they have for the kind of connection you need. They almost certainly do have solutions for this, since some types of media companies need this kind of thing all the time.

0

An alternative to a relatively involved BGP scheme could be to use a forwarding gateway or server on the Internet (with good availability). You monitor both Internet uplinks and reconfigure the server to forward to the "good" one.

The easiest way to set up such a server is by using a TCP or UDP proxy - it accepts a stream from a camera and forwards the data to your currently configured Internet link.

3
  • This function is often called global load balancing. Not sure if it's any easier to set up than BGP. You still need multiple ISP connections. Also, video streaming might be UDP. – Ron Trunk Jan 15 at 19:37
  • Load balancing with destination NAT won't work across the Internet. Works with either TCP or UDP. – Zac67 Jan 15 at 19:43
  • 1
    Perhaps we're referring to different things. All the LB companies do this. – Ron Trunk Jan 15 at 20:11
0

I don't actually think that this is a layer 2 or 3 problem. BGP may not failover quickly enough to avoid a hiccup in a live stream. Reliable transport of live video is not quite a solved problem, but a problem that has several good solutions to it.

One approach often used is bonding of two (or more) different networks. Some video transport protocols, such as RIST or SRT's (upcoming) support bonding. These can be used so that you can have multiple WAN links from your camera to your servers, in various combinations. This is especially common if the cameras are broadcasting from cellular connections, which are unreliable. But the approach can also apply to multiple WAN connections to your server, with the protocol detecting one has failed and directing traffic over the other(s).

Other options are SMPTE ST 2022-7:2013, but there isn't much public out there about it.

You could also consider sending the stream to two (or more) different IPs on different WAN links and handle switching if one fails in application code.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.