Toon posts:

Gentoo netwerk probleempjes

Pagina: 1
Acties:

Verwijderd

Topicstarter
Situatie:

Server (gentoo 2006.1 , 2 nics erin, een intel en een realtek ( :O )

intel: eth0
realtek: eth1

eth0: Deze wordt gebruikt voor het lokale leechen op lan niveau. Dus alleen ip en subnet ingesteld.
eht1: Voor connecties van buitenaf, apache, ftp e.d. Heeft een gateway ingesteld, ip, subnet, dns server.

Ik wil dus de intel exclusief voor het lokale netwerk, omdat ik hier juist veel vraag van de nic en ik geen zin in heb in een hoge cpu-load met die realtek (al is het maar een paar procent )

eth1 wordt via de switch gecapped qua bandbreedte. Dit omdat, ik dan niet meer normaal kan surfen als iemand mijn upload loopt leeg te trekken. Dit doe ik op poort gebaseerd, omdat ik dan alleen een kabeltje hoef te wisselen als ik ff vol wil pompen met de hele handel.

Nu het probleem:

Ik heb dus alle belangrijke poorten geforward in de router naar eth1. Dit is leuk en aardig allemaal. Maar als iemand wil connecten met mij, krijgt hij geen gehoor. Echter, en ja daar komt ie, als ik een willekeurig bestandje gaat downloaden kan opeens daarna die persoon connecten. Zou misschien logisch zijn, omdat eth0 hoger in de hiërarchie staat. Dus het pakketje komt bij eth1 aan, maar hij kan niet terugsturen, omdat hij dit niet via eth0 kan doen (dit wil ik ook niet). Het probleem is dus, dat hij niet automagisch terugstuurd via eth1, pas als ik handmatig een bestandje download gaat hij zoeken welke verbinding hij kan gebruiken om terug te sturen. Per default doet gentoo via eth0 zo het lijkt. Mijn vraag is alleen hoe kan ik dit verhelpen.

Ik wil dus eth0 -> lokaal verkeer
eth1-> internet verkeer

/etc/conf.d/net:
code:
1
2
3
4
5
6
7
8
9
10
11
12
dns_domain_lo="localdomain"

# set name server
dns_servers_eth0=( "10.0.0.1" )
dns_servers_eth1=( "10.0.0.1" )

# set ip adresses for devices
config_eth0=( "10.0.0.10 netmask 255.255.255.0 brd 10.0.0.255" )
config_eth1=( "10.0.0.11 netmask 255.255.255.0 brd 10.0.0.255" )

# eth1 is the device which is allowed to connect to the internet
routes_eth1=( "default gw 10.0.0.1" )


Het gekke is als ik vanaf een andere pc 10.0.0.11 ping het lampje van eth0 gaat knipperen -_-

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 02-02 16:29

killercow

eth0

Het klinkt alsof je eth0 ook arpt voor je eth1 IP.
Aka, het pakje komt op je router, en er wordt geroepen welke NIC (mac adres), IP xyz heeft.

Omdat linux dit defualt doet, reageert ook eth0 hierop.
Je kunt dit ergens instellen door in /proc een waarde aan te passen, maar welk dat precies is, moet ik je helaas atm schuldig blijven.

Het makkelijkst zou zijn om je switch in 2 vlan's te delen, eentje intern, en eentje extern.
Of 2 losse switches te pakken mocht je switch niet manageble zijn.

openkat.nl al gezien?


Verwijderd

Topicstarter
vlan's werkte niet helaas, maar ik zal het nog eens proberen, en ik zal nog eens kijken wat ik in /proc kan veranderen. thx

edit: sowieso is dat niet mogelijk, met die vlans aangezien ik één uplink heb op die switch, en als ik een tweede zou nemen voor een vlan, zouden de twee uplinks alsnog samen komen in de routerswitch waar ze alsnog elkaar kunnen zien, dus dat wordt ff kloten in /proc. Alleen lijkt mij dit niet logisch, want het /proc filesystem bevind zich in het geheugen en na een reboot is het weer weg als ik iets verander of mis ik nu iets?

Afbeeldingslocatie: http://student.hro.nl/0785972/got/netwerk.png

[ Voor 68% gewijzigd door Verwijderd op 05-12-2006 00:06 ]


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 02-02 16:29

killercow

eth0

in /proc staan ook allerlei low - level config settings voor je kernel.
Je kernel luisters naar die files, en als jij naar de juiste de value 1 schrijft, dan reageert de kernel daar op, door intern z'n config aan te passen. kernel knopjes drukken dus.

Je zult idd per boot (via /etc/conf.d/local.start), dat command moeten uitvoeren.

-meer info:
Mooi plaatje trouwens, Je zult iig hier moeten zoeken:
/proc/sys/net/ipv4/conf/eth0/

En dan waardes aanpassen met:
echo 1 > /proc/sys/net/ipv4/conf/all/hidden

of
echo 0 > /proc/sys/net/ipv4/conf/all/hidden

all kun je vervangen door eth0, en eth1,
hidden kun je vervangen door de verschillende config opties.

En deze link klinkt ook als jouw probleem (ish)
http://www.ssi.bg/~ja/medium_id.txt

[ Voor 39% gewijzigd door killercow op 05-12-2006 00:15 ]

openkat.nl al gezien?


Verwijderd

Topicstarter
Dat bedoelde ik dus ja :p (init scriptje kan ik mee leven) alleen nu nog vinden welke waarde het is :P

edit: nvm, ik zal het morgen uitproberen (althans vandaag naar de klok kijkende, het is al laat :+) Voor nu even slapen :p

[ Voor 126% gewijzigd door Verwijderd op 05-12-2006 00:15 ]


Verwijderd

Topicstarter
Ik heb eens rond lopen neuzen, dit zijn de opties die ik heb:

accept_redirects
accept_source_route
arp_accept
arp_announce
arp_filter
arp_ignore
bootp_relay
disable_policy
disable_xfrm
force_igmp_version
forwarding
log_martians
mc_forwarding
medium_id
promote_secondaries
proxy_arp
rp_filter
secure_redirects
send_redirects
shared_media
tag

Ik heb natuurlijk dat artikel gelezen, maar dit werkte niet voor mij. Pakketjes naar 10.0.0.11 gaan nog steeds naar 10.0.0.10 -_-

edit: ik heb nu dus het volgende gedaan:

# echo 1 > /proc/sys/net/ipv4/conf/eth0/medium_id
# echo 2 > /proc/sys/net/ipv4/conf/eth1/medium_id
# echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
# echo 0 > shared_media

Maar dat wil dus niet werken

[ Voor 20% gewijzigd door Verwijderd op 05-12-2006 12:20 ]


Verwijderd

Mits ik het goed begrijp

eth0 10.0.0.0 verkeer (ip 10.0.0.10)
eth1 internet verkeer met als gateway 10.0.0.1 (ip 10.0.0.11)

Volgens mij moet je in je route tabel een entry toevoegen dat al het verkeer naar 10.0.0.1 (default gw) via eth1 verstuurd wordt.
route add -host 10.0.0.1 eth1 (oid).

Verwijderd

Topicstarter
Verwijderd schreef op dinsdag 05 december 2006 @ 15:33:
Mits ik het goed begrijp

eth0 10.0.0.0 verkeer (ip 10.0.0.10)
eth1 internet verkeer met als gateway 10.0.0.1 (ip 10.0.0.11)

Volgens mij moet je in je route tabel een entry toevoegen dat al het verkeer naar 10.0.0.1 (default gw) via eth1 verstuurd wordt.
route add -host 10.0.0.1 eth1 (oid).
Je begrijpt het goed :) Ik zal het proberen. (Me laptop is nu gnome aan het emergen, dus ik heb alle tijd :+)

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
ares ~ # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        *               255.255.255.0   U     0      0        0 eth0
10.0.0.0        *               255.255.255.0   U     0      0        0 eth1
loopback        *               255.0.0.0       U     0      0        0 lo
default         10.0.0.1        0.0.0.0         UG    0      0        0 eth1


