[iproute2/iptables] 2 internet verbindingen

Pagina: 1
Acties:

  • WHiZZi
  • Registratie: Januari 2001
  • Nu online

WHiZZi

Museumdirecteurtje

Topicstarter
Hoi :*

Beetje rare topic titel, maar het klinkt enger dan het is. Ik heb nml al het een en ander aan research gedaan :P

Situatie is als volgt:
Ik zit op dit moment bij een bedrijf met een redelijk groot netwerk erachter. Ze hebben twee internet verbindingen, @Home (kabel) en XS4All (ADSL). Mijn opdracht was om het zo in te richten dat bepaald verkeer over ADSL ging en de rest over @Home. Eitje, dacht ik.

Op dit moment draait alles over @Home via standaard NAT, de XS4All verbinding wordt niet gebruikt en stond tot voor kort gewoon down. Deze heb ik up gekregen en hier kan ik inmiddels ook gewoon over natten.

Goed, mijn 1e idee was gewoon alles over @Home gooien en als deze down ging een fallback creëeren naar XS4All. Dat dacht ik als volgt te kunnen oplossen...
code:
1
2
3
ip route add default scope global nexthop via $ATHOME_GW dev eth0 weight 1 nexthop via $ADSL_GW dev eth1 weight 99
${IPTABLES} -t nat -A POSTROUTING -o $EXT_IF1 -s $INT_NET -j SNAT --to-source $GW_IF1
${IPTABLES} -t nat -A POSTROUTING -o $EXT_IF2 -s $INT_NET -j SNAT --to-source $GW_IF2

Helaas, dit ging niet echt lekker aangezien SSH verbindingen gewoon werden onderbroken en pingen spontaan niet meer ging.

Dan maar terug naar de tekentafel. Het idee was om de poorten voor FTP, SSH en Remote Desktop en het ip adres van de Nagios Server over XS4All te gooien.
Na enige onderzoek kwam ik bij de volgende regels uit.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
*flush alles enzo*
${IPTABLES} -t nat -A POSTROUTING -o $EXT_IF1 -s $INT_NET -j SNAT --to-source $GW_IF1
${IPTABLES} -t nat -A POSTROUTING -o $EXT_IF2 -s $INT_NET -j SNAT --to-source $GW_IF2
${IPTABLES} -A FORWARD -i $INT_IF -j ACCEPT
${IPTABLES} -A FORWARD -m state --state INVALID -j DROP
${IPTABLES} -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Markeer verkeer
${IPTABLES} -t mangle -A PREROUTING -p tcp --dport 21  -s 10.0.0.0/16 -j MARK --set-mark 0x4
${IPTABLES} -t mangle -A PREROUTING -p tcp --dport 20  -s 10.0.0.0/16 -j MARK --set-mark 0x4
${IPTABLES} -t mangle -A PREROUTING -p tcp --dport 22  -s 10.0.0.0/16 -j MARK --set-mark 0x4
${IPTABLES} -t mangle -A PREROUTING -p tcp --dport 3389  -s 10.0.0.0/16 -j MARK --set-mark 0x4
${IPTABLES} -t mangle -A PREROUTING -p tcp -s 10.0.0.3 -j MARK --set-mark 0x4     # Nagios
${IPTABLES} -t mangle -A PREROUTING -p udp -s 10.0.0.3 -j MARK --set-mark 0x4     # Nagios

${IP} route add default via $GW_IF1 dev $EXT_IF1 # Set Default Route

${IP} route flush table 4 # maak table 4 leeg
${IP} route add table 4 default via $GW_IF2 dev $EXT_IF2 # maak de route voor table 4
# Stuur packet die gemarkeerd zijn met een fwmark 4 naar routing table 4
${IP} rule add fwmark 4 table 4
# Maak de routing cache leeg
${IP} route flush cache

*insert standaard dingen*


$GW_IF1 is de gateway naar @Home
$EXT_IF1 is de @Home netwerkkaart
Interface 2 is XS4All NIC

Dit resulteerde in een goede werking voor het gehele netwerk, behalve voor 10.0.0.3. Deze stopt met tracen op de gateway. Het markeren werkt dus gewoon goed (want het verkeer van 10.0.0.3 wordt netjes via de andere interface naar buiten geleid, alleen stopt het daar)
traceroute to www.tweakers.net (213.239.154.35), 30 hops max, 38 byte packets
1 10.0.0.1 (10.0.0.1) 0.303 ms 0.225 ms 0.180 ms
2 192.168.2.1 (192.168.2.1) 0.639 ms 0.446 ms 0.419 ms
3 *
(10.0.0.1 is de router, 192.168.2.1 is het ADSL modem)

