eHi! I am using 'OpenBSD 4.8-current (GENERIC) #313: Mon Nov 1 11:04:25 MDT 2010' i set up some good number of testing machines and started to try out the bgp mpls vpn stuff (based on man bgpd.conf, man ldpd.conf man man route + http://marc.info/?l=openbsd-misc&m=127470697232025&w=1 and i also did some general reading on mpls & mpls-vpn)
What i got so far is working bgp mpls vpn between two computers if they are directly connected like this. (The objective was to create behind PE1 two private vlans 172.116.93/24 and 172.117.93/24 into different rdomains which can communicate which their respective counterpart vlans behind PE2, 172.116.94/24 and 172.117.94/24)) em0 - management interface em1 - interface running mpls em2 - rdomains interface running vlans PE1 em0 _____ em2 (up) | | |_____| lo1 (inet 10.10.11.1 255.255.255.0 NONE) | vlan116 (rdomain 116 | vlan 116 vlandev em2 | inet 172.116.93.1 255.255.255.0 NONE) | vlan117 (rdomain 117 | vlan 117 vlandev em2 | inet 172.117.93.1 255.255.255.0 NONE) | mpe116 (rdomain 116 mplslabel 11693 | inet 10.168.116.93 255.255.255.255) | mpe117 (rdomain 117 mplslabel 11793 | inet 10.168.117.93 255.255.255.255) | em1 (inet 10.0.11.1 255.255.255.0 NONE mpls) | | | | | | lo1 (inet 10.10.12.1 255.255.255.0 NONE) | vlan116 (rdomain 116 | vlan 116 vlandev em2 | inet 172.116.94.1 255.255.255.0 NONE) | vlan117 (rdomain 117 | vlan 117 vlandev em2 | inet 172.117.94.1 255.255.255.0 NONE) | | mpe116 (rdomain 116 mplslabel 11694 | inet 10.168.116.94 255.255.255.255) | mpe117 (rdomain 117 mplslabel 11794 | inet 10.168.117.94 255.255.255.255) | em1 (inet 10.0.11.254 255.255.255.0 NONE mpls) __|__ | | |_____| em0 em2 (up) PE2 where relevant configuration files are like this configs on PE1 # cat /etc/bgpd.conf AS 65001 router-id 10.10.11.1 listen on 10.10.11.1 rdomain 116 { descr "cust 116 site a" rd 65001:1 import-target rt 65001:116 export-target rt 65001:116 depend on mpe116 network 172.116.93.0/24 } rdomain 117 { descr "cust 117 site a" rd 65001:1 import-target rt 65001:117 export-target rt 65001:117 depend on mpe117 network 172.117.93.0/24 } neighbor 10.10.12.1 { remote-as 65001 descr AS65001 announce IPv4 vpn announce IPv4 unicast local-address 10.10.11.1 } allow from any # cat /etc/ospfd.conf redistribute connected redistribute 10.10.11.1/32 area 0.0.0.5 { interface em1 { } } configs on PE2 # cat /etc/bgpd.conf AS 65001 router-id 10.10.12.1 listen on 10.10.12.1 rdomain 116 { descr "cust 116 site b" rd 65001:1 import-target rt 65001:116 export-target rt 65001:116 depend on mpe116 network 172.116.94.0/24 } rdomain 117 { descr "cust 117 site b" rd 65001:1 import-target rt 65001:117 export-target rt 65001:117 depend on mpe117 network 172.117.94.0/24 } neighbor 10.10.11.1 { remote-as 65001 descr AS65001 announce IPv4 vpn announce IPv4 unicast local-address 10.10.12.1 } allow from any # cat /etc/ospfd.conf redistribute connected redistribute 10.10.12.1/32 area 0.0.0.5 { interface em1 { } } As a result i can issue successfully on PE1 PE1# ping -V 116 -I 172.116.93.1 172.116.94.1 and i can see witch tcpdump MPLS traffic between em1 devices. Please comment on this setup, maybe something is still wrong here althougt it seems to work. But now to the problem part. When i try to set up between two PE routers three P routers then i loose connections between vpn's. What i do in addition to above described setup is 1. configure on P routers ordinary ip interfaces + mpls, like this inet 10.0.171.254 255.255.255.0 NONE mpls 2. enable ip forwarding the ordinary way (net.inet.ip.forwarding=1) and use ospfd 3. run on all P routers ldpd with (router-id is uniq on each) fast="2" router-id 10.10.11.9 distribution independent retention liberal advertisement unsolicited interface em1 { } interface em2 { } 4. run on both PE routers ldpd with (router id is the same as bgp router id) fast="2" router-id 10.10.12.1 distribution independent retention liberal advertisement unsolicited interface lo0 { } interface em1 { } And what i observe is MPLE packet gets out from PE and i see it on first P routers ingress interface but thats all, it seems it does not get routed further. And when i look at the labels with ldpctl and route -n show -mpls it seems not too logical what i see there also. For example at PE1 it says mpls-3:/etc# ldpctl show lib Destination Nexthop Local Label Remote Label In Use 0.0.0.0/0 10.10.11.8 21 - no 10.0.11.0/24 10.0.11.254 3 Untagged yes 10.0.11.0/24 0.0.0.0 3 Untagged yes 10.0.12.0/24 10.0.11.1 16 Untagged yes 10.0.171.0/24 10.0.11.1 17 Untagged yes 10.0.172.0/24 10.0.11.1 18 Untagged yes 10.10.11.1/32 10.10.11.1 19 Untagged yes 10.10.12.1/32 10.0.11.1 20 Untagged yes 192.168.10.0/24 10.0.11.1 3 Untagged yes 192.168.10.0/24 0.0.0.0 3 Untagged yes mpls-3:/etc# route -n show -mpls Routing tables MPLS: In label Out label Op Gateway Flags Refs Use Mtu Prio Interface 16 - LOCAL 10.0.11.1 UGT 0 0 - 32 em2 17 - LOCAL 10.0.11.1 UGT 0 0 - 32 em2 18 - LOCAL 10.0.11.1 UGT 0 0 - 32 em2 19 - LOCAL 10.10.11.1 UGT 0 6 33160 4 lo1 20 - LOCAL 10.0.11.1 UGT 0 0 - 32 em2 11693 - POP mpe116 UT 0 57 - 4 mpe116 11793 - POP mpe117 UT 0 31 - 4 mpe117 mpls-3:/etc# bgpctl show rib flags: * = Valid, > = Selected, I = via IBGP, A = Announced origin: i = IGP, e = EGP, ? = Incomplete flags destination gateway lpref med aspath origin AI*> rd 65001:1 172.116.93.0/24 rd 0:0 0.0.0.0 100 0 i I*> rd 65001:1 172.116.94.0/24 10.10.12.1 100 0 i AI*> rd 65001:1 172.117.93.0/24 rd 0:0 0.0.0.0 100 0 i I*> rd 65001:1 172.117.94.0/24 10.10.12.1 100 0 i at P in the middle it says mpls-4:~# ldpctl show lib Destination Nexthop Local Label Remote Label In Use 0.0.0.0/0 192.168.10.254 16 Untagged yes 10.0.11.0/24 10.0.171.1 17 Pop tag yes 10.0.12.0/24 10.0.172.1 18 Untagged yes 10.0.171.0/24 10.0.171.254 3 Untagged yes 10.0.171.0/24 0.0.0.0 3 Untagged yes 10.0.172.0/24 10.0.172.254 3 Untagged yes 10.0.172.0/24 0.0.0.0 3 Untagged yes 10.10.11.1/32 10.0.171.1 19 19 yes 10.10.12.1/32 10.0.172.1 20 Untagged yes 192.168.10.0/24 10.0.172.1 3 Untagged yes 192.168.10.0/24 10.0.171.1 3 Pop tag yes 192.168.10.0/24 0.0.0.0 3 Untagged yes mpls-4:~# route -n show -mpls Routing tables MPLS: In label Out label Op Gateway Flags Refs Use Mtu Prio Interface 16 - LOCAL 192.168.10.254 UGT 0 0 - 8 em0 17 - POP 10.0.171.1 UGT 0 0 - 32 em1 18 - LOCAL 10.0.172.1 UGT 0 0 - 32 em2 19 19 SWAP 10.0.171.1 UGT 0 10 - 32 em1 20 - LOCAL 10.0.172.1 UGT 0 0 - 32 em2 and at PE2 it says mpls-5:/etc# ldpctl show lib Destination Nexthop Local Label Remote Label In Use 10.0.11.0/24 10.0.12.1 16 17 yes 10.0.12.0/24 10.0.12.254 3 Untagged yes 10.0.12.0/24 0.0.0.0 3 Untagged yes 10.0.171.0/24 10.0.12.1 17 18 yes 10.0.172.0/24 10.0.12.1 18 Pop tag yes 10.10.11.1/32 10.0.12.1 19 19 yes 10.10.12.1/32 10.10.12.1 20 Untagged yes 192.168.10.0/24 10.0.12.1 3 Pop tag yes 192.168.10.0/24 0.0.0.0 3 Untagged yes mpls-5:/etc# route -n show -mpls Routing tables MPLS: In label Out label Op Gateway Flags Refs Use Mtu Prio Interface 16 17 SWAP 10.0.12.1 UGT 0 0 - 32 em1 17 18 SWAP 10.0.12.1 UGT 0 0 - 32 em1 18 - POP 10.0.12.1 UGT 0 0 - 32 em1 19 19 SWAP 10.0.12.1 UGT 0 0 - 32 em1 20 - LOCAL 10.10.12.1 UGT 0 16 33160 4 lo1 11694 - POP mpe116 UT 0 0 - 4 mpe116 11794 - POP mpe117 UT 0 0 - 4 mpe117 mpls-5:/etc# bgpctl show rib flags: * = Valid, > = Selected, I = via IBGP, A = Announced origin: i = IGP, e = EGP, ? = Incomplete flags destination gateway lpref med aspath origin I*> rd 65001:1 172.116.93.0/24 10.10.11.1 100 0 i AI*> rd 65001:1 172.116.94.0/24 rd 0:0 0.0.0.0 100 0 i I*> rd 65001:1 172.117.93.0/24 10.10.11.1 100 0 i AI*> rd 65001:1 172.117.94.0/24 rd 0:0 0.0.0.0 100 0 i (just for the record, between mpls-3 and mpls-4 is P-router mpls-8, and between mpls-4 ja mpls-5 is P-router mpls-9, their output isnt shown) I suspect i miss one of these 1. i misuse ldpd 2. i havent configured correctly on P routers mpls forwarding (read on man route something about -in, -out, -push, -swap but have no idea how to use them) 3. i read that doing mpls-vpn there are actually two mpls labels used, one to choose correct rdomain in PE and the other to get packet thru MPLS network, i cant get on my packets the top label I would be very glad if you could point me to the right direction! Best regards, Imre