Mikrotik split traffic local and international

xPython

Member
Joined
Oct 20, 2009
Messages
27
Reaction score
0
Location
Bloemfontein
Last edited:

I got that board, my problem is that xbox live need port 3074 open on your router. If i portforward my international and local , me friends that uses normal routing can connect but if somybody split traffic on one or another way we can not connect. When i disable the portforward on the international pppoe and only local is open, he can connect. so if i got a moderate nat (cone nat on live) and an open on local we can connect. I need to have open nat on both the pppoe
 
Last edited:
I got the mikrotik about 3 weeks now but feel i can pay somebody to sort it out. The split happens end we play but more and more people start doing the static route thing and then it is going to make problems? Help please. In principle the split can not work because live is in england but xboxlive is only an index server and traffic is all peer to peer
 
Last edited:
xPython,

When your friend connect to your international ip, your router sense that its a local ip, and send the reply out via the local interface. When your friend receives the packet, the packet comes from a different ip, and thus drops it.

Run the following script on your router, which will mark the packets coming in on the international interface and make sure it gets sent out through the same interface. Just replace "adslINTL" with your adsl international interface name.

Code:
/ip firewall mangle
add action=mark-connection chain=input comment="Mark adslINTL packets" disabled=no in-interface=adslINTL new-connection-mark=adslINTL passthrough=yes
add action=mark-connection chain=forward comment="Mark adslINTL packets" disabled=no in-interface=adslINTL new-connection-mark=adslINTL passthrough=yes
add action=mark-connection chain=prerouting comment="Mark adslINTL packets" disabled=no in-interface=adslINTL new-connection-mark=adslINTL passthrough=yes
add action=mark-routing chain=prerouting comment="if adslINTL mark coming from ether1, mark routing" connection-mark=adslINTL disabled=no in-interface=ether1 new-routing-mark=adslINTL passthrough=yes
add action=mark-routing chain=output comment="if adslINTL mark, mark routing" connection-mark=adslINTL disabled=no new-routing-mark=adslINTL passthrough=yes
/ip route
add comment="Route adslINTL packets via adslINTL" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=adslINTL routing-mark=adslINTL scope=30 target-scope=10

This script assumes you are using ether1 as your internal interface where your computer connects.

If you dont come right, come chat to me on irc (irc://irc.ctwug.za.net/) Channel #ctwug My nick is TFyre

Cheers,
Francois
 
xPython,

When your friend connect to your international ip, your router sense that its a local ip, and send the reply out via the local interface. When your friend receives the packet, the packet comes from a different ip, and thus drops it.

Run the following script on your router, which will mark the packets coming in on the international interface and make sure it gets sent out through the same interface. Just replace "adslINTL" with your adsl international interface name.

Code:
/ip firewall mangle
add action=mark-connection chain=input comment="Mark adslINTL packets" disabled=no in-interface=adslINTL new-connection-mark=adslINTL passthrough=yes
add action=mark-connection chain=forward comment="Mark adslINTL packets" disabled=no in-interface=adslINTL new-connection-mark=adslINTL passthrough=yes
add action=mark-connection chain=prerouting comment="Mark adslINTL packets" disabled=no in-interface=adslINTL new-connection-mark=adslINTL passthrough=yes
add action=mark-routing chain=prerouting comment="if adslINTL mark coming from ether1, mark routing" connection-mark=adslINTL disabled=no in-interface=ether1 new-routing-mark=adslINTL passthrough=yes
add action=mark-routing chain=output comment="if adslINTL mark, mark routing" connection-mark=adslINTL disabled=no new-routing-mark=adslINTL passthrough=yes
/ip route
add comment="Route adslINTL packets via adslINTL" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=adslINTL routing-mark=adslINTL scope=30 target-scope=10

This script assumes you are using ether1 as your internal interface where your computer connects.

If you dont come right, come chat to me on irc (irc://irc.ctwug.za.net/) Channel #ctwug My nick is TFyre

Cheers,
Francois

Im got my dlink modem on ether1 with the 2 pppoe and xbox on ether 2. My only rules is 2 scrnat rules for me pppoe and 2 dstnat rules to open me port on local and on international. Thank alot.
 
Tfyre, what you tell me that i can not split the traffic and it must always go through international. I only uses me adsl for xbox gaming
 
Last edited:
Nope, not at all. What I am saying is, when a network packet comes in on your international interface, you must send it out on your international interface. Any other rules you are running will still run the way they are suppose to. I also have 2 adsl accounts and split them just as you described :)
 
Nope, not at all. What I am saying is, when a network packet comes in on your international interface, you must send it out on your international interface. Any other rules you are running will still run the way they are suppose to. I also have 2 adsl accounts and split them just as you described :)

