[IPv6] Hoe Linux een default source IP aan te praten?

Pagina: 1
Acties:

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Zoals de mensjes van IRC ongetwijfeld wel weten zit ik al een tijdje gezellig te kloten met IPv6. (Sinds 26 februari to be exact :+). Ondertussen heb ik de mogelijkheid tot vier tunnels met de bijbehorende /48 subnets. Harstikke tof natuurlijk, maar ik loop tegen één probleempje aan:

De Linux kernel (I assume) pakt automatisch het laatst toegevoegde IP-adres aan m'n eth0 als source van alle 'zomaar' gegenereerde pakketjes.

Dit kwam ik tegen in bijvoorbeeld een tracepath naar ipv6.google.com vanaf mijn laptop (gaat via de server):

[b][red]flaptop[/][blue] ~ #[/][/] tracepath6 ipv6.google.com
 1?: [LOCALHOST]                      pmtu 1480
 1:  2001:888:${MY_PREFIX}::c0ff:ee                  1.726ms 
 2:  xs4all${MY_TUNNEL_ID}.ipv6.xs4all.nl                   25.547ms 
 3:  104.ae0.xr4.1d12.xs4all.net              asymm  4  26.219ms 
 4:  0.so-6-0-0.xr1.sara.xs4all.net           asymm  5  25.713ms 
 5:  pr61.ams04.net.google.com                asymm  6  26.418ms !A
     Resume: pmtu 1480 
[b][red]flaptop[/][blue] ~ #[/][/]

Waarbij 2001:888:${MY_PREFIX}::c0ff:ee dus 't laatst toegevoegde IP-tje aan eth0 is.

Nu zóu ik dus graag willen zien dat Linux by default gewoon lekker 2001:888:${MY_PREFIX}::1 gebruikt. Geen gezeur, gewoon ~::1.

De man-page van `ip` zegt het volgende over `ip addr add` qua verdere argumenten:

   ip address add - add new protocol address.
       dev NAME
       local ADDRESS (default)
       peer ADDRESS
       broadcast ADDRESS
       label NAME
       scope SCOPE_VALUE

Verder niets over 'default' of 'metric' of weet ik het wat dat adres enig voorrang zou kunnen geven.

Bij `ip route add` staat wel:

   ip route add - add new route
   ip route change - change route
   ip route replace - change or add new one
       src ADDRESS
              the  source  address  to prefer when sending to the destinations
              covered by the route prefix.


Nu heb ik dus een route naar `2000::/3`, een soort default route. Maar hoe vaak ik die ook weghaal en weer terugstop met een `src 2001:888:${MY_PREFIX}::1`, hij komt er niet tussen te staan?

Nu is dus mijn vraag, iemand enig idee? 8)7

Verder draai ik Gentoo met Linux kernel 2.6.23-gentoo-r8 en maak ik gebruik van sys-apps/iproute2-2.6.22.20070710 :)

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Voeg die route eens toe naar je gewone netwerk, dat gaat vast beter. Dit TTL exceeded packets gaan niet naar 2000::/3 namelijk, die gaan naar jouw netwerk toe.

[ Voor 40% gewijzigd door CyBeR op 26-03-2008 14:52 ]

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


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Hmm ja, maar bij `ip -6 route list` komt die `src <ip>` dr verder ook niet bij de 2000::/3-route te staan. Dus ik nam aan dat dat sowieso 'mis' ging.

[b][red]server[/][blue] ~ #[/][/] ip -6 route change 2001:888:${MY_PREFIX}::/64 dev eth0 src 2001:888:${MY_PREFIX}::1
[b][red]server[/][blue] ~ #[/][/]

Had geen enkel nut, de src komt niet tussen `ip -6 route list` te staan. Ook geen foutmelding, niets.

[ Voor 46% gewijzigd door Osiris op 26-03-2008 16:24 ]


  • Eärendil
  • Registratie: Februari 2002
  • Nu online
Ik weet dat dit topic drie jaar oud is, maar ik had dit probleem vandaag ook en ik kwam toen dit topic tegen. Voor degene die ook dit probleem tegenkomt:

Een oplossing is om alle behalve één van de ip-adressen deprecated te maken. Dit gaat door de preferred_lft van een adres op 0 te zetten. In het volgende voorbeeld is 2001:db8:300:2d7::2 het tunnel-endpoint van mijn sixxs-tunnel, en 2001:db8:3fb::1 een adres in mijn subnet. Die laatste is toegevoegd aan zowel mijn interne netwerkkaart als de sixxs-interface. Met de volgende code wordt het adres uit het subnet als 'source address' geselecteerd:

[b][red]server[/red][blue] ~ #[/blue][/b] ip -6 addr change 2001:db8:300:2d7::2 dev <device> preferred_lft 0
[b][red]server[/red][blue] ~ #[/blue][/b] ip adr show sixxs
5: sixxs: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN 
    link/sit <local-endpoint> peer <remote-endpoint>
    inet6 2001:db8:300:2d7::2/64 scope global [b]deprecated[/b]    <-- niet meer gebruikt
       valid_lft forever preferred_lft forever
    inet6 2001:db8:3fb::1/128 scope global                  <-- nu wel gebruikt
       valid_lft forever preferred_lft forever
[...]


Zie ook: http://www.davidc.net/net...e-address-selection-linux