OSPF Hello Source Address

I had OSPF running between two routers, r1 & r2. r1 has IP 172.16.0.1/29, r2 has 172.16.0.2/29. This worked perfectly fine until I add a loopback interface on r2, with IP 10.0.0.2/32. OSPF Hello packets from r2 are now sourced from the loopback address, instead of from the physical interface address (172.16.0.2). r1 ignores the Hellos as coming from an unknown network.

I’m assuming that the lowest IP is used as the source address for the Hello packets. Is there a way to force it to use the physical address?

Additional info:
I added a loopback interface to r1 with IP 10.0.0.1/32. It uses the physical interface address (172.16.0.1) as the source address for OSPF traffic.

I tried disabling both the loopback interface and its address (10.0.0.2/32) on r2, and also tried removing the address, but OSPF packets still source from the loopback IP.

The OSPF router ID is the physical interface address, 172.16.0.2.

Both routers are running 3.6.