Gonna try tonight,I will let you know

Thanks


Michael
 
If you dont come right, come chat on irc (http://wiki.ctwug.za.net/index.php/CTWUG_IRC)

The weirdest thing is when I disable the dstnat rule that port fortward my international side and comms happens. I can not leaf it like that because sometimes play against international people also. If somebody got only 1 wan ip i can connect, but a friend of mine uses routesentry with his international on the router and local on rasppoe and share it with ICS to his xbox. he can again connect to everybody not me.

Going to try your fix tonight

Thanks again
 
xPython,

When your friend connect to your international ip, your router sense that its a local ip, and send the reply out via the local interface. When your friend receives the packet, the packet comes from a different ip, and thus drops it.

Run the following script on your router, which will mark the packets coming in on the international interface and make sure it gets sent out through the same interface. Just replace "adslINTL" with your adsl international interface name.

Code:
/ip firewall mangle
add action=mark-connection chain=input comment="Mark adslINTL packets" disabled=no in-interface=adslINTL new-connection-mark=adslINTL passthrough=yes
add action=mark-connection chain=forward comment="Mark adslINTL packets" disabled=no in-interface=adslINTL new-connection-mark=adslINTL passthrough=yes
add action=mark-connection chain=prerouting comment="Mark adslINTL packets" disabled=no in-interface=adslINTL new-connection-mark=adslINTL passthrough=yes
add action=mark-routing chain=prerouting comment="if adslINTL mark coming from ether1, mark routing" connection-mark=adslINTL disabled=no in-interface=ether1 new-routing-mark=adslINTL passthrough=yes
add action=mark-routing chain=output comment="if adslINTL mark, mark routing" connection-mark=adslINTL disabled=no new-routing-mark=adslINTL passthrough=yes
/ip route
add comment="Route adslINTL packets via adslINTL" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=adslINTL routing-mark=adslINTL scope=30 target-scope=10

This script assumes you are using ether1 as your internal interface where your computer connects.

If you dont come right, come chat to me on irc (irc://irc.ctwug.za.net/) Channel #ctwug My nick is TFyre

Cheers,
Francois

Francois, it worked, the only disadvantage is that if somebody host a game the traffic goes through the international, but if I host the game it goes througt local
 
xPython, the problem with splitting traffic is that in order for the other people to be able to connect to your game via the local connection, your game has to connect to the server via the local connection too. If not, it will simply report the IP address of your international connection to the other clients.

What I've said above is the case with games like Warcraft III, where you connect to a central server, and then the server announces your WAN IP address to the clients.
With other games like Counter-Strike / Quake 3, where you can specify an IP address to connect to, your friends should be able to connect to you via your local-only connection.

I don't know much about the xbox games, but I guess that you have to connect to an international server, which would result in your friends connecting to you on your international connection too. Unfortunately, there is no way for them to connect to you on your local-only connection, UNLESS the xbox games allow you to specify an IP address or domain name to connect to.
 
Francois, just want to say again THANK YOU, All Problems is sorted, I just want to rephrase my previous post, if somebody with only 1 wan ip invite me, the traffic goes through local and some through international. If i host the game it goes through local, I got a friend with routesentry (international on router, rasppoe on local and share the rasppoe with ICS) If he invite me his traffic goes through international. I don't understand why him, but like you have seen ,im no network genius:o
 
Top
Sign up to the MyBroadband newsletter
X