Introduction Hi, in this video we're going to look at a new feature that came in 1.15, which is support for BGP communities. BGP is a way to communicate between your Kubernetes cluster and the rest of your network. It lets you tell the rest of your network about the pod CIDRs and services in your cluster, and BGP communities are a long-standing feature of BGP. A BGP community is a type of attribute. It is essentially metadata, a way to tag the routes that you advertise to your neighbors and tell them some information about those routes, maybe to influence some form of traffic engineering. BGP communities overview So let's have a quick look in the demo. First, I've built a BGP peering session between Cilium and a top-of-rack FRR device, and it's running. The session is established. I'm actually using one of our labs for this demo. You can try it in your own time by going to Isovalent.com/labs. We've got a number of BGP labs that teach a range of different BGP features. So I've got BGP running. The session is established between my cluster and the rest of my network. As you can see, we are advertising routes, receiving one route and advertising a couple of routes. That's great. What we now want to do is tag our routes and provide some more information to our neighbors by adding a community value to our prefixes. If I connect to my neighbor, I can see the route that is sent here is essentially the pod CIDR, the IP range from which our pods in the cluster pick their IP addresses. The neighbor has received it, everything is working, and we can see it's coming from the Cilium node, but there is no community added to it yet, so let's do that now. Configure BGP communities We're going to modify the BGP peering policy, which is where we configure BGP using Cilium. So we are going to add a community with this particular value, 65115:0. A community works as essentially a key-value pair, and here we are only going to add this value to our pod CIDR, which is why we get this selector type. You could add different communities to different networks you advertise to your neighbor. Here we're going to apply this policy. I'm going to log back onto my remote device again, and you can see that the community has been added. So that's really simple. It's a simple little feature that has been added, but it is something very common in the world of networking: support for communities. Again, communities are used for traffic engineering, and one of the well-known communities is something called no-advertise or no-export. If you look back at the relevant RFC, you will see references to these communities. So no-export and no-advertise are common well-known communities. Here let's apply no-advertise. We're going to change the community and use this one instead. There you go. Let's reapply it. What we did here is use no-advertise. Its hexadecimal value is 0xFFFFFF02, which essentially, if you break it down, gets converted into this value here. Now once we apply it, as you can see, the remote side interpreted it and realized this is the value that describes no-advertise. With no-advertise, you are telling your peer, I'm sending you this route, but don't tell anybody else about it. Don't advertise it any further. Conclusion So as we can see, my remote device has received the route, but it is not going to advertise it to any other peer, which again is the intent of using no-advertise. That's it for this demo of BGP communities using Cilium. Thank you very much for watching, and I will see you in the next one.