device manager should configure EVPN if needed.

Bug #1395944 reported by Sachin Bansal
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
Trunk
Fix Committed
High
Suresh Balineni

Bug Description

Seel below for working e-vpn configuration on MX...

-Nischal

Begin forwarded message:

From: Chhandak Mukherjee <email address hidden>
Subject: Re: tunnel encapsulation type for VXLAN
Date: November 13, 2014 at 9:49:52 AM PST
To: Vasu Venkatraman <email address hidden>, Nischal Sheth <email address hidden>
Cc: Wen Lin <email address hidden>, Sudha Madhavi <email address hidden>, Ryan Bickhart <email address hidden>, Nagabhushana R <email address hidden>, Manish Singh <email address hidden>, Sreelakshmi Sarva <email address hidden>

Hi,

Ping between contrail VM and BMS via EVPN VXLAN is successful.
Used the image Vasu has provided[jinstall-ppc-14.1I20141113_0813_vvenkatraman-domestic-signed.tgz].
Details of configuration used and topology can be found below. Please provide me your input.

Thanks and Regards,
Chhandak

Output
————---

Contrail Introspect
——————————-----------
http://nodei37.englab.juniper.net:8085/Snh_Layer2RouteReq?x=1
http://nodei38.englab.juniper.net:8085/Snh_Layer2RouteReq?x=1

root@walsh# run show evpn instance evpn-vxlan
                            Intfs IRB intfs MH MAC addresses
Instance Total Up Total Up Nbrs ESIs Local Remote
evpn-vxlan 1 1 1 1 2 0 2 2

[edit]
root@walsh# run show evpn database
Instance: evpn-vxlan
VLAN VNI MAC address Active source Timestamp IP address
      2222 00:23:9c:f1:98:aa irb.0 Oct 13 06:21:35 1.1.1.250
      2222 00:25:90:e7:81:dd ge-1/0/0.0 Oct 13 08:10:25 >>>>>>>>>>>>>Route for BMS
      2222 02:9b:65:3a:5a:fd 10.204.217.149 Oct 13 02:14:51 1.1.1.3>>>>>VM route from Contrail
      2222 02:9e:9f:62:5b:fe 10.204.217.150 Oct 13 02:14:54 1.1.1.2>>>>>VM route from Contrail

[edit]
root@walsh#

root@walsh# run show route table evpn-vxlan.evpn.0

