BGP Next Hop Self

Hi,
I’m new at BGP and cannot get past a issue. I set up this simple lab:

R1:

R1#sh run | s bgp
router bgp 10
no synchronization
bgp router-id 1.1.1.1
bgp log-neighbor-changes
network 77.0.10.1 mask 255.255.255.255
neighbor 203.0.113.2 remote-as 20
no auto-summary

R2:

R2#sh run | s bgp
router bgp 20
no synchronization
bgp log-neighbor-changes
neighbor 203.0.113.1 remote-as 10
neighbor 203.0.113.6 remote-as 20
neighbor 203.0.113.6 next-hop-self
no auto-summary

R3:

R3#sh run | s bgp
router bgp 20
no synchronization
bgp log-neighbor-changes
network 88.0.20.1 mask 255.255.255.255
neighbor 203.0.113.5 remote-as 20
no auto-summary

I didn’t create any IGP protocol between R2 and R3 because they’re just directly connected

R1 cannot ping R3 Loopback 1 interface (88.0.20.1) unless I add the source param because there is no going back to R1 from R3:

R1# ping 88.0.20.1 source 77.0.10.1

So there is no communication between those routes actually unless I specify the source IP.

How can it be solved in a more realistic scenario? Am I missing some configuration?

Should a default route be redistributed via any IGP inside each AS pointing at the border route? I guess advertising 203.0.113.4/30 and 203.0.113.0/30 through eBGP is not a good option.

Thanks.