Trellis Tutorial An Open-Source, White-Box, SDN Based Leaf-Spine Network Fabric Charles Chan Open Networking Foundation.

Slides:



Advertisements
Similar presentations
Topology Discovery Requirements Loren Larsen World Wide Packets.
Advertisements

© 2006 Cisco Systems, Inc. All rights reserved.Cisco PublicITE I Chapter 6 1 Implement Inter- VLAN Routing LAN Switching and Wireless – Chapter 6.
The subnet /28 has been selected to be further subnetted to support point-to-point serial links. What is the maximum number of serial links.
Introduction to Networking (Routing & Switching)
1 IPv6. 2 Problem: 32-bit address space will be completely allocated by Solution: Design a new IP with a larger address space, called the IP version.
CIM 2465 IP Addressing Scheme1 IP Addressing Scheme (Topic 4) Textbook: Networking Basics, CCNA 1 Companion Guide, Cisco Press Cisco Networking Academy.
Technical Aspects of Peering Session 4. Overview Peering checklist/requirements Peering step by step Peering arrangements and options Exercises.
Switching Topic 4 Inter-VLAN routing. Agenda Routing process Routing VLANs – Traditional model – Router-on-a-stick – Multilayer switches EtherChannel.
Chapter 8b Intro to Routing & Switching.  Upon completion of this chapter, you should be able to:  Describe the structure of an IPv4 address.  Describe.
Instructor & Todd Lammle
© 2006 Cisco Systems, Inc. All rights reserved.Cisco PublicITE I Chapter 6 1 VLANs LAN Switching and Wireless – Chapter 3.
Ethernet and switches selected topics 1. Agenda Scaling ethernet infrastructure VLANs 2.
Instructor & Todd Lammle
Virtual LANs. VLAN introduction VLANs logically segment switched networks based on the functions, project teams, or applications of the organization regardless.
بسم الله الرحمن الرحیم. Why ip V6 ip V4 Addressing Ip v4 :: 32-bits :: :: written in dotted decimal :: :: ::
Network Redundancy Multiple paths may exist between systems. Redundancy is not a requirement of a packet switching network. Redundancy was part of the.
Connecting Networks © 2004 Cisco Systems, Inc. All rights reserved. Exploring How IP Address Protocols Work INTRO v2.0—4-1.
Router and Routing Basics
VLAN V irtual L ocal A rea N etwork VLAN Network performance is a key factor in the productivity of an organization. One of the technologies used to.
Chapter 8: Virtual LAN (VLAN)
VXLAN Nexus 9000 Module 6 – MP-BGP EVPN - Design
IPv6 Routing Milo Liu SW2 R&D ZyXEL Communications, Inc.
Chapter 6 1 Chap 6 – Implement Inter-VLAN Routing Learning Objectives Explain to the satisfaction of a qualified instructor how network traffic is routed.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco PublicITE I Chapter 6 1 VLANs LAN Switching and Wireless – Chapter 3.
The University of Bolton School of Games Computing & Creative Technologies LCT2516 Network Architecture CCNA Exploration LAN Switching and Wireless Chapter.
HP Hybrid Switches. HP OpenFlow Enabled Switches OF Firmware for Existing Procurve Switches – 5406zl, 5412zl, 3500yl and 6600 – Supports OpenFlow 1.0.
Switching Topic 2 VLANs.
© 2009 Cisco Systems, Inc. All rights reserved. SWITCH v1.0—7-1 Minimizing Service Loss and Data Theft Protecting Against VLAN Attacks.
Neighbor Discovery. IPv6 Terminology Additional subnets Router Host Neighbors Host Intra-subnet router Switch LAN segment Link Subnet Network.
+ Routing Concepts 1 st semester Objectives  Describe the primary functions and features of a router.  Explain how routers use information.
Akhyari Nasir.  Router-on-a-stick is a type of router configuration in which a single physical interface routes traffic between.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco PublicITE I Chapter 6 1 VLANs LAN Switching and Wireless – Chapter 3.
Deploy SDN-IP.
EVPN: Or how I learned to stop worrying and love the BGP
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
External – Layer3 Use Cases. Advertise BD Subnet Through OSPF Step 1: Configure Vlan Domain. apic1(config)# vlan-domain dom400 apic1(config-vlan)# vlan.
EVPN: Or how I learned to stop worrying and love the BGP Tom Dwyer, JNCIE-ENT #424 Clay Haynes, JNCIE-SEC # 69 JNCIE-ENT # 492.
Instructor Materials Chapter 2: Scaling VLANs
100% Exam Passing Guarantee & Money Back Assurance
Instructor Materials Chapter 8: DHCP
Konstantin agouros Omkar deshpande
IP: Addressing, ARP, Routing
How to pass Cisco Exam in first attempt?
IPv6 101 pre-GDB - IPv6 workshop 7th of June 2016 edoardo
CCENT Study Guide Chapter 9 IP Routing.
Network Layer, and Logical Addresses
Virtual Local Area Networks or VLANs
Networking CS 3470, Section 1 Sarah Diesburg
Instructor Materials Chapter 6: VLANs
CIS 116 IPv6 Fundamentals 2 – Primer Rick Graziani Cabrillo College
Switch Setup Connectivity to Other locations Via MPLS/LL etc
Welcome! Thank you for joining us. We’ll get started in a few minutes.
Wireless Modes.
Chapter 6 – Routing.
Chapter 4: Routing Concepts
Chapter 10: DHCP Routing & Switching Chapter 10: DHCP
Chapter 5: Inter-VLAN Routing
Virtual LANs.
Chapter 2: Scaling VLANs
Instructor & Todd Lammle
CS 457 – Lecture 10 Internetworking and IP
Routing and Switching Essentials v6.0
Routing and Switching Essentials v6.0
CCNA Routing and Switching Routing and Switching Essentials v6.0
Chapter 2: Static Routing
Networking CS 3470 Sarah Diesburg
Attilla de Groot | Sr. Systems Engineer, HCIE #3494 | Cumulus Networks
Networking CS 3470 Sarah Diesburg
Multicasting Unicast.
Tim Strakh CEO, IEOFIT CCIE RS, CCIE Sec CCIE Voice, CCIE DC
Presentation transcript:

Trellis Tutorial An Open-Source, White-Box, SDN Based Leaf-Spine Network Fabric Charles Chan Open Networking Foundation

Trellis L2/L3 leaf-spine DC network fabric Open Source Software White Box Hardware SDN Based

Trellis Features Bridging Routing VLAN L3 DHCP Relay vRouter IPv6 Dual Homing and more…

Prerequisite ONOS Mininet DHCP Server Quagga & BGP

Demo Topology of:226 of:227 Q of:204 of:205 R rh1 h1 h2 D h3 h4 10.0.1.2 10.0.1.254 of:204 of:205 6 10.0.1.254 10.0.1.1 R 10.0.99.1 rh1 5 4 10.0.99.2 10.0.2.254 10.0.2.254 10.0.3.254 10.0.4.254 3 3 4 10.0.3.254 10.0.2.1 VLAN None 10.0.2.2 VLAN 10 10.0.3.1 VLAN 30 10.0.4.1 VLAN None 10.0.3.253 h1 h2 D h3 h4 Q: Quagga, R: Upstream Router, D: DHCP Server

Device Data Path ID (DPID) of the switch { "devices" : { “segmentrouting” : { "name" : "s204", "ipv4NodeSid" : 204, "ipv4Loopback" : "192.168.0.204", "routerMac" : "00:00:00:00:02:04", "isEdgeRouter" : true, "adjacencySids" : [] }, "basic" : { "name": "s204", "driver" : "ofdpa-ovs” } Data Path ID (DPID) of the switch

Device Unused. This name doesn’t really matter. Will be deprecated. { "devices" : { "of:0000000000000204" : { “segmentrouting” : { "name" : "s204", "ipv4NodeSid" : 204, "ipv4Loopback" : "192.168.0.204", "routerMac" : "00:00:00:00:02:04", "isEdgeRouter" : true, "adjacencySids" : [] }, "basic" : { "name": "s204", "driver" : "ofdpa-ovs” } Unused. This name doesn’t really matter. Will be deprecated.

Device { "devices" : { "of:0000000000000204" : { “segmentrouting” : { "name" : "s204", "ipv4NodeSid" : 204, "ipv4Loopback" : "192.168.0.204", "routerMac" : "00:00:00:00:02:04", "isEdgeRouter" : true, "adjacencySids" : [] }, "basic" : { "name": "s204", "driver" : "ofdpa-ovs” } Segment ID. Can be an arbitrary value but need to be unique in the system. Also used as the MPLS label when doing segment routing. Do not use reserved MPLS labels (i.e. <=16).

Device Loopback address of the switch. { "devices" : { "of:0000000000000204" : { “segmentrouting” : { "name" : "s204", "ipv4NodeSid" : 204, "ipv4Loopback" : "192.168.0.204", "routerMac" : "00:00:00:00:02:04", "isEdgeRouter" : true, "adjacencySids" : [] }, "basic" : { "name": "s204", "driver" : "ofdpa-ovs” } Loopback address of the switch. Can be an arbitrary value (e.g. the management IP) but need to be unique in the system.

Device Use for ARP reply when host ARPs its gateway. { "devices" : { "of:0000000000000204" : { “segmentrouting” : { "name" : "s204", "ipv4NodeSid" : 204, "ipv4Loopback" : "192.168.0.204", "routerMac" : "00:00:00:00:02:04", "isEdgeRouter" : true, "adjacencySids" : [] }, "basic" : { "name": "s204", "driver" : "ofdpa-ovs” } Use for ARP reply when host ARPs its gateway. Can be an arbitrary value (e.g. the management MAC) but need to be unique in the system.

Device True for leaves. False for spines. { "devices" : { "of:0000000000000204" : { “segmentrouting” : { "name" : "s204", "ipv4NodeSid" : 204, "ipv4Loopback" : "192.168.0.204", "routerMac" : "00:00:00:00:02:04", "isEdgeRouter" : true, "adjacencySids" : [] }, "basic" : { "name": "s204", "driver" : "ofdpa-ovs” } True for leaves. False for spines.

Device Unused. Will be deprecated. { "devices" : { "of:0000000000000204" : { “segmentrouting” : { "name" : "s204", "ipv4NodeSid" : 204, "ipv4Loopback" : "192.168.0.204", "routerMac" : "00:00:00:00:02:04", "isEdgeRouter" : true, "adjacencySids" : [] }, "basic" : { "name": "s204", "driver" : "ofdpa-ovs” } Unused. Will be deprecated.

Device This is the name that does matter. Will be displayed in GUI { "devices" : { "of:0000000000000204" : { “segmentrouting” : { "name" : "s204", "ipv4NodeSid" : 204, "ipv4Loopback" : "192.168.0.204", "routerMac" : "00:00:00:00:02:04", "isEdgeRouter" : true, "adjacencySids" : [] }, "basic" : { "name": "s204", "driver" : "ofdpa-ovs” } This is the name that does matter. Will be displayed in GUI

Device { "devices" : { "of:0000000000000204" : { “segmentrouting” : { "name" : "s204", "ipv4NodeSid" : 204, "ipv4Loopback" : "192.168.0.204", "routerMac" : "00:00:00:00:02:04", "isEdgeRouter" : true, "adjacencySids" : [] }, "basic" : { "name": "s204", "driver" : "ofdpa-ovs” } Driver. ofdpa-ovs for OpenvSwitch. ofdpa3 for Broadcom XGS (Trident2, Tomahawk) qmx-ofdpa3 for Broadcom QMX

Port - VLAN Untagged DPID/port number Equivalent to access port. of:204 h1 h2 10.0.2.1 VLAN None 10.0.2.2 VLAN 10 10.0.2.254 3 4 { "ports" : { "of:0000000000000204/3" : { "interfaces" : [ "ips" : ["10.0.2.254/24"], "vlan-untagged": 20 } ] } DPID/port number Equivalent to access port. Expecting untagged packet and will push VLAN 20

Port - VLAN Tagged Equivalent to trunk port. of:204 h1 h2 10.0.2.1 VLAN None 10.0.2.2 VLAN 10 10.0.2.254 3 4 { "ports" : { "of:0000000000000204/4" : { "interfaces" : [ "ips" : ["10.0.2.254/24"], "vlan-tagged": [20] } ] } Equivalent to trunk port. Expecting VLAN 20 tagged packet and will keep the tag. It is possible to have more than one trunk VLAN.

Port - VLAN Tagged with Native Q R D of:205 h3 10.0.3.1 VLAN 30 10.0.1.1 10.0.1.2 10.0.3.253 10.0.3.254 10.0.4.254 10.0.1.254 3 4 5 6 10.0.4.1 VLAN None h4 { "ports" : { "of:0000000000000205/3" : { "interfaces" : [ "ips" : ["10.0.3.254/24”, "10.0.4.254/24"] "vlan-tagged": [30], "vlan-native": 40 } ] } Equivalent to trunk port with native VLAN. Expecting VLAN 30 tagged packet and will keep the tag. Also expecting untagged packet and will push VLAN 40

Port - Subnet Two information can be derived from the subnet config: The interface IP on the switch is 10.0.3.254 The subnet on this interface is 10.0.3.0/24 Currently we don’t map between subnet and VLAN. VLAN information is solely used for defining bridging domain. Subnet information is solely used for routing. There are some confusions. Will have 1-to-1 mapping in the future. { "ports" : { "of:0000000000000205/3" : { "interfaces" : [ "ips" : ["10.0.3.254/24”, "10.0.4.254/24"] "vlan-tagged": [30], "vlan-native": 40 } ] }

L3 DHCP Relay Q R D

L3 DHCP Relay The location where the DHCP server is attached to { "apps" : { "org.onosproject.dhcprelay" : { "default": [ "dhcpServerConnectPoint": "of:0000000000000205/6", "serverIps": ["10.0.3.253"] } ] The location where the DHCP server is attached to

L3 DHCP Relay The IP address of DHCP server { "apps" : { "org.onosproject.dhcprelay" : { "default": [ "dhcpServerConnectPoint": "of:0000000000000205/6", "serverIps": ["10.0.3.253"] } ] The IP address of DHCP server

dhcpd.conf Subnets we want to assign subnet 10.0.2.0 netmask 255.255.255.0 { range 10.0.2.100 10.0.2.240; option routers 10.0.2.254; } subnet 10.0.3.0 netmask 255.255.255.0 { range 10.0.3.100 10.0.3.240; option routers 10.0.3.254; Subnets we want to assign

dhcpd.conf IP range that will be used for this subnet subnet 10.0.2.0 netmask 255.255.255.0 { range 10.0.2.100 10.0.2.240; option routers 10.0.2.254; } subnet 10.0.3.0 netmask 255.255.255.0 { range 10.0.3.100 10.0.3.240; option routers 10.0.3.254; IP range that will be used for this subnet

dhcpd.conf subnet 10.0.2.0 netmask 255.255.255.0 { range 10.0.2.100 10.0.2.240; option routers 10.0.2.254; } subnet 10.0.3.0 netmask 255.255.255.0 { range 10.0.3.100 10.0.3.240; option routers 10.0.3.254; Default gateway we want to assign, which is the interface IP of the leaf switch

vRouter { "ports" : { "of:0000000000000205/8" : { "interfaces" : [ "ips" : ["10.0.1.254/24”] "vlan-untagged": 10 } ] }, "of:0000000000000205/9" : { } Quagga and upstream router need to be in the same VLAN and subnet. We need 3 IPs in the subnet. 1 for Quagga, 1 for upstream router, 1 for leaf switch interface. /29 is the minimum subnet.

Route Map Quagga announces leaf switch, instead of quagga itself, as the next hop to the internal network 10.0.1.2/24 Q 10.0.1.254/24 Routed data traffic Bridged BGP traffic 10.0.1.254/24 R 10.0.1.1/24

Quagga - bgpd.conf List of prefixes we want to announce ip prefix-list 1 seq 10 permit 10.0.2.0/24 ip prefix-list 1 seq 20 permit 10.0.3.0/24 route-map NEXTHOP41 permit 10 match ip address prefix-list 1 set ip next-hop 10.0.1.254 neighbor 10.0.1.1 remote-as 65001 neighbor 10.0.1.1 ebgp-multihop neighbor 10.0.1.1 timers connect 5 neighbor 10.0.1.1 advertisement-interval 5 neighbor 10.0.1.1 route-map NEXTHOP41 out network 10.0.2.0/24 network 10.0.3.0/24 List of prefixes we want to announce

Quagga - bgpd.conf Define the route map and its name ip prefix-list 1 seq 10 permit 10.0.2.0/24 ip prefix-list 1 seq 20 permit 10.0.3.0/24 route-map NEXTHOP41 permit 10 match ip address prefix-list 1 set ip next-hop 10.0.1.254 neighbor 10.0.1.1 remote-as 65001 neighbor 10.0.1.1 ebgp-multihop neighbor 10.0.1.1 timers connect 5 neighbor 10.0.1.1 advertisement-interval 5 neighbor 10.0.1.1 route-map NEXTHOP41 out network 10.0.2.0/24 network 10.0.3.0/24 Define the route map and its name

Quagga - bgpd.conf ip prefix-list 1 seq 10 permit 10.0.2.0/24 ip prefix-list 1 seq 20 permit 10.0.3.0/24 route-map NEXTHOP41 permit 10 match ip address prefix-list 1 set ip next-hop 10.0.1.254 neighbor 10.0.1.1 remote-as 65001 neighbor 10.0.1.1 ebgp-multihop neighbor 10.0.1.1 timers connect 5 neighbor 10.0.1.1 advertisement-interval 5 neighbor 10.0.1.1 route-map NEXTHOP41 out network 10.0.2.0/24 network 10.0.3.0/24 Apply the route map to the prefixes in prefix-list 1

Quagga - bgpd.conf ip prefix-list 1 seq 10 permit 10.0.2.0/24 ip prefix-list 1 seq 20 permit 10.0.3.0/24 route-map NEXTHOP41 permit 10 match ip address prefix-list 1 set ip next-hop 10.0.1.254 neighbor 10.0.1.1 remote-as 65001 neighbor 10.0.1.1 ebgp-multihop neighbor 10.0.1.1 timers connect 5 neighbor 10.0.1.1 advertisement-interval 5 neighbor 10.0.1.1 route-map NEXTHOP41 out network 10.0.2.0/24 network 10.0.3.0/24 Set the leaf switch, instead of Quagga itself, as the next hop for these prefixes

Quagga - bgpd.conf BGP peer information ip prefix-list 1 seq 10 permit 10.0.2.0/24 ip prefix-list 1 seq 20 permit 10.0.3.0/24 route-map NEXTHOP41 permit 10 match ip address prefix-list 1 set ip next-hop 10.0.1.254 neighbor 10.0.1.1 remote-as 65001 neighbor 10.0.1.1 ebgp-multihop neighbor 10.0.1.1 timers connect 5 neighbor 10.0.1.1 advertisement-interval 5 neighbor 10.0.1.1 route-map NEXTHOP41 out network 10.0.2.0/24 network 10.0.3.0/24 BGP peer information

Quagga - bgpd.conf Announce the route map to the neighbor ip prefix-list 1 seq 10 permit 10.0.2.0/24 ip prefix-list 1 seq 20 permit 10.0.3.0/24 route-map NEXTHOP41 permit 10 match ip address prefix-list 1 set ip next-hop 10.0.1.254 neighbor 10.0.1.1 remote-as 65001 neighbor 10.0.1.1 ebgp-multihop neighbor 10.0.1.1 timers connect 5 neighbor 10.0.1.1 advertisement-interval 5 neighbor 10.0.1.1 route-map NEXTHOP41 out network 10.0.2.0/24 network 10.0.3.0/24 Announce the route map to the neighbor

Quagga - bgpd.conf Networks that are reachable from Quagga ip prefix-list 1 seq 10 permit 10.0.2.0/24 ip prefix-list 1 seq 20 permit 10.0.3.0/24 route-map NEXTHOP41 permit 10 match ip address prefix-list 1 set ip next-hop 10.0.1.254 neighbor 10.0.1.1 remote-as 65001 neighbor 10.0.1.1 ebgp-multihop neighbor 10.0.1.1 timers connect 5 neighbor 10.0.1.1 advertisement-interval 5 neighbor 10.0.1.1 route-map NEXTHOP41 out network 10.0.2.0/24 network 10.0.3.0/24 Networks that are reachable from Quagga

Quagga - zebrad.conf (Optional) Point default route to management network ip route 0.0.0.0/0 172.16.0.1 fpm connection ip 192.168.56.11 port 2620 FPM connection to ONOS IP. Need to be reachable from Quagga

Demo Scripts and configurations are available at https://github

Thank you ! Visit http://wiki.opencord.org for more information