Ebtables

Nat

ebtables -t nat -A PREROUTING -d 00:11:22:33:44:55 -i eth0 -j dnat --to-destination 54:44:33:22:11:00

This will make all frames destined to 00:11:22:33:44:55 that arrived on interface eth0 be transferred to 54:44:33:22:11:00 instead. As this change of destination MAC address is done in the PREROUTING chain of the nat table, it is done before the bridge code makes the forwarding decision.

example.sh
int_if=zeoip2
int_mac=00:1A:D0:11:5F:18
ext_if=eth0
ext_mac=00:02:9B:93:AC:EA
 
ebtables -t nat -A PREROUTING -d $ext_mac -i $ext_if -j dnat --to-destination $int_mac
ebtables -t nat -A POSTROUTING -d $int_mac -i $int_if -j snat --to-destination $ext_mac