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.

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