Zoals is te zien, zou dit al het geval moeten zijn, maar het probleem blijft.

Verwijderd

Nee volgens mij mis je een route entry.

Je mist:
code:
1
2
destination     gateway     Genmask         (hier sla ik wat kolommen over) Iface
10.0.0.1    10.0.0.11   255.255.255.255                     Eth1


En dat doe je volgens mij met
route add -host 10.0.0.1 eth1

[ Voor 3% gewijzigd door Verwijderd op 06-12-2006 09:43 ]


  • JeroenE
  • Registratie: Januari 2001
  • Niet online
Het probleem is dat je twee routes voor hetzelfde netwerk hebt naar verschillende interfaces. Als je op deze bak iets wil versturen naar 10.0.0.x dan kan dat via twee interfaces. Ik weet niet precies hoe dit in de praktijk werkt, maar uit jouw verhaal lijkt het erop dat eerst wordt gekeken of de laatst actieve interface goed genoeg is en anders wordt de eerste match genomen.

Anyway, het probleem is dat als er pakketjes via je router komen het soms gebeurt dat dit via de 'verkeerde' interface terug wordt gestuurd en op die manier de retourberichten niet aankomen. De meest voor de hand liggende oplossing lijkt mij om er voor te zorgen dat de pakketten voor je router altijd op de juiste interface de deur uit gaan: route add 10.0.0.1 eth1

