ICMP(대상 호스트에 연결할 수 없음), 단순 핑이 동일한 호스트에 도달하더라도

ICMP(대상 호스트에 연결할 수 없음), 단순 핑이 동일한 호스트에 도달하더라도

서로 직접 연결된 두 개의 CentOS 호스트에서 포트 179(BGP)를 사용하여 일부 애플리케이션을 설정했지만 연결을 설정할 수 없는 것 같아서 tcpdump무슨 일이 일어나고 있는지 확인하기 시작했습니다.

$ tcpdump --interface ens20 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens20, link-type EN10MB (Ethernet), capture size 262144 bytes
09:10:53.715981 IP 10.0.5.2.46577 > 10.0.5.3.179: Flags [S], seq 4065918158, win 29200, options [mss 1460,sackOK,TS val 2186333430 ecr 0,nop,wscale 7], length 0
09:10:53.716897 IP 10.0.5.3 > 10.0.5.2: ICMP host 10.0.5.3 unreachable - admin prohibited filter, length 68
09:10:59.179303 ARP, Request who-has 10.0.5.2 tell 10.0.5.3, length 28
09:10:59.179322 ARP, Reply 10.0.5.2 is-at 3e:63:58:e9:a3:d9, length 28

알겠습니다. 다른 호스트는 액세스조차 할 수 없는 것 같습니다. 이미 ping을 시도했고 작동한다고 확신했기 때문에 이것은 이상합니다. 따라서 ping -I ens20 10.0.5.2호스트 시스템에서 다시 시도하십시오 10.0.5.3. (그리고 확실히 하기 위해 반대의 경우도 시도했지만 같은 효과가 있었습니다.)

09:11:40.186862 IP 10.0.5.2 > 10.0.5.3: ICMP echo request, id 3941, seq 1, length 64
09:11:40.187309 IP 10.0.5.3 > 10.0.5.2: ICMP echo reply, id 3941, seq 1, length 64
09:11:41.233187 IP 10.0.5.2 > 10.0.5.3: ICMP echo request, id 3941, seq 2, length 64
09:11:41.233570 IP 10.0.5.3 > 10.0.5.2: ICMP echo reply, id 3941, seq 2, length 64
09:11:45.260415 ARP, Request who-has 10.0.5.2 tell 10.0.5.3, length 28
09:11:45.260438 ARP, Reply 10.0.5.2 is-at 3e:63:58:e9:a3:d9, length 28
09:11:45.457134 ARP, Request who-has 10.0.5.3 tell 10.0.5.2, length 28
09:11:45.457418 ARP, Reply 10.0.5.3 is-at ae:e9:68:81:26:dc, length 28

좋습니다. ping문제가 해결되었으며 집주인에게 연락할 수 있습니다. 좋습니다. 다음 아이디어는 다음과 같습니다. 예를 들어 telnet -b 10.0.5.2 10.0.5.3 179(from 10.0.5.2) 을 통해 포트 179를 통해 다른 호스트에 직접 연결할 수 있습니다 . 아니요, telnet: connect to address 10.0.5.3: No route to host. 그런데 포트가 열려있나요? 예, telnet -b 10.0.5.2 10.0.5.3 179작동합니다( 에서 10.0.5.3). tcpdump위 애플리케이션과 동일한 Telnet 실험 오류를 보여줍니다.

완전성을 위해 인터페이스 구성도 여기에 제공됩니다( /etc/sysconfig/network-scripts/ifcfg-ens20).

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens20
UUID=7f8ca407-e96a-497e-865c-972a6f1940d6
DEVICE=ens20
ONBOOT=yes
IPADDR=10.0.5.2
PREFIX=24

(동일한 호스트에 다른 인터페이스가 구성되어 있지만 해당 인터페이스가 외부 IP 주소를 사용하도록 구성하고 10.0.5.0/24를 방해하지 않도록 하고 싶습니다.)

이러한 호스트에는 활성화된 방화벽이 없으며(CentOS 최소 설치 새로 설치) 이러한 호스트는 직접 연결됩니다. 왜 한 요청은 허용되지 않고 다른 요청은 허용되지 않는지 모르겠지만 여러 인터페이스 사용과 관련이 있을 수 있습니다.무슨 일이 일어나고 있는지에 대한 자세한 내용은 어디에서 찾아보실 수 있나요?

답변1

코드가 "Destination Unreachable"이고 유형이 "Administrative Forbidden"인 ICMP 패킷은 TCP/IP 스택이 아닌 패킷 필터에 의해 생성됩니다.

nftables이를 감안할 때 지위(또는 재산)가 iptables원인을 명확히 할 수 있어야 합니다.

댓글에 게시된 대로 CentOS에서는 firewalld이 기능이 기본적으로 활성화되어 있습니다. 이 패키지는 firewall-cmd방화벽 구성을 위한 명령을 제공합니다. 대상 포트를 열려면 새로운 규칙을 추가해야 합니다.

물론 비활성화하는 것도 firewalld가능하지만 위험을 이해하는 경우에만 가능합니다.

관련 정보