Kernel: 버전 이래로 2.0.30
예들 들어, 웹페이지를 선택하면 연결은 되지만 새로고침(Reload)를 한 다음에야 사이트를 볼 수 있습니다.
이것이 제대로 동작하려면 커넬에 파라미터를 패스시켜 주어야 합니다.
echo 0 > /proc/sys/net/ipv4/ip_dynaddr
: disablen
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
: enablen
echo 2 > /proc/sys/net/ipv4/ip_dynaddr
: enablen im verbose-mode (Mehr Meldungen)
만약 이것이 성공하면 /var/log/messages
(echo 2 사용)에 다음과 같은 것이 나타나야 합니
다.
[..] Sep 30 10:36:04 wilma ipppd[729]: local IP address 10.10.129.228 Sep 30 10:36:04 wilma ipppd[729]: remote IP address 192.44.86.9 Sep 30 10:36:08 wilma kernel: ip_fw_masquerade(): change maddr from 192.168.42.1 to 10.10.129.228Hint: 연결이 마스커레이드 어드레스로부터 설립되었다면 커넬 버전 2.0.32까지에서만 동작 합니다. 이것을 리눅스 시스템 자체에서 한다면 동작하지 않습니다.
이 문제는 Erik Correy씨가 만든 다음 패치로 해결될 수 있습니다.
--- linux/net/ipv4/tcp_output.c Thu Oct 16 15:38:49 1997 +++ linux-2.0.31pre9-ec/net/ipv4/tcp_output.c Thu Oct 16 15:03:36 1997 @@ -578,7 +560,7 @@ } } skb->raddr=rt->rt_gateway; - if (skb->dev !=dev && sk->state == TCP_SYN_SENT && sysctl_ip_dynaddr) + if ((skb->dev !=dev || skb->dev->pa_addr != skb->ip_hdr->saddr) && sk->state == TCP_SYN_SENT && sysctl_ip_dynaddr) ip_rewrite_addrs(sk, skb, dev); skb->dev=dev; skb->arp=1;Christian Meyer(smart#on-line.de)씨께도 감사드립니다.
SDB-dynippatch
)