De oplossing die killercow aandroeg is natuurlijk ook handig. Als je verschillende netwerken voor beide interfaces gebruikt dan heb je het probleem niet dat 'per ongeluk' de verkeerde interface wordt genomen.

[edit]Oeps, te lang getreuzeld, Schumi was mij voor...

Verwijderd

Topicstarter
Jullie zijn mijn helden, het werkt nu. Die route blijft toch wel staan na een reboot als ik het mij goed herinner? Verder als ik lokaal naar 10.0.0.11 ga, ga ik nog steeds over 10.0.0.10, maar dat vindt ik niet erg, omdat 10.0.0.11 gecapped is op snelheid, het werkt nu precies zo als het hoort :) Thanks all!!!!

edit:

de oplossing van killercow is te moeilijk :+

[ Voor 8% gewijzigd door Verwijderd op 06-12-2006 10:38 ]


Verwijderd

Die route blijft denk ik niet staan.

Even kijken in je config waar je dat het beste kan neerzetten. Gentoo ken ik niet zo dat ik dat zo kan opdreunen

Verwijderd

Topicstarter
Verwijderd schreef op woensdag 06 december 2006 @ 11:03:
Die route blijft denk ik niet staan.

Even kijken in je config waar je dat het beste kan neerzetten. Gentoo ken ik niet zo dat ik dat zo kan opdreunen
Nee klopt, wat ik heb gedaan is, een scriptje maken in /etc/init.d/ en die heb ik aan het default runlevel toegevoegd, en nu blijft hij het doen.

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Verwijderd schreef op woensdag 06 december 2006 @ 17:36:
[...]


Nee klopt, wat ik heb gedaan is, een scriptje maken in /etc/init.d/ en die heb ik aan het default runlevel toegevoegd, en nu blijft hij het doen.
Routes kun je denk ik toch echt beter in /etc/conf.d/net-bestand kwijt ;) In net.example staat er als 't goed is meer dan genoeg over :)

Verwijderd

Topicstarter
Osiris daar ben ik nu mee bezig ;)

Voordat ik dat ging doen heb ik me even ingelezen op de wiki:

http://gentoo-wiki.com/HOWTO_add_a_static_route

Leuk en aardig allemaal. Zoals eerder gezegd werkt route add -host 10.0.0.1 eth1 nu, ik ga dus nu ff in /etc/conf.d/net het zo aanpassen dat het daarmee gebeurt.

