![IPV4 라우터에 연결할 때 이름을 확인할 수 없지만 주소를 ping할 수 있으며 IPV6 라우터에서는 모든 것이 잘 작동합니다.](https://linux55.com/image/102229/IPV4%20%EB%9D%BC%EC%9A%B0%ED%84%B0%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%A0%20%EB%95%8C%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%ED%99%95%EC%9D%B8%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%A7%80%EB%A7%8C%20%EC%A3%BC%EC%86%8C%EB%A5%BC%20ping%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%9C%BC%EB%A9%B0%20IPV6%20%EB%9D%BC%EC%9A%B0%ED%84%B0%EC%97%90%EC%84%9C%EB%8A%94%20%EB%AA%A8%EB%93%A0%20%EA%B2%83%EC%9D%B4%20%EC%9E%98%20%EC%9E%91%EB%8F%99%ED%95%A9%EB%8B%88%EB%8B%A4..png)
집에 IPV4 주소를 제공하는 라우터가 있습니다. 내 젠투 PC는 제대로 작동하지만 젠투 노트북이 이름 확인을 멈춥니다. 나는 부모님을 방문하여 IPV6 주소를 제공하는 라우터에 연결을 시도했고 모든 것이 정상으로 돌아왔습니다(내 이름 서버에 해당하는 IPV6을 /etc/resolv.conf에 추가했습니다). 그런 다음 IPV6 라우터 뒤에 있는 부모 네트워크의 다른 라우터를 시도했지만 IPV4 주소를 제공하고 다시 이름을 확인할 수 없었습니다(Gentoo LiveCD를 부팅하면 작동했지만 구성 문제임). 내 노트북과 IPV4 관련) (IPV4 주소를 /etc/resolv.conf에 다시 추가하고 IPV6 주소도 유지하려고 했습니다). 주소는 잘 ping할 수 있지만 이름은 확인할 수 없습니다. 원인은 무엇일까요? 어떻게 해결할 수 있나요?
내 resolv.conf(IPV4는 과거에 작동했습니다):
# dnsmasq
nameserver 127.0.0.1
# OpenNIC
nameserver 31.171.155.107
nameserver 79.133.43.124
IPV6(IPV6 라우터에서 작동):
# dnsmasq
nameserver ::1
# OpenNIC
nameserver 2a05:dfc7:5::53
nameserver 2001:19f0:7001:929:5400:00ff:fe30:50af
IPV4 라우터는 IPV4 라우터에서 작동했지만 수정하지 않으면 작동이 중지되었습니다. 다른 항목이 수정되어 이름 확인이 작동을 멈췄습니다. 내 전체 /etc 폴더(ssl, Shadow 등 제외)를 찾을 수 있습니다. 여기.
모든 iptables 규칙을 새로 고치고 모든 정책을 수락하도록 설정했습니다. dnsmasq를 제외하고는 실행 중인 네트워크 관련 서비스가 없습니다(해당 서비스를 비활성화하고 resolv.conf에서 localhost 줄을 제거하려고 시도했지만 소용이 없었습니다). 나는 wpa_supplicant와 ip를 사용하여 인터넷에 연결했고 이름 확인을 제외하고는 잘 작동했습니다(Gentoo의 rc 스크립트를 사용하여 유선 인터페이스를 통해 연결할 때도 마찬가지였습니다). 둘 다 iptables -L
반환 ip6tables -L
:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
일부 테스트 및 결과(결과는 유선 연결과 동일하지만 모두 무선 연결이 있는 IPV4 라우터에서 수행됨):
$ nslookup google.com 8.8.8.8
;; connection timed out: no servers could be reached.
...
$ dig @8.8.8.8 gentoo.org
;; connection timed out: no servers could be reached.
tcpdump는 호스트 이름(예: google.com)을 ping하려고 할 때 아무 것도 등록하지 않지만, IP 주소를 ping할 때는 성공적으로 등록합니다. ICMP echo:
$ ping gentoo.org
ping: unknown host gentoo.org
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=48 time=74.0 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=48 time=73.7 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=48 time=73.7 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 73.708/73.810/74.012/0.344 ms
TCP 덤프:
$ tcpdump -i wlp3s0 port 53
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlp3s0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
$ tcpdump -i wlp3s0
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlp3s0, link-type EN10MB (Ethernet), capture size 262144 bytes
07:05:55.807483 IP 192.168.25.11 > 8.8.8.8: ICMP echo request, id 5903, seq 1, length 64
07:05:55.881446 IP 8.8.8.8 > 192.168.25.11: ICMP echo reply, id 5903, seq 1, length 64
07:05:56.808617 IP 192.168.25.11 > 8.8.8.8: ICMP echo request, id 5903, seq 2, length 64
07:05:56.882287 IP 8.8.8.8 > 192.168.25.11: ICMP echo reply, id 5903, seq 2, length 64
07:05:57.810421 IP 192.168.25.11 > 8.8.8.8: ICMP echo request, id 5903, seq 3, length 64
07:05:57.884089 IP 8.8.8.8 > 192.168.25.11: ICMP echo reply, id 5903, seq 3, length 64
^C
6 packets captured
6 packets received by filter
0 packets dropped by kernel
IPv4 라우터의 ifconfig:
wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.25.11 netmask 255.255.255.0 broadcast 192.168.25.255
inet6 fe80::16ec:71f7:dcc5:f175 prefixlen 64 scopeid 0x20<link>
ether 00:07:c8:82:a2:96 txqueuelen 1000 (Ethernet)
RX packets 6 bytes 568 (568.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 24 bytes 4038 (3.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
IP 라우팅:
$ ip route
default via 192.168.25.1 dev wlp3s0
169.254.0.0/16 dev wlp3s0 proto kernel scope link src 169.254.144.184 metric 304
192.168.25.0/24 dev wlp3s0 proto kernel scope link src 192.168.25.11
ns스위치:
# /etc/nsswitch.conf:
# $Header: /var/cvsroot/gentoo/src/patchsets/glibc/extra/etc/nsswitch.conf,v 1.1 2006/09/29 23:52:23 vapier Exp $
passwd: compat
shadow: compat
group: compat
# passwd: db files nis
# shadow: db files nis
# group: db files nis
hosts: files dns
networks: files dns
services: db files
protocols: db files
rpc: db files
ethers: db files
netmasks: files
netgroup: files
bootparams: files
automount: files
aliases: files
나는 또한 이것을 실행했고 strace -e open dig @8.8.8.8 gentoo.org
그것이 마지막으로 한 일은 /etc/resolv.conf를 (성공적으로) 여는 것이었습니다.
답변1
iptables -L
특히 불완전한 보기를 제공하며 패킷 흐름 방식에 영향을 줄 수 있고 실제로 영향을 미치는 NAT 또는 맹글 테이블을 표시하지 않습니다. 디버깅을 완료하려면 다음과 같은 다양한 테이블도 확인해야 합니다.
iptables -t nat -n -L
또는 전체 방화벽 규칙 세트를 덤프합니다.
iptables-save