看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《chigi (  )》之銘言: : 網路的話 : 設備總共有三台, : : eth0 eth1 : PC1 <--------------> PC2 <----------------> PC3 : IP: 192.168.1.200 192.168.1.105 : 192.168.1.100 NA : : 既然是bridge,其實PC2的eth0也可以不用IP : 試過不用IP,但是封包還是在那亂彈 : 比較特別的是PC2的 ARP table : 192.168.1.200 <MAC> on eth0 : 192.168.1.105 <MAC> on eth1 : 192.168.1.105 <incomplete> on eth0 <====????? : 不過也有可能是程式亂跳讓系統誤以為那邊也有一台105, : 所以把ARP包往那邊丟 但是想當然耳,那邊什麼都沒有 我大概明白狀況了, promiscuous mode 本來就會收到本機所發出的 packet,判斷一下來源不要轉發即可, 畢竟會開 promiscuous 大部份狀況你會想同時收到本機其他 process 送出的 packet 印象中並沒有內建 promiscuous mode 禁收本機外送封包的功能。 至於 APR table 的問題,我不是很確定原因, 照理說 1. 無腦轉送 packet 的 bridge 應該不認得 APR protocol, 所以看 bridge 的 ARP table 也很奇怪 2. 目前看到的 ARP table 問題很可能是沒有正確回應 ARP 封包造成的 但同上,bridge 本來就不要求懂 ARP,他只要把 ARP forward 到另一邊就算盡責 3. 問題是你這台和真的 bridge 又有點不一樣, bridge 轉發時可不會更動來源 MAC Address 所以是不是得要 implement 到 IP 層,也就是 router 的層級才行 簡單講就是你要能回應 ARP/RARP 封包 不過這也只是猜測,我沒有自己 implement 過 ARP 再說看你的動作模式還是比較像 bridge 的無腦轉發, 是不是不要理這個 ARP table 看起來不美觀的問題就好 -- 桃樂絲: 可是, 如果你沒有頭腦, 為什麼會說話? 稻草人: ㄝ, 我也不知... 但是有些人沒有頭腦也能說超~多話呢。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.237.131 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1566368118.A.DB8.html