/etc/conf.d/net:

code:
1
2
routes_eth1=( "default gw 10.0.0.1"
                     "-host 10.0.0.1 eth1" )


Dit zou moeten werken lijkt me. Maar wat zie ik tot mijn grote verbazing:

ares ~ # /etc/init.d/net.eth1 restart
 * Stopping eth1
 *   Bringing down eth1
 *     Shutting down eth1 ...                                             [ ok ]
 * Starting eth1
 *   Bringing up eth1
 *     10.0.0.11                                                          [ ok ]
 *   Adding routes
 *     default gw 10.0.0.1 ...                                            [ ok ]
 *     -host 10.0.0.1 eth1 ...
Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] [[dev] If]
       inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]
                              [netmask N] [mss Mss] [window W] [irtt I]
                              [mod] [dyn] [reinstate] [[dev] If]
       inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject
       inet_route [-FC] flush      NOT supported                          [ !! ]


Syntactisch zou het correct moeten zijn. Quote uit de wiki:
The entries in the routes_ethX option are appended to the command "route add" at boot time. You can add reject routes, name based routes, device based routes, or anything else you can do with the 'route add' command
Zit ik nu echt te slapen? :9

edit:

300 posts *O*

  • Parasietje
  • Registratie: Juli 2004
  • Laatst online: 10-06-2024

Parasietje

linux-geek

Kan je niet makkelijker het netmask van je eth0 en eth1 veranderen?

Zet je internet interface op 10.0.0.2/30 (30 bits moeten gelijk zijn, de laatste 2 niet), dan bereik je met die interface dus 10.0.0.1 tot 10.0.0.3 (01 tot 11 op de laatste twee bits)

Zet je andere interface op 10.0.0.16/28, dan covert die 10.0.0.16 tot 10.0.0.31. In dat subnet heb je meer dan genoeg plaats om die andere clients te zetten.

Zo deel je, mooi volgens de regels van de kunst, je netwerk onder in server-kant en client-kant.

Netmasks berekend met logisch redeneren en mbv http://www.csc.fi/english/funet/calc/laskin2.html

WebDAV in Vista is horribly broken. Ik wil het fixen, maar ben nog steeds op zoek naar de tarball met de source...


Verwijderd

Topicstarter
Nope dat is het probleem niet, het probleem zit em in het feit dat hij eerst naar eth0 wil. De oplossing is er al, alleen de implementatie van het laden bij het booten nog niet ;)

Verwijderd

Topicstarter
*O* *O* *O*

Na een paar entries in de tutorial te proberen in mijn configuratie ben ik tot de conclusie gekomen dat het script zelf de interface erachter gooit.

dus ipv:
routes_eth1=( "default gw 10.0.0.1"
              "-host 10.0.0.1 eth1" )


Moet het zijn:
routes_eth1=( "default gw 10.0.0.1"
              "-host 10.0.0.1" )


Met als resultaat:

ares ~ # /etc/init.d/net.eth1 restart
 * Stopping eth1
 *   Bringing down eth1
 *     Shutting down eth1 ...                                             [ ok ]
 * Starting eth1
 *   Bringing up eth1
 *     10.0.0.11                                                          [ ok ]
 *   Adding routes
 *     default gw 10.0.0.1 ...                                            [ ok ]
 *     -host 10.0.0.1 ...                                                 [ ok ]
ares ~ # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.1        *               255.255.255.255 UH    0      0        0 eth1
10.0.0.0        *               255.255.255.0   U     0      0        0 eth0
10.0.0.0        *               255.255.255.0   U     0      0        0 eth1
loopback        *               255.0.0.0       U     0      0        0 lo
default         10.0.0.1        0.0.0.0         UG    0      0        0 eth1
ares ~ #


Ik ben uw allen zeer dankbaar (vooral schumi :) ) _/-\o_
Pagina: 1