Posted on October 14, 2015 11:46 am
 |  Asked by Roger Wilco
 |  1923 views
RESOLVED
0
0
Print Friendly, PDF & Email

I’ve got two unrelated questions, and thought I’d just combine them into a single post. Both of these relate to vEOS-4.15.0F.

I’ve been able to get all the BGP features working, except for dynamic peer-groups, and I think I’m just missing something. I followed the User Manual, and set it up exactly like the example given, but the neighbor relationship never forms. It looks like it’s not even making an attempt, since sh ip bgp summary is just blank. Static peer-groups work just fine.  Any ideas on what I’m doing wrong?

 

Also, I’ve got a quick question about mpls in vEOS. I can use “mpls ip” from global config mode just fine, and the commands all take without errors, but no mpls packets ever show up in Wireshark. When I try to use “mpls ip” in interface config mode, I get an error stating “not supported by this hardware”.  I guess my question is, does vEOS actually support mpls, or am I just configuring this wrong?

0
Posted by Vikram
Answered on October 14, 2015 7:23 pm

Hi Roger,

With regards to dynamic peer-groups could you please post your config. I tried this out on vEOS-4.15.0F and it seems to be working fine.
Here are my configs

Switch1
show version
Sw1...01:32:08#sh ver | grep image
Software image version: 4.15.0F
Sw1...01:32:10#
show run (interface)
Sw1...01:32:10#sh run int et2
interface Ethernet2
   no switchport
   ip address 10.10.10.0/31
Sw1...01:32:14#
show run (BGP)
Sw1...01:32:14#sh run | sec bgp
router bgp 65000
   bgp listen range 10.10.10.0/24 peer-group TEST remote-as 65001
   neighbor TEST peer-group
   neighbor TEST maximum-routes 12000 
Sw1...01:32:18#
show ip bgp summ
Sw1...01:32:19#sh ip bgp sum
BGP summary information for VRF default
Router identifier 10.10.10.0, local AS number 65000
Neighbor         V  AS           MsgRcvd   MsgSent  InQ OutQ  Up/Down State  PfxRcd PfxAcc
10.10.10.1       4  65001              6         6    0    0 00:02:19 Estab  0      0
Sw1...01:32:24#
Switch2
show version
Sw2...01:33:08#sh ver | grep image
Software image version: 4.15.0F
Sw2...01:33:11#
show run (interface)
Sw2...01:33:12#sh run int et2
interface Ethernet2
   no switchport
   ip address 10.10.10.1/31
Sw2...01:33:16#
show run (BGP)
Sw2...01:33:16#sh run | sec bgp
router bgp 65001
   neighbor 10.10.10.0 remote-as 65000
   neighbor 10.10.10.0 maximum-routes 12000 
Sw2...01:33:20#
show ip bgp summ
Sw2...01:33:21#sh ip bgp sum
BGP summary information for VRF default
Router identifier 10.10.10.1, local AS number 65001
Neighbor         V  AS           MsgRcvd   MsgSent  InQ OutQ  Up/Down State  PfxRcd PfxAcc
10.10.10.0       4  65000             19        32    0    0 00:03:19 Estab  0      0
Sw2...01:33:24#
0
Posted by Roger Wilco
Answered on October 15, 2015 1:45 am

Ah! OK, I see what I was doing wrong. I was trying to use ”bgp listen range” on both ends, not just on the one. Thanks Vikram!

0
Posted by Vikram
Answered on October 15, 2015 5:03 am

Hi Roger,

Glad I could help.

With regards to the MPLS related query please note that in addition to "MPLS IP" you would also need to define a route based on the mpls static command. In EOS-4.15.0 this is the only way to act on a received labelled mpls packet and swap/pop the label.

Please note that we cannot impose a label in this version of vEOS. This functionality will be introduced in the future at some point but its not there today AFAIK.

Please see below for details on an example demonstrating label swapping

Topology

             Label16                      Label32
SW1-(e1)----------------(e1)-SW2-(e2)----------------(e2)-SW3 

Based on the above topology we shall attempt to demonstrate the following

1. On SW1 generate a MPLS labelled packet using ethxmit outbound on e1 towards SW2. The label will be 16

2. Once the packet arrives on SW2 the label will be swapped based on a static MPLS route configured on SW2 and will be sent towards SW3. The new label will be 32

3. On SW2 and SW3 we shall capture the packet to view the label using tcpdump/tshark

Note: Only SW2 has mpls configured. None of the other switches have MPLS


