weizhouapache commented on code in PR #444:
URL: 
https://github.com/apache/cloudstack-documentation/pull/444#discussion_r1792937353


##########
source/plugins/vxlan.rst:
##########
@@ -328,70 +234,134 @@ Since VXLAN uses UDP packet to forward encapsulated the 
L2 frames,
 UDP/8472 port must be opened.
 
 
-Configure in RHEL or CentOS
-'''''''''''''''''''''''''''
-
-RHEL and CentOS use iptables for firewalling the system, you can open
-extra ports by executing the following iptable commands:
-
-::
-
-   $ sudo iptables -I INPUT -p udp -m udp --dport 8472 -j ACCEPT
-
-
-These iptable settings are not persistent accross reboots, we have to
-save them first.
+Make sure that your firewall (firewalld, ufw, ...) allows UDP packets on port 
8472, as an example:
 
 ::
 
-   $ sudo iptables-save > /etc/sysconfig/iptables
-
-
-With this configuration you should be able to restart the Network,
-although a reboot is recommended to see if everything works properly.
-
-::
-
-   $ sudo service network restart
-   $ sudo reboot
+   $ sudo firewall-cmd --zone=public --permanent --add-port=8472/udp
+   $ sudo ufw allow proto udp from any to any port 8472
 
 
-.. warning::
-   Make sure you have an alternative way like IPMI or ILO to reach the machine
-   in case you made a configuration error and the Network stops functioning!
 
+VXLAN using EVPN
+---------------------
+Using VXLAN with BGP+EVPN as underlay is more complex to set up, but does 
allow for more scaling and provides much more flexibility.
 
-Configure in Ubuntu
-'''''''''''''''''''
+This documentation can not cover all elements of deploying BGP+EVPN in your 
environment.
 
-The default firewall under Ubuntu is UFW (Uncomplicated FireWall), which
-is a Python wrapper around iptables.
+It is recommend to read `this blogpost 
<https://vincent.bernat.ch/en/blog/2017-vxlan-bgp-evpn>`_ before you continue. 
 
-To open the required ports, execute the following commands:
+The main items for using EVPN:
 
-::
+- BGP Routing Daemon on the hypervisor
+- No LACP/Bonding will be used
+- Modified script is required to use EVPN instead of Multicast
 
-   $ sudo ufw allow proto udp from any to any port 8472
+EVPN Bash script
+~~~~~~~~~~~~~~~~
+The default 'modifyvxlan.sh' script this is installed by CloudStack uses 
Multicast for VXLAN.
 
-.. note::
-   By default UFW is not enabled on Ubuntu. Executing these commands with the
-   firewall disabled does not enable the firewall.
+A different version of this script is available which will use EVPN instead of 
Multicast and ships with CloudStack by default.
 
-With this configuration you should be able to restart the Network,
-although a reboot is recommended to see if everything works properly.
+In order to use this script create a symlink on **each** KVM hypervisor
 
 ::
 
-   $ sudo service networking restart
-   $ sudo reboot
-
-.. warning::
-   Make sure you have an alternative way like IPMI or ILO to reach the machine
-   in case you made a configuration error and the Network stops functioning!
-
+  $ ln -s /usr/share/modifyvxlan.sh 
/usr/share/cloudstack-common/scripts/vm/network/vnet/modifyvxlan-evpn.sh
+
+This script is also available on `download.cloudstack.org 
<https://download.cloudstack.org/tools/scripts/vxlan/modifyvxlan.sh>`_.

Review Comment:
   once the PR https://github.com/apache/cloudstack/pull/9778  is merged, user 
can download from the github repository



##########
source/plugins/vxlan.rst:
##########
@@ -328,70 +234,134 @@ Since VXLAN uses UDP packet to forward encapsulated the 
L2 frames,
 UDP/8472 port must be opened.
 
 
-Configure in RHEL or CentOS
-'''''''''''''''''''''''''''
-
-RHEL and CentOS use iptables for firewalling the system, you can open
-extra ports by executing the following iptable commands:
-
-::
-
-   $ sudo iptables -I INPUT -p udp -m udp --dport 8472 -j ACCEPT
-
-
-These iptable settings are not persistent accross reboots, we have to
-save them first.
+Make sure that your firewall (firewalld, ufw, ...) allows UDP packets on port 
8472, as an example:
 
 ::
 
