192.168.0.1/24
저는 eth0
두 가지 방법으로 IP 주소를 할당합니다.
192.168.0.1/24
A. 평소대로 추가하세요.
# ip addr add 192.168.0.1/24 dev eth0
# ping -c 1 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.051 ms
--- 192.168.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.051/0.051/0.051/0.000 ms
#
B: 192.168.0.1/32
/24 경로 추가 및 추가
# ip addr add 192.168.0.1/32 dev eth0
# 192.168.0.2 should not be reachable.
# ping -c 1 192.168.0.2
ping: connect: Network is unreachable
# But after adding a route, it is.
# ip route add 192.168.0.0/24 dev eth0
# ping -c 1 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.053 ms
--- 192.168.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.053/0.053/0.053/0.000 ms
#
이는 접두사가 붙은 IP 주소를 추가하는 것이 단지 /32 접두사가 있는 IP 주소를 추가한 후 경로를 추가하는 것을 단축한다는 의미입니까? 즉, 접두사 길이는 아무 의미가 없으며 실제 작업은 라우팅 항목에 의해 수행됩니다.
아니면 이 두 가지 방법 사이에 기능적 차이가 있습니까?
또 다른 상황은 다음과 같습니다. 두 노드가 직접 연결(사이에 라우터 없음)을 통해 서로 연결할 수 있지만 서브넷을 공유하지는 않습니다.
노드 1:
# ip addr add 192.168.0.1/24 dev eth0
# ip route add 192.168.1.0/24 dev eth0
# Finish the config on Node 2
# nc 192.168.1.1 8080 <<< "Message from 192.168.0.1"
Response from 192.168.1.1
노드 2:
# ip addr add 192.168.1.1/24 dev eth0
# ip route add 192.168.0.0/24 dev eth0
# Finish the config on Node 1
# nc -l 0.0.0.0 8080 <<< "Response from 192.168.1.1"
Message from 192.168.0.1
답변1
즉, 접두사 길이는 아무 의미가 없으며 실제 작업은 라우팅 항목에 의해 수행됩니다.
서브넷 마스크는 서브넷을 정의하므로 브로드캐스트 주소가 무엇인지, 컴퓨터가 응답하는 브로드캐스트 IP 패킷과 ARP 요청이 무엇인지 정의합니다. 따라서 /32 주소를 얻는 것과 라우팅 테이블을 설정하는 것과 /24 주소를 얻는 것 사이에는 차이가 있습니다.
이는 Linux에만 국한된 것이 아니며 IPv4의 작동 방식입니다.