Haal ik de regels voor 10.0.0.3 weg (dus gewoon over @Home) werkt het wel gewoon
traceroute to www.tweakers.net (213.239.154.35), 30 hops max, 38 byte packets
1 10.0.0.1 (10.0.0.1) 0.234 ms 0.217 ms 0.179 ms
2 10.240.0.1 (10.240.0.1) 8.005 ms 7.126 ms 5.672 ms
3 csw1-vlan201.dbsch1.nb.home.nl (213.51.152.129) 5.582 ms 6.066 ms 7.369 ms
etc. etc. etc
Op de een of andere manier wordt de route niet goed gemaakt. Waar het aan ligt weet ik niet.

ip route list
192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.3
84.27.6.0/23 dev eth0 proto kernel scope link src 84.27.6.223
10.0.0.0/16 dev eth2 proto kernel scope link src 10.0.0.1
default via 84.27.6.1 dev eth0
ip route list table 4
default via 192.168.2.1 dev eth1
Weet iemand wat ik over het hoofd zie :? :?

Als ik de default route op de "main" table op eth1 via 192.168.2.1 zet, werkt het wel. De verbinding is dus goed!


EDIT @10:48:
Na
code:
1
${IP} rule add from 10.0.0.3 table 4

Kan ik vanuit 10.0.0.3 via XS4All naar buiten. Helaas werkt het nog niet op poortniveau ...

[ Voor 9% gewijzigd door WHiZZi op 23-08-2005 10:49 . Reden: zelf al een gedeelte opgelost ]

HomeComputerMuseum - Interactief computermuseum waar wij de geschiedenis van de thuiscomputer preserveren. Centraal gelegen in de Benelux.


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

ip route add 10.0.0.0/16 dev eth1 table 4

All my posts are provided as-is. They come with NO WARRANTY at all.


  • WHiZZi
  • Registratie: Januari 2001
  • Nu online

WHiZZi

Museumdirecteurtje

Topicstarter
CyBeR schreef op dinsdag 23 augustus 2005 @ 11:12:
ip route add 10.0.0.0/16 dev eth1 table 4
Gooit dat niet al het verkeer van 10.0.0.0/16 over de XS4All verbinding (table 4) ?

De bedoeling is dat ik bijvoorbeeld TCP/IP poort 80 over die verbinding zet en de rest over @Home...

[ Voor 4% gewijzigd door WHiZZi op 23-08-2005 11:24 ]

HomeComputerMuseum - Interactief computermuseum waar wij de geschiedenis van de thuiscomputer preserveren. Centraal gelegen in de Benelux.


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

WHiZZi schreef op dinsdag 23 augustus 2005 @ 11:16:
[...]


Gooit dat niet al het verkeer van 10.0.0.0/16 over de XS4All verbinding (table 4) ?

De bedoeling is dat ik bijvoorbeeld TCP/IP poort 80 over die verbinding zet en de rest over @Home...
Nee, hoewel 't wel eth2 had moeten zijn.

Je hebt nu in table 4 alleen een route naar buiten. Wat van buiten komt heeft geen weg terug naar 10.0.0.0/16 omdat er in table 4 geen route naar bestaat.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • WHiZZi
  • Registratie: Januari 2001
  • Nu online

WHiZZi

Museumdirecteurtje

Topicstarter
Ok, dat heb ik gedaan..
router:~# ip route list table 4
10.0.0.0/16 dev eth2 scope link
default via 192.168.2.1 dev eth1
code:
1
iptables -t mangle -A PREROUTING -p icmp -s 10.0.0.50 -j MARK --set-mark 4


Dit resulteert dat ik vanaf 10.0.0.50 niet meer kan pingen (request timed out). Verwijder ik die regel, kan ik gewoon pingen.

Zodra ik dus iets markeer met 0x4, valt de verbinding weg :?

HomeComputerMuseum - Interactief computermuseum waar wij de geschiedenis van de thuiscomputer preserveren. Centraal gelegen in de Benelux.


  • WHiZZi
  • Registratie: Januari 2001
  • Nu online

WHiZZi

Museumdirecteurtje

Topicstarter
Klein schopje omhoog met een toevoeging.

Het markeren van TCP/IP werkt, alleen vervolgens het routeren via de nieuwe table werkt niet.
Ik kwam er gisteren ook achter dat ik niet via de XS4All verbinding naar binnen kan (bijv SSH). Is dit ook op te lossen (Google leverde weinig info op over dit)..

HomeComputerMuseum - Interactief computermuseum waar wij de geschiedenis van de thuiscomputer preserveren. Centraal gelegen in de Benelux.

Pagina: 1