-   $ sudo iptables-save > /etc/sysconfig/iptables
-
-
-With this configuration you should be able to restart the Network,
-although a reboot is recommended to see if everything works properly.
-
-::
-
-   $ sudo service network restart
-   $ sudo reboot
+   $ sudo firewall-cmd --zone=public --permanent --add-port=8472/udp
+   $ sudo ufw allow proto udp from any to any port 8472
 
 
-.. warning::
-   Make sure you have an alternative way like IPMI or ILO to reach the machine
-   in case you made a configuration error and the Network stops functioning!
 
+VXLAN using EVPN
+---------------------
+Using VXLAN with BGP+EVPN as underlay is more complex to set up, but does 
allow for more scaling and provides much more flexibility.
 
-Configure in Ubuntu
-'''''''''''''''''''
+This documentation can not cover all elements of deploying BGP+EVPN in your 
environment.
 
-The default firewall under Ubuntu is UFW (Uncomplicated FireWall), which
-is a Python wrapper around iptables.
+It is recommend to read `this blogpost 
<https://vincent.bernat.ch/en/blog/2017-vxlan-bgp-evpn>`_ before you continue. 
 
-To open the required ports, execute the following commands:
+The main items for using EVPN:
 
-::
+- BGP Routing Daemon on the hypervisor
+- No LACP/Bonding will be used
+- Modified script is required to use EVPN instead of Multicast
 
-   $ sudo ufw allow proto udp from any to any port 8472
+EVPN Bash script
+~~~~~~~~~~~~~~~~
+The default 'modifyvxlan.sh' script this is installed by CloudStack uses 
Multicast for VXLAN.
 
-.. note::
-   By default UFW is not enabled on Ubuntu. Executing these commands with the
-   firewall disabled does not enable the firewall.
+A different version of this script is available which will use EVPN instead of 
Multicast and ships with CloudStack by default.
 
-With this configuration you should be able to restart the Network,
-although a reboot is recommended to see if everything works properly.
+In order to use this script create a symlink on **each** KVM hypervisor
 
 ::
 
-   $ sudo service networking restart
-   $ sudo reboot
-
-.. warning::
-   Make sure you have an alternative way like IPMI or ILO to reach the machine
-   in case you made a configuration error and the Network stops functioning!
-
+  $ ln -s /usr/share/modifyvxlan.sh 
/usr/share/cloudstack-common/scripts/vm/network/vnet/modifyvxlan-evpn.sh
+
+This script is also available on `download.cloudstack.org 
<https://download.cloudstack.org/tools/scripts/vxlan/modifyvxlan.sh>`_.
+
+View the contents of the script to understand it's inner workings, some key 
items:
+
+- VXLAN (vtep) devices are created using 'nolearning', disabling the use of 
multicast
+- UDP port 4789 (RFC 7348)

Review Comment:
   is it needed to add firewall rules for port 4789 ?



##########
source/plugins/vxlan.rst:
##########
@@ -328,70 +234,134 @@ Since VXLAN uses UDP packet to forward encapsulated the 
L2 frames,
 UDP/8472 port must be opened.
 
 