evpn-vxlan.evpn.0: 8 destinations, 12 routes (8 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

2:64512:12345::2222::00:23:9c:f1:98:aa/304
                   *[EVPN/170] 01:52:51
                      Indirect
2:64512:12345::2222::00:25:90:e7:81:dd/304
                   *[EVPN/170] 00:04:01
                      Indirect
2:64512:12345::2222::00:23:9c:f1:98:aa::1.1.1.250/304
                   *[EVPN/170] 01:52:51
                      Indirect
2:10.204.217.149:1::2222::02:9b:65:3a:5a:fd::1.1.1.3/304
                   *[BGP/170] 05:59:35, localpref 100, from 10.204.217.146
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32774
                    [BGP/170] 05:59:35, localpref 100, from 10.204.217.147
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32774
2:10.204.217.150:1::2222::02:9e:9f:62:5b:fe::1.1.1.2/304
                   *[BGP/170] 05:59:33, localpref 100, from 10.204.217.146
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32773
                    [BGP/170] 05:59:33, localpref 100, from 10.204.217.147
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32773
3:64512:12345::2222::10.204.217.244/304

                   *[EVPN/170] 06:10:42

root@walsh# run show route table bgp.evpn.0

bgp.evpn.0: 4 destinations, 8 routes (4 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

2:10.204.217.149:1::2222::02:9b:65:3a:5a:fd::1.1.1.3/304
                   *[BGP/170] 06:12:32, localpref 100, from 10.204.217.146
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32771
                    [BGP/170] 06:12:32, localpref 100, from 10.204.217.147
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32771
2:10.204.217.150:1::2222::02:9e:9f:62:5b:fe::1.1.1.2/304
                   *[BGP/170] 06:12:30, localpref 100, from 10.204.217.146
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32772
                    [BGP/170] 06:12:30, localpref 100, from 10.204.217.147
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32772
3:10.204.217.149:1::2222::10.204.217.149/304
                   *[BGP/170] 06:12:32, localpref 100, from 10.204.217.146
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32771
                    [BGP/170] 06:12:32, localpref 100, from 10.204.217.147
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32771
3:10.204.217.150:1::2222::10.204.217.150/304
                   *[BGP/170] 06:12:30, localpref 100, from 10.204.217.146
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32772
                    [BGP/170] 06:12:30, localpref 100, from 10.204.217.147
                      AS path: ?, validation-state: unverified
                    > via gr-1/0/0.32772

[edit]

root@walsh#

Config
—————--

BGP
-----
root@walsh# show protocols bgp group evpn-test | display set
set protocols bgp group evpn-test type internal
set protocols bgp group evpn-test traceoptions file evpn_proto.log
set protocols bgp group evpn-test traceoptions flag all
set protocols bgp group evpn-test local-address 7.7.7.77
set protocols bgp group evpn-test keep all
set protocols bgp group evpn-test family evpn signaling
set protocols bgp group evpn-test family route-target
set protocols bgp group evpn-test local-as 64512
set protocols bgp group evpn-test neighbor 10.204.217.147
set protocols bgp group evpn-test neighbor 10.204.217.146

EVPN
-----
root@walsh# show routing-instances evpn-vxlan | display set
set routing-instances evpn-vxlan vtep-source-interface lo0.0
set routing-instances evpn-vxlan instance-type virtual-switch
set routing-instances evpn-vxlan route-distinguisher 64512:12345
set routing-instances evpn-vxlan vrf-target target:64512:12345
set routing-instances evpn-vxlan protocols evpn traceoptions file evpn-1.log
set routing-instances evpn-vxlan protocols evpn traceoptions flag all
set routing-instances evpn-vxlan protocols evpn encapsulation vxlan
set routing-instances evpn-vxlan protocols evpn extended-vni-all
set routing-instances evpn-vxlan bridge-domains bd1 vlan-id 2222
set routing-instances evpn-vxlan bridge-domains bd1 interface ge-1/0/0.0
set routing-instances evpn-vxlan bridge-domains bd1 routing-interface irb.0
set routing-instances evpn-vxlan bridge-domains bd1 vxlan vni 2222
set routing-instances evpn-vxlan bridge-domains bd1 vxlan ingress-node-replication

Interface
—————-----
root@walsh# show interfaces ge-1/0/0 | display set
set interfaces ge-1/0/0 encapsulation ethernet-bridge
set interfaces ge-1/0/0 unit 0 family bridge

[edit]
root@walsh# show interfaces ge-1/1/0 | display set
set interfaces ge-1/1/0 unit 0 family inet address 10.204.217.244/24

[edit]
root@walsh# show interfaces lo0 | display set
set interfaces lo0 unit 0 family inet address 7.7.7.77/32 primary
set interfaces lo0 unit 0 family inet address 7.7.7.77/32 preferred

[edit]
root@walsh# show interfaces irb | display set
set interfaces irb gratuitous-arp-reply

set interfaces irb unit 0 family inet address 1.1.1.250/24

Testbed
-------
Contrail Testbed Details
————————————————---------
env.roledefs = {
    'all': [host2, host3, host4, host5, host6],
    'cfgm': [host2, host3,host4],
    'openstack': [host5],
    'webui': [host2],
    'control': [host2, host3],
    'compute': [host5, host6],
    'collector': [host2, host3, host4],
    'database': [host2, host3, host4],
    'build': [host_build],
}

env.hostnames = {
    'all': ['nodei34', 'nodei35', 'nodei36', 'nodei37', 'nodei38']
}

host2 = 'root@10.204.217.146'
host3 = 'root@10.204.217.147'
host4 = 'root@10.204.217.148'
host5 = 'root@10.204.217.149'

host6 = 'root@10.204.217.150’

MX
——
10.204.217.244 (root/Embe1mpls)

BMS
—---
Nodei32(root/c0ntrail123)

root@walsh# run show version
Hostname: walsh
Model: mx80
Junos: 14.1I20141113_0813_vvenkatraman
JUNOS Base OS boot [14.1I20141113_0813_vvenkatraman]
JUNOS Base OS Software Suite [14.1I20141113_0813_vvenkatraman]
JUNOS Crypto Software Suite [14.1I20141113_0813_vvenkatraman]
JUNOS Packet Forwarding Engine Support (MX80) [14.1I20141113_0813_vvenkatraman]
JUNOS Online Documentation [14.1I20141113_0813_vvenkatraman]
JUNOS Services Application Level Gateways [14.1I20141113_0813_vvenkatraman]
JUNOS Services Jflow Container package [14.1I20141113_0813_vvenkatraman]
JUNOS Services Stateful Firewall [14.1I20141113_0813_vvenkatraman]
JUNOS Services NAT [14.1I20141113_0813_vvenkatraman]
JUNOS Services RPM [14.1I20141113_0813_vvenkatraman]
JUNOS Services Crypto [14.1I20141113_0813_vvenkatraman]
JUNOS Services SSL [14.1I20141113_0813_vvenkatraman]
JUNOS Services IPSec [14.1I20141113_0813_vvenkatraman]
JUNOS Kernel Software Suite [14.1I20141113_0813_vvenkatraman]

JUNOS Routing Software Suite [14.1I20141113_0813_vvenkatraman]

Revision history for this message
Suresh Balineni (sbalineni) wrote :
Download full text (10.9 KiB)

Samples DM generated Mx config for following VN configuration:

Sample test config:
    def test_evpn(self):
        vn1_name = 'vn1'
        vn1_obj = VirtualNetwork(vn1_name)
        vn1_obj.set_router_external(True)
        ipam_obj = NetworkIpam('ipam1')
        self._vnc_lib.network_ipam_create(ipam_obj)
        vn1_obj.add_network_ipam(ipam_obj, VnSubnetsType(
            [IpamSubnetType(SubnetType("192.168.7.0", 24))]))

        vn1_obj_properties = VirtualNetworkType()
        vn1_obj_properties.set_vxlan_network_identifier(2000)
        vn1_obj.set_virtual_network_properties(vn1_obj_properties)

        vn1_uuid = self._vnc_lib.virtual_network_create(vn1_obj)

        bgp_router, pr = self.create_router('router10', '1.1.1.1')
        pr.set_virtual_network(vn1_obj)
        self._vnc_lib.physical_router_update(pr)

        pi = PhysicalInterface('pi1', parent_obj = pr)
        pi_id = self._vnc_lib.physical_interface_create(pi)

        fq_name = ['default-project', 'vmi1']
        vmi1 = VirtualMachineInterface(fq_name=fq_name, parent_type = 'project')
        vmi1.set_virtual_network(vn1_obj)
        self._vnc_lib.virtual_machine_interface_create(vmi1)

        fq_name = ['default-project', 'vmi2']
        vmi2 = VirtualMachineInterface(fq_name=fq_name, parent_type = 'project')
        vmi2.set_virtual_network(vn1_obj)
        self._vnc_lib.virtual_machine_interface_create(vmi2)

        li1 = LogicalInterface('li1', parent_obj = pi)
        li1.set_virtual_machine_interface(vmi1)
        li1_id = self._vnc_lib.logical_interface_create(li1)

        li2 = LogicalInterface('li2', parent_obj = pi)
        li2.set_virtual_machine_interface(vmi2)
        li2_id = self._vnc_lib.logical_interface_create(li2)

Generated Mx Config:
--------------------

{
    "config": {
        "configuration": {
            "groups": {
                "name": "__contrail__",
                "protocols": {
                    "bgp": {
                        "group": [
                            {
                                "name": "__contrail__",
                                "type": "internal",
                                "multihop": "",
                                "local-address": "1.1.1.1",
                                "family": {
                                    "route-target": "",
                                    "inet-vpn": {
                                        "unicast": ""
                                    },
                                    "evpn": {
                                        "signaling": ""
                                    },
                                    "inet6-vpn": {
                                        "unicast": ""
                                    }
                                },
                                "keep": "all",
                                "_operation": "replace"
                            },
                            {
                                "name": "__contrail_external__",
                                "type": "external",
                                "multihop": "",
                                "local-address": "1.1.1.1",
           ...

Changed in juniperopenstack:
assignee: Sachin Bansal (sbansal) → Suresh Balineni (sbalineni)
tags: added: config
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/5703
Committed: http://github.org/Juniper/contrail-controller/commit/870d8430282e8fb9d020b70c5a2161fbb8803e7b
Submitter: Zuul
Branch: master

commit 870d8430282e8fb9d020b70c5a2161fbb8803e7b
Author: sbalineni <email address hidden>
Date: Tue Dec 16 14:43:04 2014 -0800

DM EVPN configuration bug 1395944

Change-Id: I083786054f7b92d4ef0c3abdf3b066cae2f964d2

Changed in juniperopenstack:
status: New → Fix Committed
Nischal Sheth (nsheth)
Changed in juniperopenstack:
importance: Undecided → High
milestone: none → r2.20-fcs
information type: Proprietary → Public
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.