ping
다음 명령을 통해 지정된 인터페이스로 작업 하려고 합니다.
ping -I re3 192.168.1.1
난 re3
거기에 존재하는 걸 알아ifconfig
re3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
ether e8:de:27:01:7f:e7
inet6 fe80::eade:27ff:fe01:7fe7%re3 prefixlen 64 scopeid 0x4
inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
불행히도 게이트웨이를 핑할 수 없습니다.
$/root: ping -I re3 192.168.1.1
ping: invalid multicast interface: `re3'
그게 무슨 뜻이야?
고쳐 쓰다
$arp 192.168.1.1
? (192.168.1.1) at (incomplete) on re3 expired [ethernet]
답변1
FreeBSD 및 macos에서 이 -I
플래그는 Linux에서 예상되는 것과 다르게 작동합니다. 매뉴얼 페이지를 주의 깊게 살펴보면 다음과 같은 내용을 볼 수 있습니다.
-I iface Source multicast packets with the given interface **address**.
[강조 내 것]
따라서 -I
플래그에는 실제로 인터페이스가 아닌 주소가 필요합니다. 다음을 통해 확인할 수 있습니다.
$ ping -I 192.168.1.2 192.168.1.1
그러나 대상 IP 주소가 멀티캐스트 주소가 아니면 여전히 실패합니다.
traceroute
우리 모두가 알고 있고 Linux에서 기대하는 동작을 얻으려면 -S
대신 이 플래그를 사용하고 사용하려는 인터페이스의 IP 주소를 지정하십시오.
$ ping -S 192.168.1.2 192.168.1.1
PING 192.168.1.1 (192.168.1.1) from 192.168.1.20: 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=5.956 ms
답변2
내가 아는 한 freebsd 시스템에 대한 경험이 많지 않지만 ping은 다음을 시도합니다.
ping -S 192.168.1.2 192.168.1.1
에 관해서는ARP
- arp가 게이트웨이의 MAC 주소를 얻을 수 없으면 freebsd 서버와 게이트웨이의 연결이 끊어집니다.
- 서버의 게이트웨이가 실행 중인지 확인하고 둘 사이의 물리적 연결을 확인하십시오.