-Configure in RHEL or CentOS
-'''''''''''''''''''''''''''
-
-RHEL and CentOS use iptables for firewalling the system, you can open
-extra ports by executing the following iptable commands:
-
-::
-
-   $ sudo iptables -I INPUT -p udp -m udp --dport 8472 -j ACCEPT
-
-
-These iptable settings are not persistent accross reboots, we have to
-save them first.
+Make sure that your firewall (firewalld, ufw, ...) allows UDP packets on port 
8472, as an example:
 
 ::
 
-   $ sudo iptables-save > /etc/sysconfig/iptables
-
-
-With this configuration you should be able to restart the Network,
-although a reboot is recommended to see if everything works properly.
-
-::
-
-   $ sudo service network restart
-   $ sudo reboot
+   $ sudo firewall-cmd --zone=public --permanent --add-port=8472/udp
+   $ sudo ufw allow proto udp from any to any port 8472
 
 
-.. warning::
-   Make sure you have an alternative way like IPMI or ILO to reach the machine
-   in case you made a configuration error and the Network stops functioning!
 
+VXLAN using EVPN
+---------------------
+Using VXLAN with BGP+EVPN as underlay is more complex to set up, but does 
allow for more scaling and provides much more flexibility.
 
-Configure in Ubuntu
-'''''''''''''''''''
+This documentation can not cover all elements of deploying BGP+EVPN in your 
environment.
 
-The default firewall under Ubuntu is UFW (Uncomplicated FireWall), which
-is a Python wrapper around iptables.
+It is recommend to read `this blogpost 
<https://vincent.bernat.ch/en/blog/2017-vxlan-bgp-evpn>`_ before you continue. 
 
-To open the required ports, execute the following commands:
+The main items for using EVPN:
 
-::
+- BGP Routing Daemon on the hypervisor
+- No LACP/Bonding will be used
+- Modified script is required to use EVPN instead of Multicast
 
-   $ sudo ufw allow proto udp from any to any port 8472
+EVPN Bash script
+~~~~~~~~~~~~~~~~
+The default 'modifyvxlan.sh' script this is installed by CloudStack uses 
Multicast for VXLAN.
 
-.. note::
-   By default UFW is not enabled on Ubuntu. Executing these commands with the
-   firewall disabled does not enable the firewall.
+A different version of this script is available which will use EVPN instead of 
Multicast and ships with CloudStack by default.
 
-With this configuration you should be able to restart the Network,
-although a reboot is recommended to see if everything works properly.
+In order to use this script create a symlink on **each** KVM hypervisor
 
 ::
 
-   $ sudo service networking restart
-   $ sudo reboot
-
-.. warning::
-   Make sure you have an alternative way like IPMI or ILO to reach the machine
-   in case you made a configuration error and the Network stops functioning!
-
+  $ ln -s /usr/share/modifyvxlan.sh 
/usr/share/cloudstack-common/scripts/vm/network/vnet/modifyvxlan-evpn.sh

Review Comment:
   
   should it be 
   ```
   $ ln -s 
/usr/share/cloudstack-common/scripts/vm/network/vnet/modifyvxlan-evpn.sh  
/usr/share/cloudstack-common/scripts/vm/network/vnet/modifyvxlan.sh
   ``` 
   ?
   
   



##########
source/plugins/vxlan.rst:
##########
@@ -328,70 +234,134 @@ Since VXLAN uses UDP packet to forward encapsulated the 
L2 frames,
 UDP/8472 port must be opened.
 
 
-Configure in RHEL or CentOS
-'''''''''''''''''''''''''''
-
-RHEL and CentOS use iptables for firewalling the system, you can open
-extra ports by executing the following iptable commands:
-
-::
-
-   $ sudo iptables -I INPUT -p udp -m udp --dport 8472 -j ACCEPT
-
-
-These iptable settings are not persistent accross reboots, we have to
-save them first.
+Make sure that your firewall (firewalld, ufw, ...) allows UDP packets on port 
8472, as an example:
 
 ::
 
-   $ sudo iptables-save > /etc/sysconfig/iptables
-
-
-With this configuration you should be able to restart the Network,
-although a reboot is recommended to see if everything works properly.
-
-::
-
-   $ sudo service network restart
-   $ sudo reboot
+   $ sudo firewall-cmd --zone=public --permanent --add-port=8472/udp
+   $ sudo ufw allow proto udp from any to any port 8472
 
 
-.. warning::
-   Make sure you have an alternative way like IPMI or ILO to reach the machine
-   in case you made a configuration error and the Network stops functioning!
 
+VXLAN using EVPN
+---------------------
+Using VXLAN with BGP+EVPN as underlay is more complex to set up, but does 
allow for more scaling and provides much more flexibility.
 
-Configure in Ubuntu
-'''''''''''''''''''
+This documentation can not cover all elements of deploying BGP+EVPN in your 
environment.
 
-The default firewall under Ubuntu is UFW (Uncomplicated FireWall), which
-is a Python wrapper around iptables.
+It is recommend to read `this blogpost 
<https://vincent.bernat.ch/en/blog/2017-vxlan-bgp-evpn>`_ before you continue. 
 
-To open the required ports, execute the following commands:
+The main items for using EVPN:
 
