Freebsd

無效的多播介面

  • May 14, 2019

我正在嘗試通過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

不幸的是,我無法 ping 它的網關:

$/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]

據我所知,在freebsd系統方面沒有太多經驗嘗試ping:

ping -S 192.168.1.2 192.168.1.1

至於arp

  • 如果 arp 無法獲取網關的 mac 地址,則 freebsd 伺服器失去了與網關的連接。
  • 檢查您的伺服器的網關是否 UP/RUNNING,並檢查兩者的物理連接。

在 FreeBSD 和 macos 上,該-I標誌的行為與 Linux 所期望的不同。如果您仔細查看手冊頁,您會看到:

 -I iface
        Source multicast packets with the given interface **address**.

$$ emphasis mine $$ 所以-I標誌實際上需要一個地址,而不是一個介面。您可以通過以下方式確認:

$ ping -I 192.168.1.2 192.168.1.1

但除非您的目標 IP 地址是多播地址,否則這仍然會失敗。

要獲得我們都知道並期望從tracerouteLinux 獲得的行為,請改用該-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

引用自:https://unix.stackexchange.com/questions/341590