/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
apache(1+2), Freebsd 5.0 kører ikke ipv4
Fra : Leif Neland


Dato : 26-10-02 01:06

På et tidspunkt er min hjemme/testserver, der kører FreeBSD 5.0-CURRENT,
holdt op med at ville køre apache på tcp4, den lytter kun på tcp6. (ipv6)

Jeg har opdateret kernen, og kompileret ny apache2, med standard .conf-fil,
det hjælper ikke.

Jeg har prøvet at skifte til port 800, men stadig lytter den kun på tcp6, så
det er ikke et firewallspørgsmål.

Andre services (ftp, smtp, imap, ssh) fungerer udemærket må tcp4.

Hvad kan være galt?

Og lidt off-topic, kan WinXP køre ipv6? Skal jeg blot lave en AAAA-record?

Leif



 
 
Alex Holst (26-10-2002)
Kommentar
Fra : Alex Holst


Dato : 26-10-02 08:53

Leif Neland <leifn@neland.dk> wrote:
> På et tidspunkt er min hjemme/testserver, der kører FreeBSD 5.0-CURRENT,
> holdt op med at ville køre apache på tcp4, den lytter kun på tcp6. (ipv6)
>
....
>
> Hvad kan være galt?

Du har muligvis angivet et uheldigt argument til Listen i httpd.conf.

--
I prefer the dark of the night, after midnight and before four-thirty,
when it's more bare, more hollow. http://a.mongers.org

Peter Makholm (26-10-2002)
Kommentar
Fra : Peter Makholm


Dato : 26-10-02 11:19

"Leif Neland" <leifn@neland.dk> writes:

> På et tidspunkt er min hjemme/testserver, der kører FreeBSD 5.0-CURRENT,
> holdt op med at ville køre apache på tcp4, den lytter kun på tcp6. (ipv6)

Hvordan observerer du at den kun lytter på IPv6?

Linuxkernens implementation af IPv6 har nogle sjove features der gør
at hvis et program binmder sig til en tcp6-port kommer der en fejl når
den binder sig til samme tcp4-port, men det virker stadig på grund af
IPv4->IPv6 mapningen.

Jeg er dog næsten sikker på at denne feature ikke findes i
KAME-implementationen, som jeg mener at alle *BSD'erne er baseret på.

> Og lidt off-topic, kan WinXP køre ipv6? Skal jeg blot lave en AAAA-record?

Da jeg alligevel var inde på ipv6.org fandt jeg lige følgende side til
dig:

<http://www.ipv6.org/impl/windows.html>

--
Peter Makholm | There are 10 kinds of people. Those who count in
peter@makholm.net | binary and those who don't
http://hacking.dk |

Leif Neland (29-10-2002)
Kommentar
Fra : Leif Neland


Dato : 29-10-02 06:20


"Peter Makholm" <peter@makholm.net> skrev i en meddelelse
news:87y98l4i6g.fsf@xyzzy.adsl.dk...
> "Leif Neland" <leifn@neland.dk> writes:
>
> > På et tidspunkt er min hjemme/testserver, der kører FreeBSD 5.0-CURRENT,
> > holdt op med at ville køre apache på tcp4, den lytter kun på tcp6.
(ipv6)
>
> Hvordan observerer du at den kun lytter på IPv6?
>
netstat -an
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp6 0 0 *.80 *.* LISTEN
F.ex. telnet lytter på begge protokoller:
tcp6 0 0 *.23 *.* LISTEN
tcp4 0 0 *.23 *.* LISTEN
Det er med "Listen 80" i httpd.conf

Med "Listen 192.168.5.11:80"

Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 0 192.168.5.11.80 *.* LISTEN

> Linuxkernens implementation af IPv6 har nogle sjove features der gør
> at hvis et program binmder sig til en tcp6-port kommer der en fejl når
> den binder sig til samme tcp4-port, men det virker stadig på grund af
> IPv4->IPv6 mapningen.
>
> Jeg er dog næsten sikker på at denne feature ikke findes i
> KAME-implementationen, som jeg mener at alle *BSD'erne er baseret på.

Det ser ud til, at apache binder sig til ipv6, hvis den kan, og ellers til
ipv4.
Den binder sig ikke til begge.

I apache2's listen.c:

#if APR_HAVE_IPV6
static int default_family = APR_UNSPEC;
#else
static int default_family = APR_INET;
#endif

static void find_default_family(apr_pool_t *p)
{
#if APR_HAVE_IPV6
/* We know the platform supports IPv6, but this particular
* system may not have IPv6 enabled. See if we can get an
* AF_INET6 socket and bind to an ephemeral port. (On most
* systems, getting an AF_INET6 socket is a sufficient test.
* On certain levels of OpenUNIX, getting the socket is
* successful but bind always returns ENETUNREACH.)
*/
if (default_family == APR_UNSPEC) {
apr_status_t sock_rv;
apr_socket_t *tmp_sock;
apr_sockaddr_t *sa;

if ((sock_rv = apr_socket_create(&tmp_sock, APR_INET6, SOCK_STREAM,
p))
== APR_SUCCESS &&
apr_sockaddr_info_get(&sa, NULL, APR_INET6, 0, 0, p) ==
APR_SUCCESS &&
apr_bind(tmp_sock, sa) == APR_SUCCESS) {
default_family = APR_INET6;
}
else {
default_family = APR_INET;
}
if (sock_rv == APR_SUCCESS) {
apr_socket_close(tmp_sock);
}
}
#endif
}

Så vidt jeg forstår, så lyttes enten på "0.0.0.0" eller "::", ikke begge
dele.

Det må vist være en apache-bug...

Leif



Bo Simonsen (29-10-2002)
Kommentar
Fra : Bo Simonsen


Dato : 29-10-02 08:32

Hej Leif!

29 Oct 02 kl.05:20 skrev Leif Neland til All:

LN> Så vidt jeg forstår, så lyttes enten på "0.0.0.0" eller "::", ikke
LN> begge dele.

Jeg havde det samme problem med ssh engang. Men jeg bruger ikke ipv6 mere, så
jeg fik aldrig løst det.

Bo



Leif Neland (29-10-2002)
Kommentar
Fra : Leif Neland


Dato : 29-10-02 06:29


"Peter Makholm" <peter@makholm.net> skrev i en meddelelse
news:87y98l4i6g.fsf@xyzzy.adsl.dk...
> "Leif Neland" <leifn@neland.dk> writes:
>
> > På et tidspunkt er min hjemme/testserver, der kører FreeBSD 5.0-CURRENT,
> > holdt op med at ville køre apache på tcp4, den lytter kun på tcp6.
(ipv6)
>
> Hvordan observerer du at den kun lytter på IPv6?

RTFM:

http://httpd.apache.org/docs-2.0/bind.html

On some platforms, such as NetBSD, binding to the IPv6 wildcard address
("::") does not allow Apache to accept connections on IPv4 interfaces. In
this situation, multiple Listen directives are required, as shown below:

Listen 0.0.0.0:80
Listen [::]:0

Apache does not currently detect this, so the Listen statements must be
edited manually by the administrator.



Det kunne de da godt skrive i default httpd.conf'en...

Leif


begin 666 up.gif
M1TE&.#EA"P`+`( ``/___T!8<2'Y! ``````+ `````+``L```(0C(^IRP8-
,XHHTT7NN;KRC`@`[
`
end


Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408872
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste