Hello Minh,
Redistributed routes in OSPF on a CE router is no problem. You only need a sham link when you have a backdoor link in between your CE routers.
By default, OSPF external routes don’t get redistributed into BGP but you can change that. Here’s a quick example:
CE1(config)#interface Loopback 1
CE1(config-if)#ip address 11.11.11.11 255.255.255.255
CE1(config)#ip access-list standard CE1_L0
CE1(config-std-nacl)#permit host 11.11.11.11
CE1(config)#route-map CE1_L1 permit 10
CE1(config-route-map)#match ip address CE1_L1
CE1(config)#router ospf 1
CE1(config-router)#redistribute connected route-map CE1_L1
On the PE1 router:
PE1(config)#router bgp 234
PE1(config-router)#address-family ipv4 vrf CUSTOMER
PE1(config-router-af)# redistribute ospf 2 match internal external 1 external 2
And it will show up on the other end:
CE2#show ip route | include 11.11
O E2 11.11.11.11 [110/20] via 192.168.45.4, 00:02:29, GigabitEthernet0/1
Hope this helps!
Rene