for those of you who comes here, it was the masquerading.
firewall-cmd --zone=public --remove-masquerade
and it works.
Zone public because the configuration described in the question wasn't the active one, and both bond0 and both1 were added to zone public