04-26-2018 04:16 PM - edited 03-05-2019 10:21 AM
Hello,
I have a question that I hope someone can help. For some reason, I cannot ping the networks behind MGGS1-RR1 from the Core-RT and vice versa. When I issued the "show ip route" command on MGGS1-RR1, I only saw the two directly connected networks on the routing table. It looks like its routes are not advertised on the neighbor router, NRR1. I would appreciate it if someone could point to where the missing step(s) is/are. Please refer to the configuration files and the diagram below:
-------------------------------------------------------------------------------------
hostname Core-RT
!
interface Loopback0
description "Core Router Loopback IP Address"
ip address 1.1.1.1 255.255.255.255
ip ospf 100 area 0
!
interface Ethernet0/0
description "Link to RSW1"
ip address 10.10.10.1 255.255.255.0
ip ospf 100 area 0
!
router ospf 100
router-id 1.1.1.1
!
router bgp 400
bgp router-id 1.1.1.1
bgp log-neighbor-changes
redistribute connected
neighbor 10.10.30.2 remote-as 400
neighbor 10.10.30.2 update-source Ethernet0/0
!
Core-RT#
-----------------------------------------------------------------------------------
hostname RSW
!
interface Loopback0
description "RSW Loopback IP Address"
ip address 4.4.4.4 255.255.255.255
ip ospf 100 area 0
!
interface Ethernet0/0
description "Link to Core Router Ethernet0/0"
no switchport
ip address 10.10.10.2 255.255.255.0
ip ospf 100 area 0
!
interface Ethernet0/1
description "Link to RR #1 Ethernet0/0"
no switchport
ip address 10.10.30.1 255.255.255.0
ip ospf 100 area 0
!
router ospf 100
router-id 4.4.4.4
!
RSW#
-------------------------------------------------------------------------------------
hostname RR1
!
interface Loopback0
description "RR#1 Loopback IP Address"
ip address 2.2.2.2 255.255.255.255
ip ospf 100 area 0
!
interface Ethernet0/1
description "Link to RSW"
ip address 10.10.30.2 255.255.255.0
ip ospf 100 area 0
!
interface Ethernet1/0
description "Link to NRR1"
ip address 10.10.20.2 255.255.255.0
!
router ospf 100
router-id 2.2.2.2
redistribute bgp 400 subnets
!
router bgp 400
bgp router-id 2.2.2.2
bgp log-neighbor-changes
bgp redistribute-internal
network 2.2.2.2 mask 255.255.255.255
network 10.10.20.0 mask 255.255.255.0
redistribute ospf 100 route-map OSPF-To-BGP
neighbor 10.10.10.1 remote-as 400
neighbor 10.10.10.1 update-source Ethernet0/1
neighbor 10.10.10.1 next-hop-self
neighbor 10.10.20.1 remote-as 300
neighbor 10.10.20.1 ebgp-multihop 2
neighbor 10.10.20.1 update-source Ethernet1/0
neighbor 10.10.20.1 next-hop-self
!
route-map OSPF-To-BGP permit 10
match ip address 1
set metric 150
set tag 10
!
access-list 1 permit 1.1.1.1 log
access-list 1 permit 4.4.4.4 log
access-list 1 permit 10.10.10.0 0.0.0.255 log
access-list 1 permit 10.10.30.0 0.0.0.255 log
access-list 1 deny any log
!
end
RR1#
-------------------------------------------------------------------------------------
hostname NRR1
!
interface Loopback0
description "NRR1 Loopback IP Address"
ip address 3.3.3.3 255.255.255.255
!
interface Ethernet0/0
description "Link to MGGS1 - RR1"
ip address 10.10.40.2 255.255.255.0
!
interface Ethernet1/0
description "Link to RR1"
ip address 10.10.20.1 255.255.255.0
!
router bgp 300
bgp router-id 3.3.3.3
bgp log-neighbor-changes
network 3.3.3.3 mask 255.255.255.255
network 10.10.20.0 mask 255.255.255.0
network 10.10.40.0 mask 255.255.255.0
neighbor 10.10.20.2 remote-as 400
neighbor 10.10.20.2 ebgp-multihop 2
neighbor 10.10.20.2 update-source Ethernet1/0
neighbor 10.10.40.1 remote-as 400
neighbor 10.10.40.1 ebgp-multihop 2
neighbor 10.10.40.1 update-source Ethernet0/0
!
end
NRR1#
------------------------------------------------------------------------------------
hostname MGGS1-RR1
!
interface Loopback0
description "MGGS-1 - RR1 Loopback IP Address"
ip address 5.5.5.5 255.255.255.255
!
interface Ethernet0/0
description "Link to RR1"
ip address 10.10.40.1 255.255.255.0
!
router bgp 400
bgp router-id 5.5.5.5
bgp log-neighbor-changes
network 5.5.5.5 mask 255.255.255.255
neighbor 10.10.40.2 remote-as 300
neighbor 10.10.40.2 ebgp-multihop 2
neighbor 10.10.40.2 update-source Ethernet0/0
!
end
MGGS1-RR1#
-----------------------------------------------------------------------------------
+ Output from show commands:
Core-RT#sho ip bgp summary
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.10.30.2 4 400 278 274 19 0 0 04:03:40 8
Core-RT#
Core-RT#sho ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.1/32 0.0.0.0 0 32768 ?
* i 10.10.30.2 150 100 0 ?
r>i 2.2.2.2/32 10.10.30.2 0 100 0 i
r>i 3.3.3.3/32 10.10.30.2 0 100 0 300 i
r>i 4.4.4.4/32 10.10.30.2 150 100 0 ?
*> 10.10.10.0/24 0.0.0.0 0 32768 ?
* i 10.10.30.2 150 100 0 ?
r>i 10.10.20.0/24 10.10.30.2 0 100 0 i
r>i 10.10.30.0/24 10.10.30.2 150 100 0 ?
r>i 10.10.40.0/24 10.10.30.2 0 100 0 300 i
Core-RT#sho ip route
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
C 1.1.1.1 is directly connected, Loopback0
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/21] via 10.10.10.2, 20:39:37, Ethernet0/0
3.0.0.0/32 is subnetted, 1 subnets
O E2 3.3.3.3 [110/1] via 10.10.10.2, 03:57:03, Ethernet0/0
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/11] via 10.10.10.2, 20:41:13, Ethernet0/0
10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
C 10.10.10.0/24 is directly connected, Ethernet0/0
L 10.10.10.1/32 is directly connected, Ethernet0/0
O E2 10.10.20.0/24 [110/1] via 10.10.10.2, 20:28:03, Ethernet0/0
O 10.10.30.0/24 [110/20] via 10.10.10.2, 20:41:13, Ethernet0/0
O E2 10.10.40.0/24 [110/1] via 10.10.10.2, 03:57:03, Ethernet0/0
Core-RT#
RSW#sho ip ospf neigh
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 FULL/DR 00:00:37 10.10.10.1 Ethernet0/0
2.2.2.2 1 FULL/BDR 00:00:32 10.10.30.2 Ethernet0/1
RSW#sho ip route
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
O 1.1.1.1 [110/11] via 10.10.10.1, 20:42:23, Ethernet0/0
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/11] via 10.10.30.2, 20:40:43, Ethernet0/1
3.0.0.0/32 is subnetted, 1 subnets
O E2 3.3.3.3 [110/1] via 10.10.30.2, 03:58:09, Ethernet0/1
4.0.0.0/32 is subnetted, 1 subnets
C 4.4.4.4 is directly connected, Loopback0
10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
C 10.10.10.0/24 is directly connected, Ethernet0/0
L 10.10.10.2/32 is directly connected, Ethernet0/0
O E2 10.10.20.0/24 [110/1] via 10.10.30.2, 20:29:10, Ethernet0/1
C 10.10.30.0/24 is directly connected, Ethernet0/1
L 10.10.30.1/32 is directly connected, Ethernet0/1
O E2 10.10.40.0/24 [110/1] via 10.10.30.2, 03:58:09, Ethernet0/1
RR1#sho ip bgp summary
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.10.10.1 4 400 270 273 11 0 0 03:59:31 2
10.10.20.1 4 300 281 269 11 0 0 03:59:38 3
RR1#sho ip bgp
Network Next Hop Metric LocPrf Weight Path
* i 1.1.1.1/32 10.10.10.1 0 100 0 ?
*> 10.10.30.1 150 32768 ?
*> 2.2.2.2/32 0.0.0.0 0 32768 i
*> 3.3.3.3/32 10.10.20.1 0 0 300 i
*> 4.4.4.4/32 10.10.30.1 150 32768 ?
* i 10.10.10.0/24 10.10.10.1 0 100 0 ?
*> 10.10.30.1 150 32768 ?
*> 10.10.20.0/24 0.0.0.0 0 32768 i
* 10.10.20.1 0 0 300 i
*> 10.10.30.0/24 0.0.0.0 150 32768 ?
*> 10.10.40.0/24 10.10.20.1 0 0 300 i
RR1#sho ip route
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
O 1.1.1.1 [110/21] via 10.10.30.1, 20:41:20, Ethernet0/1
2.0.0.0/32 is subnetted, 1 subnets
C 2.2.2.2 is directly connected, Loopback0
3.0.0.0/32 is subnetted, 1 subnets
B 3.3.3.3 [20/0] via 10.10.20.1, 03:58:49
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/11] via 10.10.30.1, 20:41:20, Ethernet0/1
10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
O 10.10.10.0/24 [110/20] via 10.10.30.1, 20:41:20, Ethernet0/1
C 10.10.20.0/24 is directly connected, Ethernet1/0
L 10.10.20.2/32 is directly connected, Ethernet1/0
C 10.10.30.0/24 is directly connected, Ethernet0/1
L 10.10.30.2/32 is directly connected, Ethernet0/1
B 10.10.40.0/24 [20/0] via 10.10.20.1, 03:58:49
NRR1#sho ip bgp summary
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.10.20.2 4 400 270 282 28 0 0 04:00:35 6
10.10.40.1 4 400 280 291 28 0 0 04:00:41 1
NRR1#sho ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.1/32 10.10.20.2 150 0 400 ?
*> 2.2.2.2/32 10.10.20.2 0 0 400 i
*> 3.3.3.3/32 0.0.0.0 0 32768 i
*> 4.4.4.4/32 10.10.20.2 150 0 400 ?
*> 5.5.5.5/32 10.10.40.1 0 0 400 i
*> 10.10.10.0/24 10.10.20.2 150 0 400 ?
* 10.10.20.0/24 10.10.20.2 0 0 400 i
*> 0.0.0.0 0 32768 i
*> 10.10.30.0/24 10.10.20.2 150 0 400 ?
*> 10.10.40.0/24 0.0.0.0 0 32768 i
NRR1#sho ip route
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
B 1.1.1.1 [20/150] via 10.10.20.2, 03:29:44
2.0.0.0/32 is subnetted, 1 subnets
B 2.2.2.2 [20/0] via 10.10.20.2, 03:29:44
3.0.0.0/32 is subnetted, 1 subnets
C 3.3.3.3 is directly connected, Loopback0
4.0.0.0/32 is subnetted, 1 subnets
B 4.4.4.4 [20/150] via 10.10.20.2, 03:29:44
5.0.0.0/32 is subnetted, 1 subnets
B 5.5.5.5 [20/0] via 10.10.40.1, 03:29:44
10.0.0.0/8 is variably subnetted, 8 subnets, 2 masks
B 10.10.10.0/24 [20/150] via 10.10.20.2, 03:29:44
C 10.10.20.0/24 is directly connected, Ethernet1/0
L 10.10.20.1/32 is directly connected, Ethernet1/0
B 10.10.30.0/24 [20/150] via 10.10.20.2, 03:29:44
C 10.10.40.0/24 is directly connected, Ethernet0/0
L 10.10.40.2/32 is directly connected, Ethernet0/0
C 10.10.100.0/24 is directly connected, Ethernet0/1
L 10.10.100.2/32 is directly connected, Ethernet0/1
MGGS1-RR1#sho ip bgp summary
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.10.40.2 4 300 292 281 14 0 0 04:01:32 3
MGGS1-RR1#sho ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 3.3.3.3/32 10.10.40.2 0 0 300 i
*> 5.5.5.5/32 0.0.0.0 0 32768 i
*> 10.10.20.0/24 10.10.40.2 0 0 300 i
r> 10.10.40.0/24 10.10.40.2 0 0 300 i
MGGS1-RR1#sho ip route
Gateway of last resort is not set
3.0.0.0/32 is subnetted, 1 subnets
B 3.3.3.3 [20/0] via 10.10.40.2, 01:08:18
5.0.0.0/32 is subnetted, 1 subnets
C 5.5.5.5 is directly connected, Loopback0
10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
B 10.10.20.0/24 [20/0] via 10.10.40.2, 01:08:18
C 10.10.40.0/24 is directly connected, Ethernet0/0
L 10.10.40.1/32 is directly connected, Ethernet0/0
Thank you in advance.
Solved! Go to Solution.
04-26-2018 08:47 PM - edited 04-26-2018 08:57 PM
Hi,
I am not sure about this static route and why would you need it, but you don't have any static routes in your first post and you don't need any.
The reason you don't have connectivity to 5.5.5.5 from Core RT or RR1 because they are in the AS 400 and 5.5.5.5 also originates from AS 400, this is a loop prevention mechanism used by BGP, when a BGP speaking router receives a prefix that includes it's own AS in the AS PATH it won't accept it. So MGGS1-RR1 won't accept any prefix advertised by Core RT or RR1 and vice versa.
There are two ways to resolve this issue and I am sharing the one that I used:
On RR1 use this command:
router bgp 400
neighbor 10.10.20.1 allowas-in
On MGGS1-RR1 use this command:
router bgp 400
neighbor 10.10.40.2 allowas-in
- After making all these changes I was able to ping 5.5.5.5 from loop back 0 of core RT
Core-RT#ping 5.5.5.5 source loop 0 repeat 1000
Type escape sequence to abort.
Sending 1000, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (1000/1000), round-trip min/avg/max = 44/125/172 ms
Core-RT#sh ip bgp
BGP table version is 57, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, x best-external, f RT-Filter
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* i1.1.1.1/32 10.10.30.2 150 100 0 ?
*> 0.0.0.0 0 32768 ?
r>i2.2.2.2/32 10.10.30.2 0 100 0 i
r>i3.3.3.3/32 10.10.30.2 0 100 0 300 i
r>i4.4.4.4/32 10.10.30.2 150 100 0 ?
r>i5.5.5.5/32 10.10.30.2 0 100 0 300 400 i
* i10.10.10.0/24 10.10.30.2 150 100 0 ?
*> 0.0.0.0 0 32768 ?
r>i10.10.20.0/24 10.10.30.2 0 100 0 i
r>i10.10.30.0/24 10.10.30.2 150 100 0 ?
r>i10.10.40.0/24 10.10.30.2 0 100 0 300 i
MGGS1-RR1#sh ip bgp
BGP table version is 14, local router ID is 5.5.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, x best-external, f RT-Filter
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.1/32 10.10.40.2 0 300 400 ?
*> 2.2.2.2/32 10.10.40.2 0 300 400 i
*> 3.3.3.3/32 10.10.40.2 0 0 300 i
*> 4.4.4.4/32 10.10.40.2 0 300 400 ?
* 5.5.5.5/32 10.10.40.2 0 300 400 i
*> 0.0.0.0 0 32768 i
*> 10.10.10.0/24 10.10.40.2 0 300 400 ?
*> 10.10.20.0/24 10.10.40.2 0 0 300 i
*> 10.10.30.0/24 10.10.40.2 0 300 400 ?
r> 10.10.40.0/24 10.10.40.2 0 0 300 i
- BGP rib failure is occurring in AS 400 because you are learning loopback address from ospf which has AD of 110 vs iBGP AD of 200, nothing to do with static routes. Also you don't need to use to ebgp-multihop command since you are peering using directly connected interfaces and neighbor is only 1 hop away anyways and also the update source because by default it will use the directly connected interface.
04-26-2018 05:36 PM
your 1.1.1.1 route exists on NRR1. so the problem seems to be between NRR1 and MSGC-RR1
if you do sh bgp nei 10.10.40.1 advertised-routes on NRR1 does it actually advertise its routes out to MSG-RR1?
04-26-2018 05:44 PM
Hi Mink,
Please see the output from the show command that you suggested.
NRR1#sho ip bgp neighbors 10.10.40.1 advertised-routes
BGP table version is 22, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.1/32 10.10.40.1 0 400 ?
*> 2.2.2.2/32 10.10.20.2 0 0 400 i
*> 3.3.3.3/32 0.0.0.0 0 32768 i
*> 4.4.4.4/32 10.10.20.2 150 0 400 ?
*> 5.5.5.5/32 10.10.40.1 0 0 400 i
*> 10.10.10.0/24 10.10.40.1 0 400 ?
*> 10.10.20.0/24 0.0.0.0 0 32768 i
*> 10.10.30.0/24 10.10.20.2 150 0 400 ?
*> 10.10.40.0/24 0.0.0.0 0 32768 i
Total number of prefixes 9
NRR1#
04-26-2018 05:47 PM
Hello Mink,
The output provided earlier was generated after I inserted the static route into MGGS1-RR1 as follows:
ip route 10.10.10.0 255.255.255.0 10.10.40.2
I really want the routes to learn through BGP and not static routes. Is there a way to do that?
Thanks
04-26-2018 07:31 PM
Yes you shouldnt need to use static routes when you have BGP, you can but its not a requirement.
is the BGP neighbour ship between your mscg-rr1 and nrr1 established at all?
04-26-2018 08:47 PM - edited 04-26-2018 08:57 PM
Hi,
I am not sure about this static route and why would you need it, but you don't have any static routes in your first post and you don't need any.
The reason you don't have connectivity to 5.5.5.5 from Core RT or RR1 because they are in the AS 400 and 5.5.5.5 also originates from AS 400, this is a loop prevention mechanism used by BGP, when a BGP speaking router receives a prefix that includes it's own AS in the AS PATH it won't accept it. So MGGS1-RR1 won't accept any prefix advertised by Core RT or RR1 and vice versa.
There are two ways to resolve this issue and I am sharing the one that I used:
On RR1 use this command:
router bgp 400
neighbor 10.10.20.1 allowas-in
On MGGS1-RR1 use this command:
router bgp 400
neighbor 10.10.40.2 allowas-in
- After making all these changes I was able to ping 5.5.5.5 from loop back 0 of core RT
Core-RT#ping 5.5.5.5 source loop 0 repeat 1000
Type escape sequence to abort.
Sending 1000, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (1000/1000), round-trip min/avg/max = 44/125/172 ms
Core-RT#sh ip bgp
BGP table version is 57, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, x best-external, f RT-Filter
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* i1.1.1.1/32 10.10.30.2 150 100 0 ?
*> 0.0.0.0 0 32768 ?
r>i2.2.2.2/32 10.10.30.2 0 100 0 i
r>i3.3.3.3/32 10.10.30.2 0 100 0 300 i
r>i4.4.4.4/32 10.10.30.2 150 100 0 ?
r>i5.5.5.5/32 10.10.30.2 0 100 0 300 400 i
* i10.10.10.0/24 10.10.30.2 150 100 0 ?
*> 0.0.0.0 0 32768 ?
r>i10.10.20.0/24 10.10.30.2 0 100 0 i
r>i10.10.30.0/24 10.10.30.2 150 100 0 ?
r>i10.10.40.0/24 10.10.30.2 0 100 0 300 i
MGGS1-RR1#sh ip bgp
BGP table version is 14, local router ID is 5.5.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, x best-external, f RT-Filter
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.1/32 10.10.40.2 0 300 400 ?
*> 2.2.2.2/32 10.10.40.2 0 300 400 i
*> 3.3.3.3/32 10.10.40.2 0 0 300 i
*> 4.4.4.4/32 10.10.40.2 0 300 400 ?
* 5.5.5.5/32 10.10.40.2 0 300 400 i
*> 0.0.0.0 0 32768 i
*> 10.10.10.0/24 10.10.40.2 0 300 400 ?
*> 10.10.20.0/24 10.10.40.2 0 0 300 i
*> 10.10.30.0/24 10.10.40.2 0 300 400 ?
r> 10.10.40.0/24 10.10.40.2 0 0 300 i
- BGP rib failure is occurring in AS 400 because you are learning loopback address from ospf which has AD of 110 vs iBGP AD of 200, nothing to do with static routes. Also you don't need to use to ebgp-multihop command since you are peering using directly connected interfaces and neighbor is only 1 hop away anyways and also the update source because by default it will use the directly connected interface.
04-27-2018 10:03 AM
You rock!!! I am able to ping back and forth after adding the recommended changes and removing the unnecessary lines in the BGP configuration files. I am truly amazed by the knowledge and expert advices from this Support Group.
Thank you very much for your help coffee...
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide