{"action":"created","issue":{"url":"https://api.github.com/repos/OpenNebula/one/issues/2161","repository_url":"https://api.github.com/repos/OpenNebula/one","labels_url":"https://api.github.com/repos/OpenNebula/one/issues/2161/labels{/name}","comments_url":"https://api.github.com/repos/OpenNebula/one/issues/2161/comments","events_url":"https://api.github.com/repos/OpenNebula/one/issues/2161/events","html_url":"https://github.com/OpenNebula/one/issues/2161","id":330265960,"node_id":"MDU6SXNzdWUzMzAyNjU5NjA=","number":2161,"title":"Support for VXLAN with BGP EVPN  / MP-BGP","user":{"login":"smangelkramer","id":18002552,"node_id":"MDQ6VXNlcjE4MDAyNTUy","avatar_url":"https://avatars3.githubusercontent.com/u/18002552?v=4","gravatar_id":"","url":"https://api.github.com/users/smangelkramer","html_url":"https://github.com/smangelkramer","followers_url":"https://api.github.com/users/smangelkramer/followers","following_url":"https://api.github.com/users/smangelkramer/following{/other_user}","gists_url":"https://api.github.com/users/smangelkramer/gists{/gist_id}","starred_url":"https://api.github.com/users/smangelkramer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smangelkramer/subscriptions","organizations_url":"https://api.github.com/users/smangelkramer/orgs","repos_url":"https://api.github.com/users/smangelkramer/repos","events_url":"https://api.github.com/users/smangelkramer/events{/privacy}","received_events_url":"https://api.github.com/users/smangelkramer/received_events","type":"User","site_admin":false},"labels":[{"id":755328299,"node_id":"MDU6TGFiZWw3NTUzMjgyOTk=","url":"https://api.github.com/repos/OpenNebula/one/labels/Category:%20Drivers%20-%20Network","name":"Category: Drivers - Network","color":"1d76db","default":false},{"id":755323253,"node_id":"MDU6TGFiZWw3NTUzMjMyNTM=","url":"https://api.github.com/repos/OpenNebula/one/labels/Community","name":"Community","color":"006b75","default":false},{"id":760093956,"node_id":"MDU6TGFiZWw3NjAwOTM5NTY=","url":"https://api.github.com/repos/OpenNebula/one/labels/Priority:%20High","name":"Priority: High","color":"d65cbb","default":false},{"id":755931929,"node_id":"MDU6TGFiZWw3NTU5MzE5Mjk=","url":"https://api.github.com/repos/OpenNebula/one/labels/Status:%20Accepted","name":"Status: Accepted","color":"d4c5f9","default":false},{"id":755324393,"node_id":"MDU6TGFiZWw3NTUzMjQzOTM=","url":"https://api.github.com/repos/OpenNebula/one/labels/Type:%20Feature","name":"Type: Feature","color":"0e8a16","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/OpenNebula/one/milestones/21","html_url":"https://github.com/OpenNebula/one/milestone/21","labels_url":"https://api.github.com/repos/OpenNebula/one/milestones/21/labels","id":3619786,"node_id":"MDk6TWlsZXN0b25lMzYxOTc4Ng==","number":21,"title":"Release 5.6.2","description":"","creator":{"login":"rsmontero","id":665074,"node_id":"MDQ6VXNlcjY2NTA3NA==","avatar_url":"https://avatars2.githubusercontent.com/u/665074?v=4","gravatar_id":"","url":"https://api.github.com/users/rsmontero","html_url":"https://github.com/rsmontero","followers_url":"https://api.github.com/users/rsmontero/followers","following_url":"https://api.github.com/users/rsmontero/following{/other_user}","gists_url":"https://api.github.com/users/rsmontero/gists{/gist_id}","starred_url":"https://api.github.com/users/rsmontero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsmontero/subscriptions","organizations_url":"https://api.github.com/users/rsmontero/orgs","repos_url":"https://api.github.com/users/rsmontero/repos","events_url":"https://api.github.com/users/rsmontero/events{/privacy}","received_events_url":"https://api.github.com/users/rsmontero/received_events","type":"User","site_admin":false},"open_issues":34,"closed_issues":11,"state":"open","created_at":"2018-09-04T08:39:09Z","updated_at":"2018-10-09T16:36:02Z","due_on":"2018-10-04T07:00:00Z","closed_at":null},"comments":18,"created_at":"2018-06-07T13:12:15Z","updated_at":"2018-10-10T09:09:06Z","closed_at":null,"author_association":"NONE","body":"<!--////////////////////////////////////////////-->\r\n<!-- COMPLETE ONLY ONE SECTION                  -->\r\n<!-- BUG REPORT *OR* ENHANCEMENT REQUEST        -->\r\n<!--////////////////////////////////////////////-->\r\n\r\n<!--////////////////////////////////////////////-->\r\n<!-- COMPLETE THIS SECTION FOR BUG REPORTS      -->\r\n<!--////////////////////////////////////////////-->\r\n\r\n# Bug Report\r\n## Version of OpenNebula\r\n<!--Mark the relevant versions affected with [X] -->\r\n- [ ] 5.2.2\r\n- [ ] 5.4.0\r\n- [ ] 5.4.1\r\n- [ ] 5.4.2\r\n- [ ] 5.4.3\r\n- [ ] 5.4.4\r\n- [ ] 5.4.5\r\n- [ ] 5.4.6\r\n- [ ] 5.4.7\r\n- [ ] 5.4.8\r\n- [ ] 5.4.9\r\n- [ ] 5.4.10\r\n- [ ] 5.4.11\r\n- [ ] Development build\r\n\r\n## Component\r\n<!-- Mark the relevant versions affected with [X] -->\r\n- [ ] Authorization (LDAP, x509 certs...)\r\n- [ ] Command Line Interface (CLI)\r\n- [ ] Contextualization\r\n- [ ] Documentation\r\n- [ ] Federation and HA\r\n- [ ] Host, Clusters and Monitorization\r\n- [ ] KVM\r\n- [ ] Networking\r\n- [ ] Orchestration (OpenNebula Flow)\r\n- [ ] Packages\r\n- [ ] Scheduler\r\n- [ ] Storage & Images\r\n- [ ] Sunstone\r\n- [ ] Upgrades\r\n- [ ] User, Groups, VDCs and ACL\r\n- [ ] vCenter\r\n\r\n## Description\r\n<!-- Brief description of your problem -->\r\n\r\n### Expected Behavior\r\n\r\n### Actual Behavior\r\n\r\n## How to reproduce\r\n<!-- Steps to reproduce the issue -->\r\n\r\n<!--////////////////////////////////////////////-->\r\n<!-- COMPLETE THIS SECTION FOR FEATURE REQUESTS -->\r\n<!--////////////////////////////////////////////-->\r\n\r\n# Enhancement Request\r\n## Description\r\n\r\nFrom my point of view a modern datacenter fabric has to scale\r\nand if based on VXLAN a control plane is one of the secrets to\r\ngain scalability and manageability for a resilent and performant\r\nmulti-tenant datacenter and/or cloud network.\r\n\r\nTherefore i did some PoC for adding VXLAN with BGP-EVPN support to OpenNebula.\r\nFor sure, OpenNebula is the ideal platform to extend and integrate with SDN and other tools (pre,post,clean).\r\n\r\nMy PoC (now also running in a medium sized cloud environment / datacenter is based on\r\n\r\n- VXLAN  (RFC7348)\r\n- BGP4 (RFC4271)\r\n- BGP MPLS-Based Ethernet-VPN (RFC 7432)\r\n- draft-ietf-bess-evpn-overlay-08 \r\n- MP-BGP (RFC4760)\r\n\r\nThe advantages over VXLAN with Multicast are:\r\n\r\n- traffic engineering\r\n- more scalability\r\n- better manageability\r\n- easier to handle than IP-Multicast in a large scale network\r\n\r\nIn my setup BGP EVPN and the whole VXLAN is based on classic Linux bridging (one Bridge per VNI)\r\nand Quagga (Cumulusnetworks) inside a Docker container on the VMM hosts.\r\n\r\nOn the (mostly redundant) OpenNebula frontends there are BGP Route Reflectors installed (also dockerized Quagga).\r\n\r\nExample for the RR:\r\n\r\n```\r\ndocker pull cumulusnetworks/quagga\r\ndocker run -t -d --net=host --privileged --name BGP-EVPN-RR1 cumulusnetworks/quagga:latest\r\n```\r\n\r\nThe RR BGP config part:\r\n\r\n```\r\nrouter bgp 64512\r\n  bgp router-id 172.24.201.8\r\n  bgp cluster-id 172.24.201.8\r\n  bgp log-neighbor-changes\r\n  no bgp default ipv4-unicast\r\n  neighbor onefabric peer-group\r\n  neighbor onefabric remote-as 64512\r\n  neighbor onefabric capability extended-nexthop\r\n  neighbor onefabric update-source 172.24.201.8\r\n  bgp listen range 172.24.201.0/24 peer-group onefabric\r\n  !\r\n  address-family evpn\r\n   neighbor onefabric activate\r\n   neighbor onefabric route-reflector-client\r\n  exit-address-family\r\n  !\r\n```\r\n\r\nThe VTEP BGP config part:\r\n\r\n```\r\nrouter bgp 64512\r\n bgp router-id 172.24.201.102\r\n no bgp default ipv4-unicast\r\n neighbor onefabric peer-group\r\n neighbor onefabric remote-as 64512\r\n neighbor onefabric update-source vmnet0\r\n neighbor onefabric capability extended-nexthop\r\n neighbor 172.24.201.8 peer-group onefabric\r\n !\r\n address-family evpn\r\n  neighbor onefabric activate\r\n  advertise-all-vni\r\n exit-address-family\r\n!\r\n```\r\n\r\nIn the last step the bridges and the VXLAN interfaces has to be created:\r\n\r\n```\r\nip link add vxlan${vni} type vxlan id ${vni} dstport 4789 local $ip-of-vtep nolearning\r\nbrctl addbr vxlan-br-${vni}\r\nbrctl addif vxlan-br-${vni} vxlan${vni}\r\nbrctl stp vxlan-br-${vni} off\r\nip link set up dev vxlan-br-${vni}\r\nip link set up dev vxlan${vni}\r\n```\r\n\r\nNow you`re able to use these bridges as standard \"Bridged network\" inside OpenNebula,\r\nand VXLAN with BGP-EVPN. Of course you had to take care about the MTU for the vNIC (1450 Bytes for example) cause of the VXLAN header and so on. But this works.\r\n\r\nIt would be really nice to integrate (and optimize) this kind of networking model into OpenNebula.\r\nFor example to create the networks directly out of OpenNebula.\r\nTherefore new `vnm` drivers had to be created and the UI (Sunstone) has to be changed for the new values like VNI, bridge-name, VTEP-IP.\r\n\r\n## Use case\r\n<!-- How are you going to use this new feature? -->\r\n<!-- Why do you need it?                        -->\r\n\r\n- scalable multi-tenancy datacenter and cloud-networks\r\n- better manageability of large networks\r\n- micro segmentation \r\n- SDN\r\n- Layer2 multi-tenancy\r\n\r\nFor the moment it`s just an idea. And if i were able to develop i`ll do it.\r\nIf you need any more informations, access to my lab, etc. - let me know.\r\n\r\n## Interface Changes\r\n<!-- Describe any changed to current interfaces -->\r\n<!-- incluing Sunstone, CLI or/and API          --> \r\n\r\nSunstone:\r\n\r\n- Wizzard for the new network model\r\n- VNM drivers\r\n\r\n<!--////////////////////////////////////////////-->\r\n<!-- THIS SECTION IS FOR THE DEVELOPMENT TEAM   -->\r\n<!-- BOTH FOR BUGS AND ENHANCEMENT REQUESTS     -->\r\n<!-- PROGRESS WILL BE REFLECTED HERE            -->\r\n<!--////////////////////////////////////////////-->\r\n\r\n# Progress Status\r\n- [ ] Branch created \r\n- [ ] Code committed to development branch\r\n- [ ] Testing - QA\r\n- [ ] Documentation \r\n- [ ] Release notes - resolved issues, compatibility, known issues\r\n- [ ] Code committed to upstream release/hotfix branches\r\n- [ ] Documentation committed to upstream release/hotfix branches\r\n"},"comment":{"url":"https://api.github.com/repos/OpenNebula/one/issues/comments/428496927","html_url":"https://github.com/OpenNebula/one/issues/2161#issuecomment-428496927","issue_url":"https://api.github.com/repos/OpenNebula/one/issues/2161","id":428496927,"node_id":"MDEyOklzc3VlQ29tbWVudDQyODQ5NjkyNw==","user":{"login":"smangelkramer","id":18002552,"node_id":"MDQ6VXNlcjE4MDAyNTUy","avatar_url":"https://avatars3.githubusercontent.com/u/18002552?v=4","gravatar_id":"","url":"https://api.github.com/users/smangelkramer","html_url":"https://github.com/smangelkramer","followers_url":"https://api.github.com/users/smangelkramer/followers","following_url":"https://api.github.com/users/smangelkramer/following{/other_user}","gists_url":"https://api.github.com/users/smangelkramer/gists{/gist_id}","starred_url":"https://api.github.com/users/smangelkramer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smangelkramer/subscriptions","organizations_url":"https://api.github.com/users/smangelkramer/orgs","repos_url":"https://api.github.com/users/smangelkramer/repos","events_url":"https://api.github.com/users/smangelkramer/events{/privacy}","received_events_url":"https://api.github.com/users/smangelkramer/received_events","type":"User","site_admin":false},"created_at":"2018-10-10T09:09:06Z","updated_at":"2018-10-10T09:09:06Z","author_association":"NONE","body":"@rsmontero +1\r\n\r\nWhat about to define a \"best practice\" or \"recommended\" implementation of VXLAN with BGP-EVPN describing the whole ecosystem with it`s components like: OpenNebula, KVM hosts (and the BGP / Networking Stack on this hosts)? A part of the OpenNebula documentation?\r\n\r\nThe northbound BGP part could be let open - just mention the used standards, rfc's,...\r\n\r\nMy first PoC is also based on the stock VXLAN drivers. In another PoC (running at a customer) the Bridges and VXLAN VNIs, VLANs was created by hand.\r\n\r\n\r\n"}}
{"actor":{"display_login":"smangelkramer"}}