Configuring community alias
As a cluster administrator, you can configure a community alias and use it across different advertisements.
About the community custom resource
To simplify BGP configuration, define named aliases for community values by using the community custom resource. You can reference these aliases when advertising ipAddressPools with the BGPAdvertisement resource.
The fields for the community custom resource are described in the following table.
Note
The community CRD applies only to BGPAdvertisement.
| Field | Type | Description |
|---|---|---|
|
|
Specifies the name for the |
|
|
Specifies the namespace for the |
|
|
Specifies a list of BGP community aliases that can be used in BGPAdvertisements. A community alias consists of a pair of name (alias) and value (number:number). Link the BGPAdvertisement to a community alias by referring to the alias name in its |
| Field | Type | Description |
|---|---|---|
|
|
The name of the alias for the |
|
|
The BGP |
Configuring MetalLB with a BGP advertisement and community alias
To advertise an IPAddressPool by using the BGP protocol, configure MetalLB with a community alias. This configuration sets the alias to the numeric value of the NO_ADVERTISE community.
In the following example, the peer BGP router doc-example-peer-community receives one 203.0.113.200/32 route and one fc00:f853:ccd:e799::1/128 route for each load-balancer IP address that MetalLB assigns to a service. A community alias is configured with the NO_ADVERTISE community.
-
Install the OpenShift CLI (
oc) -
Log in as a user with
cluster-adminprivileges.
-
Create an IP address pool.
-
Create a file, such as
ipaddresspool.yaml, with content like the following example:apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: doc-example-bgp-community spec: addresses: - 203.0.113.200/30 - fc00:f853:ccd:e799::/124 -
Apply the configuration for the IP address pool:
$ oc apply -f ipaddresspool.yaml
-
-
Create a community alias named
community1.apiVersion: metallb.io/v1beta1 kind: Community metadata: name: community1 namespace: metallb-system spec: communities: - name: NO_ADVERTISE value: '65535:65282' -
Create a BGP peer named
doc-example-bgp-peer.-
Create a file, such as
bgppeer.yaml, with content like the following example:apiVersion: metallb.io/v1beta2 kind: BGPPeer metadata: namespace: metallb-system name: doc-example-bgp-peer spec: peerAddress: 10.0.0.1 peerASN: 64501 myASN: 64500 routerID: 10.10.10.10 -
Apply the configuration for the BGP peer:
$ oc apply -f bgppeer.yaml
-
-
Create a BGP advertisement with the community alias.
-
Create a file, such as
bgpadvertisement.yaml, with content like the following example:apiVersion: metallb.io/v1beta1 kind: BGPAdvertisement metadata: name: bgp-community-sample namespace: metallb-system spec: aggregationLength: 32 aggregationLengthV6: 128 communities: - NO_ADVERTISE ipAddressPools: - doc-example-bgp-community peers: - doc-example-peerwhere:
NO_ADVERTISE: Specifies theCommunityAlias.namehere and not the community custom resource (CR) name. -
Apply the configuration:
$ oc apply -f bgpadvertisement.yaml
-