-::
+- BGP Routing Daemon on the hypervisor
+- No LACP/Bonding will be used
+- Modified script is required to use EVPN instead of Multicast
 
-   $ sudo ufw allow proto udp from any to any port 8472
+EVPN Bash script
+~~~~~~~~~~~~~~~~
+The default 'modifyvxlan.sh' script this is installed by CloudStack uses 
Multicast for VXLAN.
 
-.. note::
-   By default UFW is not enabled on Ubuntu. Executing these commands with the
-   firewall disabled does not enable the firewall.
+A different version of this script is available which will use EVPN instead of 
Multicast and ships with CloudStack by default.
 
-With this configuration you should be able to restart the Network,
-although a reboot is recommended to see if everything works properly.
+In order to use this script create a symlink on **each** KVM hypervisor
 
 ::
 
-   $ sudo service networking restart
-   $ sudo reboot
-
-.. warning::
-   Make sure you have an alternative way like IPMI or ILO to reach the machine
-   in case you made a configuration error and the Network stops functioning!
-
+  $ ln -s /usr/share/modifyvxlan.sh 
/usr/share/cloudstack-common/scripts/vm/network/vnet/modifyvxlan-evpn.sh
+
+This script is also available on `download.cloudstack.org 
<https://download.cloudstack.org/tools/scripts/vxlan/modifyvxlan.sh>`_.
+
+View the contents of the script to understand it's inner workings, some key 
items:
+
+- VXLAN (vtep) devices are created using 'nolearning', disabling the use of 
multicast
+- UDP port 4789 (RFC 7348)
+- IPv4 is used as underlay
+- It assumes an IPv4 (/32) address is configured on the loopback interface and 
will be the VTEP source
+
+BGP routing daemon
+~~~~~~~~~~~~~~~~~~~
+Using `FRRouting <https://frrouting.org/>`_ as routing daemon is recommended, 
but not required. In general FRR is a BGP routing daemon with extensive EVPN 
support.
+
+Refer to the FRRouting documentation on how to install the proper packages and 
get started with FRR.
+
+A minimal configuration for FRR could look like this:
+
+.. code-block:: bash
+
+   frr defaults traditional
+   hostname hypervisor01
+   log syslog informational
+   no ipv6 forwarding
+   service integrated-vtysh-config
+   !
+   interface ens2f0np0
+    no ipv6 nd suppress-ra
+   !
+   interface ens2f1np1
+    no ipv6 nd suppress-ra
+   !
+   interface lo
+    ip address 10.255.192.12/32
+    ipv6 address 2001:db8:100::1/128
+   !
+   router bgp 4200800212
+    bgp router-id 10.255.192.12
+    no bgp ebgp-requires-policy
+    no bgp default ipv4-unicast
+    no bgp network import-check
+    neighbor uplinks peer-group
+    neighbor uplinks remote-as external
+    neighbor uplinks ebgp-multihop 255
+    neighbor ens2f0np0 interface peer-group uplinks
+    neighbor ens2f1np1 interface peer-group uplinks
+    !
+    address-family ipv4 unicast
+     network 10.255.192.12/32
+     neighbor uplinks activate
+     neighbor uplinks next-hop-self
+     neighbor uplinks soft-reconfiguration inbound
+     neighbor uplinks route-map upstream-v4-in in
+     neighbor uplinks route-map upstream-v4-out out
+    exit-address-family
+    !
+    address-family ipv6 unicast
+     network 2001:db8:100::1/128
+     neighbor uplinks activate
+     neighbor uplinks soft-reconfiguration inbound
+     neighbor uplinks route-map upstream-v6-in in
+     neighbor uplinks route-map upstream-v6-out out
+    exit-address-family
+    !
+    address-family l2vpn evpn
+     neighbor uplinks activate
+     advertise-all-vni
+     advertise-svi-ip
+    exit-address-family
+
+
+This configuration will:
+
+- Establish two BGP sessions using BGP Unnumbered over the two uplinks 
(ens2f0np0 and ens2f1np1)
+- Twese BGP sessions are usually established with two Top-of-Rack (ToR) 
switches/routers which are BGP+EVPN capable

Review Comment:
   `Twese` -> `These` ?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@cloudstack.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to