SW2 Config

show run (eth1)
Sw2...01:28:06#sh run int eth1
interface Ethernet1
   no switchport
   ip address 10.10.10.1/31
Sw2...01:28:08#


show run (eth2)
Sw2...01:28:09#sh run int eth2
interface Ethernet2
   no switchport
   ip address 100.100.100.0/31
Sw2...01:28:13#


show run (mpls)
Sw2...01:28:13#sh run section mpls
mpls ip
!
mpls static top-label 16 Ethernet2 100.100.100.1 swap-label 32
Sw2...01:28:16#


SW2 - show mpls route

Sw2...01:28:17#show mpls route
MPLS forwarding table (Labels: [metric] Vias) - 1 routes 
Codes: A - Active metric

16 
  A[100] via 100.100.100.1, swap 32
                EgressAcl: Apply
                directly connected, Ethernet2
                00:0c:29:31:b3:a1
Sw2...01:32:15#



SW1 - Generate MPLS Label Packet using ethxmit

Sw1...01:34:38#bash sudo ethxmit -D 00:0c:29:f8:46:66 --ip-src='3.3.3.3' --ip-dst='4.4.4.4' --mpls-label=16 et1



SW2 - Tshark Capture showing incoming label as 16 on et1


Sw2...01:34:30#bash sudo tshark -nVi et1 mpls
Running as user "root" and group "root". This could be dangerous.
Capturing on et1
Frame 1: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
    Arrival Time: Oct 15, 2015 01:34:39.863578000 UTC
    !!!...output removed for brevity
    [Protocols in frame: eth:mpls:pwethheuristic:pwethcw:ip:data]
Ethernet II, Src: 00:0c:29:f8:88:3b (00:0c:29:f8:88:3b), Dst: 00:0c:29:f8:46:66 (00:0c:29:f8:46:66)
    !!!...output removed for brevity
    Type: MPLS label switched packet (0x8847)
MultiProtocol Label Switching Header, Label: 16, Exp: 0, S: 1, TTL: 64
    MPLS Label: 16
    MPLS Experimental Bits: 0
    MPLS Bottom Of Label Stack: 1
    MPLS TTL: 64
Internet Protocol, Src: 3.3.3.3 (3.3.3.3), Dst: 4.4.4.4 (4.4.4.4)
        !!!...output removed for brevity



SW3 - Tshark Capture showing incoming label as 32 on et2


Sw3...01:34:34#bash sudo tshark -nVi et2 mpls
Running as user "root" and group "root". This could be dangerous.
Capturing on et2
Frame 1: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
    Arrival Time: Oct 15, 2015 01:34:39.584355000 UTC
      !!!...output removed for brevity
    [Protocols in frame: eth:mpls:pwethheuristic:pwethcw:ip:data]
Ethernet II, Src: 00:0c:29:f8:46:66 (00:0c:29:f8:46:66), Dst: 00:0c:29:31:b3:a1 (00:0c:29:31:b3:a1)
        !!!...output removed for brevity
    Type: MPLS label switched packet (0x8847)
MultiProtocol Label Switching Header, Label: 32, Exp: 0, S: 1, TTL: 63
    MPLS Label: 32
    MPLS Experimental Bits: 0
    MPLS Bottom Of Label Stack: 1
    MPLS TTL: 63
Internet Protocol, Src: 3.3.3.3 (3.3.3.3), Dst: 4.4.4.4 (4.4.4.4)
    !!!...output removed for brevity


HTH
0
Posted by Roger Wilco
Answered on October 15, 2015 6:54 pm

You are indeed correct. I had setup mpls static routes to swap the labels, as well as used some virtual cisco routers to impose the labels, so the vEOS VMs would swap them. It appears that the reason I couldn’t see the MPLS labels is due to an issue that requires me to introduce a generic switch inbetween Qemu VMs in GNS3, in order to run Wireshark captures. The lab setup was like this:

Cisco <====> EOS1<====>EOS2<== pt1 switch pt2 ==>EOS3<====>Cisco

Running Wireshark on port 2 of the generic switch doesn’t show MPLS labels at all, when traffic is coming from EOS2 towards EOS3. Running it on port 1, with the traffic going in the same direction, does show the MPLS labels.  Thanks to the commands you showed me, I removed that generic switch, and ran tshark on the vEOS switches directly. I can now see the label-swapping happening in both directions!  :)   Thank you very much! This helped immensely!

 

Post your Answer

You must be logged in to post an answer.