Hi, do you really need to use a differents AS for each node ?Hello,
@spirit apologize to mark you here, but my setup seems quite strange to work with multiple proxmox nodes and SDN. The issue is, when I configure a BGP controller (with a different AS number from the AS in EVPN controller) I stop receiving the MAC address/VTEP association on the proxmox hosts. This means, communication across nodes in the same L2 doesn't work. I googled in and come in with this post:https://forum.proxmox.com/threads/proxmox-7-0-sdn-beta-test.69655/page-24
yes, evpn announce /32 for each vm/ct.which made me configure two BGP controllers with different AS and checking the EBGP. On my vyos router I configured the BGP for my two proxmox hosts neighbors, and everything is working now. However I have this ip route table on my vyos router:
B>* 10.3.0.0/24 [20/0] via 10.2.1.3, eth2, weight 1, 00:00:11
B>* 10.3.0.10/32 [20/0] via 10.2.1.4, eth2, weight 1, 00:00:11
B>* 10.3.0.11/32 [20/0] via 10.2.1.3, eth2, weight 1, 00:00:11
which the /32 represents two containers in the different proxmox hosts. Should this be the expected behavior, that each single host address be advertised to my router? (my 10.3.0.0/24 is my VNET on proxmox SDN environment)
But if you see, the subnet is already being advertised. With the "advertise subnet" checkbox unchecked.yes, evpn announce /32 for each vm/ct.
(you can also enable the option "advertise subnet" on the zone, to send the full subnet route)
are you using proxmox8 or proxmox7 ? because they are a bug currently in frr in version8 with some kind of routes missing. (I have a fixed frr version for testing)Hello @spirit after changing the both BGP controllers for each node to use the same AS used in vyos router, and added the IPs of the hosts in the both BGP controllers, I'm not able to reach some containers, and now even the VTEP/MAC exchanges are not being made. So I can't communicate from one container in one host to another container in another host, in the same VNET and address space.
Below are the controllers.cfg file on both servers:
1st host:
evpn: evpn01
asn 64512
peers 10.2.1.3,10.2.1.4
bgp: bgppve02
asn 65003
node pve02
peers 10.2.1.1,10.2.1.3,10.2.1.4
bgp-multipath-as-path-relax 0
ebgp 0
bgp: bgppve04
asn 65003
node pve04
peers 10.2.1.1,10.2.1.3,10.2.1.4
bgp-multipath-as-path-relax 0
ebgp 0
2nd host:
evpn: evpn01
asn 64512
peers 10.2.1.3,10.2.1.4
bgp: bgppve02
asn 65003
node pve02
peers 10.2.1.1,10.2.1.3,10.2.1.4
bgp-multipath-as-path-relax 0
ebgp 0
bgp: bgppve04
asn 65003
node pve04
peers 10.2.1.1,10.2.1.3,10.2.1.4
bgp-multipath-as-path-relax 0
ebgp 0
But if you see, the subnet is already being advertised. With the "advertise subnet" checkbox unchecked.
Probably many people request you, but do you have the full guide to configure this with EVPN and BGP controllers?
Thank you.
ok, proxmox7/frr8.2.2, this version is fine.Hello @spirit , sorry for my late reply. I've checked the FRR version, is this: "FRRouting 8.2.2". Seems included in the bug correct?
oh, ok, vyos can do evpn. (I have just read the doc, it's simply a debian with frr, with a special cli to manage configuration).Hi spirit.
I'm back again seeking some guidance on how I can configure external exit nodes. Here's my configuration thus far.
Hosts
pve01-05
eth0 192.168.20.11-15
vyos01-02
eth0 192.168.20.21-22
SDN
I've setup an EVPN controller "evpn001" with the following settings:
ASN #: 65001Peers: 192.168.20.21 192.168.20.22
Then, I setup the zone "evpn001" with the following settings:
Controller: evpn001VRF-VXLAN Tag: 1001000MTU: 1450 (external MTU 1500)
Finally, I setup the vnets as follows:
vn001001:Zone: evpn001Tag: 1001001vn001002:Zone: evpn001Tag: 1001002
Issues
They two VYOS nodes will act as exit nodes for the EVPN zone, but I'm stuck on how I need to configure these to properly talk with the Proxmox nodes. I do apologize as I am very new to BGP/EVPN.
Some of my research shows that they may need to be configured as route-reflectors for the Proxmox nodes. Additionally, they should announce a default gateway in the EVPN zone. Traffic will ideally travel from inside a VNET to a VYOS router, and then it will be routed to my external edge firewalls that will handle external connectivity and NAT.
While I don't necessarily need to know the exact commands to run on the VYOS routers, I do need to know what they are supposed to be doing on a technical level. What kind of configuration did you do to your Arista switches to get them to act as exit nodes?
I appreciate any advice you can give.
Thanks!
oh, ok, vyos can do evpn. (I have just read the doc, it's simply a debian with frr, with a special cli to manage configuration).
so, indeed, you just need to configure an evpn controller (no need extra bgp controller), and add vyos in the evpn controller peers list.
use same asn for vyos and your proxmox nodes.
in evpn zone, don't configure exit-node. (as it'll be your vyos).
I don't known how is working the conf in vyos, but the idea is to announce the default 0.0.0.0 through evpn type-5 route.
also on vyos, you need to create a l3vxlan iface with same 1001000 vxlanid.
I'll try to do test next week with vyos.
Yes, exactly. Vm gateway is proxmox vnet ip (anycast ip , same ip everywhere). Then the traffic to vyos forwarded through the type5.Do I use this in conjunction with setting a gateway in the SDN vnet?
Will VMs will use the vnet gateway as their gateway and then that gateway will forward to my announced type-5 route destination,
each zone is a different vrf, so traffic is not routed between a vm from a zone to a vm in another zone.Hello everyone,
I have a question regarding multi-tenancy using this SDN. How can this be achieved? I understand that zones can help with this, allowing duplicated address spaces, but when the traffic needs to leave the proxmox, should we use a different EVPN controller for each tenant for example and with a different ASN?
Thank you
set interfaces ethernet eth2 address 10.2.2.2/24
set interfaces ethernet eth2 description 'to proxmox VTEPs'
set interfaces ethernet eth2 mtu 1600
set protocols bgp address-family l2vpn-evpn advertise ipv4 unicast
set protocols bgp address-family l2vpn-evpn advertise-all-vni
set protocols bgp system-as 65003
set protocols bgp neighbor 10.2.2.4 peer-group ibgp
set protocols bgp neighbor 10.2.2.6 peer-group ibgp
set protocols bgp neighbor 10.2.2.7 peer-group ibgp
set protocols bgp parameters log-neighbor-changes
set protocols bgp peer-group ibgp address-family l2vpn-evpn
set protocols bgp peer-group ibgp remote-as 65003
set protocols bgp peer-group ibgp update-source eth2
set interfaces vxlan vxlan5000 mtu 1550
set interfaces vxlan vxlan5000 parameters nolearning
set interfaces vxlan vxlan5000 port 4789
set interfaces vxlan vxlan5000 source-address 10.2.2.2
set interfaces vxlan vxlan5000 vni 5000
### CUSTOMB ###
set vrf name customB protocols bgp address-family ipv4-unicast redistribute connected
set vrf name customB protocols bgp address-family l2vpn-evpn advertise ipv4 unicast
set vrf name customB protocols bgp system-as 65003
set vrf name customB protocols bgp address-family ipv4-unicast network 0.0.0.0/0
set vrf name customB table 5000
set vrf name customB vni 5000
set interfaces bridge br5000 address 10.0.0.1/16
set interfaces bridge br5000 description customB
set interfaces bridge br5000 member interface vxlan5000
set interfaces bridge br5000 vrf customB
set interfaces vxlan vxlan5002 mtu 1550
set interfaces vxlan vxlan5002 parameters nolearning
set interfaces vxlan vxlan5002 port 4789
set interfaces vxlan vxlan5002 source-address 10.2.2.2
set interfaces vxlan vxlan5002 vni 5002
### TENANTC ###
set vrf name tenantC protocols bgp address-family ipv4-unicast redistribute connected
set vrf name tenantC protocols bgp address-family l2vpn-evpn advertise ipv4 unicast
set vrf name tenantC protocols bgp system-as 65003
set vrf name tenantC protocols bgp address-family ipv4-unicast network 0.0.0.0/0
set vrf name tenantC table 5002
set vrf name tenantC vni 5002
set interfaces bridge br5002 address 10.0.0.1/16
set interfaces bridge br5002 description tenantC
set interfaces bridge br5002 member interface vxlan5002
set interfaces bridge br5002 vrf tenantC
Hello, I'd like to edit this, mentioning that if both VMs are in the same proxmox server, I can reach both bridges on each zone. And the two default routes advertised in each VRF through proxmox are also visible in the routing table of each VRF on Proxmox server.Hello, I'm trying setup a vyos router with proxmox and SDN, to implement the multi-tenancy concept. Besides adding my vyos router to the peers on SDN, this is my configuration on the vyos router for two tenants: customB and tenantC:
Code:set interfaces ethernet eth2 address 10.2.2.2/24 set interfaces ethernet eth2 description 'to proxmox VTEPs' set interfaces ethernet eth2 mtu 1600 set protocols bgp address-family l2vpn-evpn advertise ipv4 unicast set protocols bgp address-family l2vpn-evpn advertise-all-vni set protocols bgp system-as 65003 set protocols bgp neighbor 10.2.2.4 peer-group ibgp set protocols bgp neighbor 10.2.2.6 peer-group ibgp set protocols bgp neighbor 10.2.2.7 peer-group ibgp set protocols bgp parameters log-neighbor-changes set protocols bgp peer-group ibgp address-family l2vpn-evpn set protocols bgp peer-group ibgp remote-as 65003 set protocols bgp peer-group ibgp update-source eth2 set interfaces vxlan vxlan5000 mtu 1550 set interfaces vxlan vxlan5000 parameters nolearning set interfaces vxlan vxlan5000 port 4789 set interfaces vxlan vxlan5000 source-address 10.2.2.2 set interfaces vxlan vxlan5000 vni 5000 ### CUSTOMB ### set vrf name customB protocols bgp address-family ipv4-unicast redistribute connected set vrf name customB protocols bgp address-family l2vpn-evpn advertise ipv4 unicast set vrf name customB protocols bgp system-as 65003 set vrf name customB protocols bgp address-family ipv4-unicast network 0.0.0.0/0 set vrf name customB table 5000 set vrf name customB vni 5000 set interfaces bridge br5000 address 10.0.0.1/16 set interfaces bridge br5000 description customB set interfaces bridge br5000 member interface vxlan5000 set interfaces bridge br5000 vrf customB set interfaces vxlan vxlan5002 mtu 1550 set interfaces vxlan vxlan5002 parameters nolearning set interfaces vxlan vxlan5002 port 4789 set interfaces vxlan vxlan5002 source-address 10.2.2.2 set interfaces vxlan vxlan5002 vni 5002 ### TENANTC ### set vrf name tenantC protocols bgp address-family ipv4-unicast redistribute connected set vrf name tenantC protocols bgp address-family l2vpn-evpn advertise ipv4 unicast set vrf name tenantC protocols bgp system-as 65003 set vrf name tenantC protocols bgp address-family ipv4-unicast network 0.0.0.0/0 set vrf name tenantC table 5002 set vrf name tenantC vni 5002 set interfaces bridge br5002 address 10.0.0.1/16 set interfaces bridge br5002 description tenantC set interfaces bridge br5002 member interface vxlan5002 set interfaces bridge br5002 vrf tenantC
this seems not working because I announce twice (in each VRF) the default route. What happens with this, is that when I setup customB, I'm able to reach its bridge br5000 with address: 10.0.0.1.
However, once I configure the tenantC, I'm able to reach its bridge br5002 with address: 10.0.0.1, but the on customB I'm no longer able to reach the customB vRF bridge.
When I configure the tenantC, I see in on of the Proxmox servers that the default route moved to the VRF tenant C route table, and no longer is in the CustomB route table.
This might be expected, and I can probably making some wrong configuration. Any help I will appreciate.
Thank you.
tagging also @spirit and @forsytheda .
Thank oy for the help.
Hello again,Hello, I'd like to edit this, mentioning that if both VMs are in the same proxmox server, I can reach both bridges on each zone. And the two default routes advertised in each VRF through proxmox are also visible in the routing table of each VRF on Proxmox server.
Thank you
What do you want to do exactly with your vyos router ? Because you can't route from outside to 1 vrf with 10.0.0.1 and another vrf 10.0.0.1. (they are no magic session tracking).Hello, I'm trying setup a vyos router with proxmox and SDN, to implement the multi-tenancy concept. Besides adding my vyos router to the peers on SDN, this is my configuration on the vyos router for two tenants: customB and tenantC:
Code:set interfaces ethernet eth2 address 10.2.2.2/24 set interfaces ethernet eth2 description 'to proxmox VTEPs' set interfaces ethernet eth2 mtu 1600 set protocols bgp address-family l2vpn-evpn advertise ipv4 unicast set protocols bgp address-family l2vpn-evpn advertise-all-vni set protocols bgp system-as 65003 set protocols bgp neighbor 10.2.2.4 peer-group ibgp set protocols bgp neighbor 10.2.2.6 peer-group ibgp set protocols bgp neighbor 10.2.2.7 peer-group ibgp set protocols bgp parameters log-neighbor-changes set protocols bgp peer-group ibgp address-family l2vpn-evpn set protocols bgp peer-group ibgp remote-as 65003 set protocols bgp peer-group ibgp update-source eth2 set interfaces vxlan vxlan5000 mtu 1550 set interfaces vxlan vxlan5000 parameters nolearning set interfaces vxlan vxlan5000 port 4789 set interfaces vxlan vxlan5000 source-address 10.2.2.2 set interfaces vxlan vxlan5000 vni 5000 ### CUSTOMB ### set vrf name customB protocols bgp address-family ipv4-unicast redistribute connected set vrf name customB protocols bgp address-family l2vpn-evpn advertise ipv4 unicast set vrf name customB protocols bgp system-as 65003 set vrf name customB protocols bgp address-family ipv4-unicast network 0.0.0.0/0 set vrf name customB table 5000 set vrf name customB vni 5000 set interfaces bridge br5000 address 10.0.0.1/16 set interfaces bridge br5000 description customB set interfaces bridge br5000 member interface vxlan5000 set interfaces bridge br5000 vrf customB set interfaces vxlan vxlan5002 mtu 1550 set interfaces vxlan vxlan5002 parameters nolearning set interfaces vxlan vxlan5002 port 4789 set interfaces vxlan vxlan5002 source-address 10.2.2.2 set interfaces vxlan vxlan5002 vni 5002 ### TENANTC ### set vrf name tenantC protocols bgp address-family ipv4-unicast redistribute connected set vrf name tenantC protocols bgp address-family l2vpn-evpn advertise ipv4 unicast set vrf name tenantC protocols bgp system-as 65003 set vrf name tenantC protocols bgp address-family ipv4-unicast network 0.0.0.0/0 set vrf name tenantC table 5002 set vrf name tenantC vni 5002 set interfaces bridge br5002 address 10.0.0.1/16 set interfaces bridge br5002 description tenantC set interfaces bridge br5002 member interface vxlan5002 set interfaces bridge br5002 vrf tenantC
this seems not working because I announce twice (in each VRF) the default route. What happens with this, is that when I setup customB, I'm able to reach its bridge br5000 with address: 10.0.0.1.
However, once I configure the tenantC, I'm able to reach its bridge br5002 with address: 10.0.0.1, but the on customB I'm no longer able to reach the customB vRF bridge.
When I configure the tenantC, I see in on of the Proxmox servers that the default route moved to the VRF tenant C route table, and no longer is in the CustomB route table.
This might be expected, and I can probably making some wrong configuration. Any help I will appreciate.
Thank you.
tagging also @spirit and @forsytheda .
Thank oy for the help.