2 PPPoE, Same Gateway IP, difficulties seperating VOIP / LAN traffic.

Good day,

I am in great need of help, I am configuring 2 PPPoE WAN connections, and want to route all VOIP traffic via 1 and other traffic via the 2nd. But nothing I have tried thus far has been successful.

Both PPPoE connections are dialed through ether1, and both obtains the same gateway (10.74.0.254), which is where my problem comes in.

I have created both PPPoE connections, which automatically add default-routes and have setup Masquerade rules for both.

The PPPoE connections obtain the following IP’s:
PPPoE-Internet IP > 10.74.0.1
PPPoE-VOIP IP > 10.74.0.2
Gateway of both IP > 10.74.0.254

The moment I enable the PPPoE-Voip connection it connects, and both gateways show up as one combined Route.
But immediately the internet is no longer accessible from the LAN devices, yet my teamviewer remains connected.

My TX on the PPPoE-Internet interface drops to zero, and all appears to go out of PPPoE-Voip yet the RX packets are active and running on both PPPoE connections.

When I run Torch on the PPPoE interfaces I pick up communications with dst of 10.74.0.254 from numerous Public IP’s.

Please see below a mock script to give you an idea of what im working with.

/interface ethernet 
set [ find default-name=ether1 ] name=ether1_wan
set [ find default-name=ether2 ] name=ether2_lan master-port=[ find default-name=ether5 ]
set [ find default-name=ether3 ] name=ether3_lan master-port=[ find default-name=ether5 ]
set [ find default-name=ether4 ] name=ether4_lan master-port=[ find default-name=ether5 ]
set [ find default-name=ether5 ] name=ether5_lan
/ip address
add address=10.0.36.1/24 interface=ether5_lan network=10.0.36.0
/ip pool
add name=dhcp_pool1 ranges=10.0.36.50-10.0.36.199
/ip dhcp-server
add address-pool=dhcp_pool1 disabled=no interface=ether5_lan name=LAN lease-time=7d
/ip dhcp-server network
add address=10.0.36.0/24 gateway=10.0.36.1 dns-server=10.0.36.1
/interface pppoe-client
add disabled=no add-default-route=yes  use-peer-dns=yes mrru=1600 \
keepalive-timeout=120 interface=PPPoE-Internet name=ether1_wan \
user=internet@isp.co.za password=abc123efg comment="10mbps Link"
add disabled=no add-default-route=yes  use-peer-dns=no mrru=1600 \
keepalive-timeout=120 interface=PPPoE-Voip name=ether2_wan \
user=voip@isp.co.za password=abc123efg comment="1mbps Link"
/ip firewall mangle
add action=mark-connection chain=postrouting comment="VOIP UP" dst-port=\
    5060,5061,5004,5005,5010,5521,11000,10000,1719,16384,13392 \
    new-connection-mark=voipupconn out-interface=PPPoE-Internet protocol=udp
add action=mark-connection chain=postrouting dst-port=\
    5082,3478,2427,19295,19302,5243,7985 new-connection-mark=voipupconn \
    out-interface=PPPoE-Internet protocol=udp
add action=mark-packet chain=postrouting connection-mark=voipupconn \
    new-packet-mark=voipup passthrough=no
add action=mark-connection chain=prerouting comment="VOIP DOWN" in-interface=\
    PPPoE-Internet new-connection-mark=voipdownconn protocol=udp src-port=\
    5060,5061,5004,5005,5010,5521,11000,10000,1719,16384,13392
add action=mark-connection chain=prerouting in-interface=PPPoE-Internet \
    new-connection-mark=voipdownconn protocol=udp src-port=\
    5082,3478,2427,19295,19302,5243,7985
add action=mark-packet chain=prerouting connection-mark=voipdownconn \
    new-packet-mark=voipdown passthrough=no
add action=mark-connection chain=postrouting comment="OTHER UP" \
    new-connection-mark=otherupconn out-interface=PPPoE-Internet
add action=mark-packet chain=postrouting connection-mark=oth
    new-packet-mark=otherup passthrough=no
add action=mark-connection chain=prerouting comment="OTHER D
    PPPoE-Internet new-connection-mark=otherdownconn
add action=mark-packet chain=prerouting connection-mark=othe
    new-packet-mark=otherdown passthrough=no
/queue tree
add name=DOWN parent=global queue=PCQ_DOWN
add name=UP parent=PPPoE-Internet queue=PCQ_UP
add max-limit=2M name="VOIP UP" packet-mark=voipup parent=UP priority=1 queue=\
    default
add max-limit=2M name="VOIP DOWN" packet-mark=voipdown parent=DOWN priority=1 \
    queue=default
add max-limit=8M name="OTHER UP" packet-mark=otherup parent=UP queue=default
add max-limit=8M name="OTHER DOWN" packet-mark=otherdown parent=DOWN queue=\
    default
/ip firewall nat
add chain=srcnat out-interface=PPPoE-Internet action=masquerade
add chain=srcnat out-interface=PPPoE-Voip action=masquerade
/ip route
add dst-address=0.0.0.0/0 gateway=10.74.0.254 disabled=yes \
comment="Disabled as PPPoE automatically adds default-route"
add dst-address=196.6.122.104 gateway=10.74.0.254 disabled=no
/ip dns
set allow-remote-requests=yes servers=172.16.0.1,8.8.8.8\
allow-remote-requests=yes cache-size=10240KiB

Thanks in advance =).

Solved by disabling the PPPoE connections from creating a default route, then manually added 2 routes.

/ip route
add dst-address=0.0.0.0/0 gateway=PPPoE-Internet disabled=no \
comment="Default Route for Internet"
add dst-address=196.6.122.104 gateway=PPPoE-VOIP disabled=no \
comment="Default Route for VOIP

Now when I ping the IP 196.6.122.104 it successfully routes via the VOIP connection, whereas any other traffic automatically runs through Internet PPPoE connection.