OK. I'll take it - as a penalty for my sarcasm
The problem will be the 4 pppoe-clients on your WAN interface. You have either have to have a static gateway ip address for each one - and a different one for every pppoe-client, not 4 times the same. Actually, not even 2 times the same
.
Other possibility is the use the (still beta!!!) RouterOS V3.x. There you can take advantage of a feature called "interface-based routing", where you can use the interface name as the next hop in a routing rule.
I'll try to give a short example for RouterOS v3.x.
This all is from memory, so please check exact syntax etc. You're always welcome back here to ask for further assistance.
You have to configure your ip addresses for the "client" ethernet interfaces. Like:
/ip address add address=192.168.1.1/24 interface=ether2
/ip address add address=192.168.2.1/24 interface=ether3
/ip address add address=192.168.3.1/24 interface=ether4
/ip address add address=192.168.4.1/24 interface=ether5
Then add 4 pppoe client interfaces on your WAN side ethernet port (ether1):
/interface pppoe-client add name=pppoe-out-for-ether2 interface=ether1 user=my_username1 password=my_password1 add-default-route=no
/interface pppoe-client add name=pppoe-out-for-ether3 interface=ether1 user=my_username2 password=my_password2 add-default-route=no
/interface pppoe-client add name=pppoe-out-for-ether4 interface=ether1 user=my_username3 password=my_password3 add-default-route=no
/interface pppoe-client add name=pppoe-out-for-ether5 interface=ether1 user=my_username4 password=my_password4 add-default-route=no
Please note, that you do NOT accept the default route your pppoe provider is giving to you!
Next, we masquerade traffic leaving the four pppoe client interfaces:
/ip firewall nat add chain=srcnat out-interface=pppoe-out-for-ether2 action=masquerade
/ip firewall nat add chain=srcnat out-interface=pppoe-out-for-ether3 action=masquerade
/ip firewall nat add chain=srcnat out-interface=pppoe-out-for-ether4 action=masquerade
/ip firewall nat add chain=srcnat out-interface=pppoe-out-for-ether5 action=masquerade
Then you need mangle rules to create routing marks to direct the traffic from the different LAN interfaces out the right pppoe client interface:
/ip firewall mangle add chain=prerouting in-interface=ether2 action=mark-routing new-routing-mark=out-from-ether2
/ip firewall mangle add chain=prerouting in-interface=ether3 action=mark-routing new-routing-mark=out-from-ether3
/ip firewall mangle add chain=prerouting in-interface=ether4 action=mark-routing new-routing-mark=out-from-ether4
/ip firewall mangle add chain=prerouting in-interface=ether5 action=mark-routing new-routing-mark=out-from-ether5
Then ip routing entries to utilize those new shining routing marks:
/ip route add dst-address=0.0.0.0/0 routing-mark=out-from-ether2 gateway=pppoe-out-for-ether2
/ip route add dst-address=0.0.0.0/0 routing-mark=out-from-ether2 gateway=pppoe-out-for-ether3
/ip route add dst-address=0.0.0.0/0 routing-mark=out-from-ether2 gateway=pppoe-out-for-ether4
/ip route add dst-address=0.0.0.0/0 routing-mark=out-from-ether2 gateway=pppoe-out-for-ether5
Then you should add some firewall code to disallow the clients from the different LAN interfaces (ether2-5) to talk to each other (unless this is wanted behaviour), secure your router, ...
I'm quite sure that there are some typos etc. in the commands up there, because I'm in a hurry - but they should get you going into the right direction. Without V3.x (interface-based routing) you could try to get the correct routing by some clever src-natting etc. rules. But that's over my head in the hurry right now
Best regards,
Christian Meis
PS: And yes, sarcasm is healthy