Hi, I've made some tests on ldpd and found some problems/strange things with the following configuration:
2 hosts (v 5.0) - core3 (loopback 10.0.0.7) - core1 (loopback 10.0.0.9) 2 links between these 2 hosts: - vlan211 (on em9) core3 IP: 10.0.0.125 core1 IP: 10.0.0.126 - vlan212 (on em5) core3 IP: 10.0.0.121 core1 IP: 10.0.0.122 I've keeped only interesting part in command results (there some other ospf neighbors and interfaces). Sorry for this long post, I wanted to reproduce a problem I've got one time but failed to get it again (see a the end of this email). ospf is running on both hosts: core3: ID Pri State DeadTime Address Iface Uptime 10.0.0.9 1 FULL/DR 00:00:34 10.0.0.122 vlan212 00:24:38 10.0.0.9 1 FULL/DR 00:00:34 10.0.0.126 vlan211 00:23:27 core1: ID Pri State DeadTime Address Iface Uptime 10.0.0.7 1 FULL/BCKUP 00:00:31 10.0.0.121 vlan212 00:24:50 10.0.0.7 1 FULL/BCKUP 00:00:31 10.0.0.125 vlan211 00:23:40 ldpd.conf on core3: << router-id 10.0.0.7 distribution independent retention liberal advertisement unsolicited interface vlan212 interface vlan211 >> same on core1 except that router-id is 10.0.0.9 -------------------------------- I start ldpd on 2 hosts: core3 logs: Sep 8 14:04:59 core3 ldpd[5529]: startup Sep 8 14:05:00 core3 ldpd[5529]: mpath route not found Sep 8 14:05:05 core3 ldpd[30289]: Connection attempt from unknown neighbor 10.0.0.126: NO HELLO core1 logs: Sep 8 14:04:54 core1 ldpd[8601]: startup Sep 8 14:04:55 core1 ldpd[17310]: received notification from neighbor 10.0.0.7: Session Rejected, No Hello ldpd seems confused by notification received from same host on different links. root@core3:etc$ ldpctl sh nei ID State Address Iface Uptime 10.0.0.9 OPERATIONAL/ACTIVE 10.0.0.126 vlan211 00:00:09 root@core1:etc$ ldpctl sh nei ID State Address Iface Uptime 10.0.0.7 OPERATIONAL/ACTIVE 10.0.0.125 vlan211 00:00:13 ===> First problem: only routes from one interface are tagged: root@core1:etc$ ldpctl sh l Destination Nexthop Local Label Remote Label In Use .... 10.200.0.176/29 10.0.0.121 56 33 yes 10.200.0.176/29 10.0.0.125 56 Untagged yes 10.100.0.0/24 10.0.0.121 62 39 yes 10.100.0.0/24 10.0.0.125 62 Untagged yes Tagged interface correspond to interface in fib: root@core1:etc$ route -n get 10.100.0.1 route to: 10.100.0.1 destination: 10.100.0.0 mask: 255.255.255.0 gateway: 10.0.0.121 interface: vlan212 if address: 10.0.0.122 mpls label: PUSH 39 priority: 32 (ospf) flags: <UP,GATEWAY,DONE,MPATH,MPLS> use mtu expire 72 0 0 -------------------------------- Now I shutdown vlan211 on core1 with "ifconfig vlan211 down" No logs on core3 on core1: Sep 8 14:15:03 core1 ldpd[17310]: interface vlan211 down Sep 8 14:15:03 core1 ospfd[23127]: send_packet: error sending packet on interface vlan211: Network is down Sep 8 14:15:03 core1 ospfd[23127]: interface vlan211 down Sep 8 14:15:07 core1 ldpd[17310]: send_packet: error sending packet on interface vlan211: Network is down root@core3:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.9 1 FULL/DR 00:00:36 10.0.0.122 vlan212 00:37:17 10.0.0.9 1 DOWN/OTHER 00:00:54 10.0.0.126 vlan211 - root@core1:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.7 1 FULL/BCKUP 00:00:33 10.0.0.121 vlan212 00:37:08 10.0.0.7 1 DOWN/DOWN 00:01:18 10.0.0.125 vlan211 - root@core3:etc$ ldpctl sh nei ID State Address Iface Uptime 10.0.0.9 OPERATIONAL/ACTIVE 10.0.0.126 vlan211 00:11:40 root@core1:etc$ ldpctl sh nei ID State Address Iface Uptime 10.0.0.7 OPERATIONAL/DOWN 10.0.0.125 vlan211 00:11:35 -------------------------------- Next I restore vlan211 with "ifconfig vlan211 up" no logs on core3 on core1: Sep 8 14:17:45 core1 ldpd[17310]: interface vlan211 up Sep 8 14:17:45 core1 ospfd[23127]: interface vlan211 up root@core3:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.9 1 FULL/DR 00:00:37 10.0.0.122 vlan212 00:39:06 10.0.0.9 1 FULL/DR 00:00:37 10.0.0.126 vlan211 00:00:23 root@core1:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.7 1 FULL/BCKUP 00:00:34 10.0.0.121 vlan212 00:39:28 10.0.0.7 1 FULL/BCKUP 00:00:34 10.0.0.125 vlan211 00:00:45 -------------------------------- and shut down vlan212 on core1 with "ifconfig vlan212 down" Sep 8 14:19:09 core1 ospfd[23127]: interface vlan212 down Sep 8 14:19:09 core1 ldpd[17310]: interface vlan212 down Sep 8 14:19:12 core1 ldpd[17310]: send_packet: error sending packet on interface vlan212: Network is down root@core3:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.9 1 DOWN/OTHER 00:00:01 10.0.0.122 vlan212 - 10.0.0.9 1 FULL/DR 00:00:39 10.0.0.126 vlan211 00:01:51 root@core1:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.7 1 DOWN/DOWN 00:00:58 10.0.0.121 vlan212 - 10.0.0.7 1 FULL/BCKUP 00:00:39 10.0.0.125 vlan211 00:02:11 root@core3:etc$ ldpctl sh nei ID State Address Iface Uptime 10.0.0.9 OPERATIONAL/ACTIVE 10.0.0.126 vlan211 00:16:02 root@core1:etc$ ldpctl sh nei ID State Address Iface Uptime 10.0.0.7 OPERATIONAL/ACTIVE 10.0.0.125 vlan211 00:15:53 -------------------------------- next restore vlan212 with "ifconfig vlan212 up" Sep 8 14:21:59 core1 ospfd[23127]: interface vlan212 up Sep 8 14:21:59 core1 ldpd[17310]: interface vlan212 up root@core3:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.9 1 FULL/DR 00:00:38 10.0.0.122 vlan212 00:00:31 10.0.0.9 1 FULL/DR 00:00:38 10.0.0.126 vlan211 00:04:42 root@core1:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.7 1 FULL/BCKUP 00:00:36 10.0.0.121 vlan212 00:00:23 10.0.0.7 1 FULL/BCKUP 00:00:36 10.0.0.125 vlan211 00:04:33 -------------------------------- now shutdown vlan211 on core1 with "ifconfig vlan211 down" Sep 8 14:23:08 core1 ospfd[23127]: send_packet: error sending packet on interface vlan211: Network is down Sep 8 14:23:08 core1 ospfd[23127]: interface vlan211 down Sep 8 14:23:12 core1 ldpd[17310]: send_packet: error sending packet on interface vlan211: Network is down root@core3:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.9 1 FULL/DR 00:00:37 10.0.0.122 vlan212 00:02:02 10.0.0.9 1 DOWN/OTHER 00:00:23 10.0.0.126 vlan211 - root@core1:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.7 1 FULL/BCKUP 00:00:30 10.0.0.121 vlan212 00:01:49 10.0.0.7 1 DOWN/DOWN 00:00:47 10.0.0.125 vlan211 - -------------------------------- and kill ldpd on core1 Sep 8 14:24:36 core1 ldpd[17310]: if_leave_group: error IP_DROP_MEMBERSHIP, interface vlan211 address 224.0.0.2: Can't assign requested address Sep 8 14:24:36 core1 ldpd[30241]: label decision engine exiting Sep 8 14:24:36 core1 ldpd[17310]: if_act_reset: error leaving group 224.0.0.2, interface vlan211 Sep 8 14:24:36 core1 ldpd[17310]: ldp engine exiting Sep 8 14:24:36 core1 ospfd[7111]: mpath route not found Sep 8 14:24:36 core1 ospfd[7111]: alien OSPF route 10.0.0.120/30 Sep 8 14:24:37 core1 ldpd[8601]: kernel routing table decoupled Sep 8 14:24:37 core1 ldpd[8601]: terminating -------------------------------- now restart ldpd on core1 core3 logs: Sep 8 14:25:33 core3 ldpd[30289]: Connection attempt from unknown neighbor 10.0.0.122: NO HELLO Sep 8 14:25:48 core3 ldpd[5529]: send_rtmsg: action 3, AF 2, prefix 10.0.0.124/30: No such process core1 logs: Sep 8 14:25:18 core1 ldpd[30027]: startup Sep 8 14:25:23 core1 ldpd[11155]: received notification from neighbor 10.0.0.7: Session Rejected, No Hello root@core3:etc$ ldpctl sh nei ID State Address Iface Uptime 10.0.0.9 OPERATIONAL/ACTIVE 10.0.0.122 vlan212 00:00:41 root@core1:etc$ ldpctl sh nei ID State Address Iface Uptime 10.0.0.7 OPERATIONAL/ACTIVE 10.0.0.121 vlan212 00:00:54 -------------------------------- next do a "ifconfig vlan211 up" on core1: core3 logs: nothing core1 logs Sep 8 14:27:30 core1 ldpd[11155]: interface vlan211 up Sep 8 14:27:30 core1 ospfd[23127]: interface vlan211 up -------------------------------- And now "ifconfig em5 down" on core1 (em5 is vlan212 parent interface) root@core3:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.9 1 DOWN/OTHER 00:00:24 10.0.0.122 vlan212 - 10.0.0.9 1 FULL/DR 00:00:36 10.0.0.126 vlan211 00:01:44 root@core1:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.7 1 DOWN/OTHER 00:00:37 10.0.0.121 vlan212 - 10.0.0.7 1 FULL/BCKUP 00:00:34 10.0.0.125 vlan211 00:01:55 root@core3:etc$ ldpctl sh nei ID State Address Iface Uptime 10.0.0.11 OPERATIONAL/ACTIVE 10.0.0.49 vlan208 00:23:59 10.0.0.12 OPERATIONAL/ACTIVE 10.0.0.106 vlan216 00:24:12 root@core1:etc$ ldpctl sh nei ID State Address Iface Uptime ===> lpdctl say there's no more neighbor but ldpd table still have taggued routes: core1: ldpctl sh l Destination Nexthop Local Label Remote Label In Use ... 10.200.0.176/29 10.0.0.125 57 33 yes 10.100.0.0/24 10.0.0.125 63 39 yes root@core1:etc$ route -n get 10.100.0.1 route to: 10.100.0.1 destination: 10.100.0.0 mask: 255.255.255.0 gateway: 10.0.0.125 interface: vlan211 if address: 10.0.0.126 mpls label: PUSH 39 priority: 32 (ospf) flags: <UP,GATEWAY,DONE,MPLS> use mtu expire 0 0 0 sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA,SRC> I've verified: packets from core 1 to 10.100.0.1 are well pushed on vlan211 with mpls label 39. -------------------------------- Next "ifconfig em5 up" on core1 core3 logs: Sep 8 14:36:57 core3 ldpd[30289]: Connection attempt from unknown neighbor 10.0.0.122: NO HELLO Sep 8 14:37:13 core3 ospfd[15426]: mpath route not found Sep 8 14:37:13 core3 ospfd[15426]: alien OSPF route 10.0.0.124/30 core1 logs: Sep 8 14:36:48 core1 ldpd[11155]: received notification from neighbor 10.0.0.7: Session Rejected, No Hello root@core3:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.9 1 FULL/DR 00:00:38 10.0.0.122 vlan212 00:01:21 10.0.0.9 1 FULL/DR 00:00:37 10.0.0.126 vlan211 00:10:34 root@core1:etc$ ospfctl sh nei ID Pri State DeadTime Address Iface Uptime 10.0.0.7 1 FULL/BCKUP 00:00:36 10.0.0.121 vlan212 00:01:34 10.0.0.7 1 FULL/BCKUP 00:00:34 10.0.0.125 vlan211 00:10:46 root@core3:etc$ ldpctl show nei ID State Address Iface Uptime 10.0.0.9 OPERATIONAL/ACTIVE 10.0.0.122 vlan212 00:00:49 root@core1:etc$ ldpctl sh nei ID State Address Iface Uptime 10.0.0.7 OPERATIONAL/ACTIVE 10.0.0.121 vlan212 00:00:39 root@core1:etc$ ldpctl sh Destination Nexthop Local Label Remote Label In Use ... 10.200.0.176/29 10.0.0.125 57 33 yes 10.200.0.176/29 10.0.0.121 57 33 yes 10.100.0.0/24 10.0.0.125 63 39 yes 10.100.0.0/24 10.0.0.121 63 39 yes ==> now both interfaces are tagged ! The problem I've try to reproduce was: ldpd on core3 is using vlan212 to contact ldpd on core1 but core1 is doing the same thing on the other vlan (vlan211). So ldp sessions can't be establisehed. In the case ldpdctl sh nei diplayed something like: root@core3:etc$ ldpctl show nei ID State Address Iface Uptime 10.0.0.9 --Can't remember-- 10.0.0.126 vlan212 - root@core1:etc$ ldpctl sh nei ID State Address Iface Uptime 10.0.0.7 --Can't remember-- 10.0.0.121 vlan211 - with each host logs saying Connection attempt from unknown neighbor ... NO HELLO Manuel