ฉันเพิ่งตั้งค่าเราเตอร์ WNR2000v3 ที่รัน DD-WRT เป็นสะพาน repeater โดยใช้เวอร์ชัน "Atheros" ของบทช่วยสอนนี้ (เราจะเรียกสิ่งนี้ว่า 'เราเตอร์ 2') ซึ่งทำซ้ำเราเตอร์ Medialink Wireless-N (เรา) จะเรียกสิ่งนี้ว่า 'เราเตอร์ 1') มันทำงานได้อย่างสมบูรณ์แบบสำหรับโทรศัพท์ Android และคอมพิวเตอร์ Windows ทั้งผ่าน wifi และเมื่อเชื่อมต่อโดยตรงผ่านอีเธอร์เน็ต แต่เมื่อฉันเสียบ Raspberry pi ของฉันทั้งที่รัน Raspbian (เสียงดัง) หรือ Raspbmc ฉันไม่สามารถเชื่อมต่อนอกเครือข่ายท้องถิ่นได้
ราสเบอร์รี่ pi สามารถ ping (และถูก ping โดย) อุปกรณ์อื่น ๆ ในเครือข่ายย่อยในท้องถิ่นรวมถึง 'เราเตอร์ 2' ซึ่งมันเชื่อมต่อโดยตรงและสามารถรับ DHCP จากเราเตอร์ 1 แต่เมื่อฉันลองและ ping เราเตอร์ 1 ฉันได้รับ "Destination Host Unreachable" และถ้าฉันลองทำอะไรบนอินเทอร์เน็ตอย่าง google.com, superuser.com ฉันก็จะได้ "Destination Host Unreachable"
นี่คือคอมพิวเตอร์อีกเครื่องในเครือข่าย:
ping 192.168.0.100
PING 192.168.0.100 (192.168.0.100) 56(84) bytes of data.
64 bytes from 192.168.0.100: icmp_req=1 ttl=127 time=38.7 ms
64 bytes from 192.168.0.100: icmp_req=2 ttl=127 time=1.67 ms
64 bytes from 192.168.0.100: icmp_req=3 ttl=127 time=1.73 ms
64 bytes from 192.168.0.100: icmp_req=4 ttl=127 time=3.56 ms
--- 192.168.0.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.672/11.418/38.705/15.772 ms
นี่คือเราเตอร์ 1:
ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.107 icmp_seq=1 Destination Host Unreachable
From 192.168.0.107 icmp_seq=2 Destination Host Unreachable
From 192.168.0.107 icmp_seq=3 Destination Host Unreachable
From 192.168.0.107 icmp_seq=4 Destination Host Unreachable
From 192.168.0.107 icmp_seq=5 Destination Host Unreachable
From 192.168.0.107 icmp_seq=6 Destination Host Unreachable
--- 192.168.0.1 ping statistics ---
8 packets transmitted, 0 received, +6 errors, 100% packet loss, time 7007ms
pipe 3
192.168.0.107 เป็นที่อยู่ของ Raspberry Pi:
ifconfig
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:db:c9
inet addr:192.168.0.107 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3753 errors:0 dropped:0 overruns:0 frame:0
TX packets:1262 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:595127 (581.1 KiB) TX bytes:112407 (109.7 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:285 errors:0 dropped:0 overruns:0 frame:0
TX packets:285 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:27703 (27.0 KiB) TX bytes:27703 (27.0 KiB)
นี่คือตารางเส้นทาง
sudo route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
และนี่คือคำขอ DHCP:
sudo dhclient -v eth0
Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/xx:xx:xx:xx:db:c9
Sending on LPF/eth0/xx:xx:xx:xx:db:c9
Sending on Socket/fallback
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
RTNETLINK answers: File exists
bound to 192.168.0.107 -- renewal in 274691 seconds.
ทุกอย่างทำงานได้ดี แต่ฉันลอง rapsberry pi สองภาพที่แตกต่างกัน (Raspbmc และ raspbian) และ raspberry pis ที่แตกต่างกันสองภาพและไม่มีการกำหนดค่าทำงาน ภาพ raspbian ได้รับการทดสอบว่าใช้งานได้เมื่อเชื่อมต่อโดยตรงกับเราเตอร์ 1 ปัญหานี้ดูเหมือนจะคล้ายกับคำถามที่ยังไม่ได้ตอบเมื่อสองปีก่อนยกเว้นว่าในกรณีนั้นดูเหมือนว่าเขาใช้ wifi สำหรับอุปกรณ์ที่ไม่สามารถเชื่อมต่อได้ จริง ๆ แล้วเขาได้รับการเชื่อมต่อเป็นระยะ ๆ นอกจากนี้ยังมีการตอบสนอง ping จากเราเตอร์ไม่ใช่อุปกรณ์ สิ่งที่อาจทำให้เกิดปัญหานี้?
แก้ไข:ฉันควรทราบด้วยว่าราสเบอร์รี่ pis ที่แตกต่างกันสองรายการมีที่อยู่ IP ที่แตกต่างกันซึ่งหนึ่งในนั้นถูกผูกไว้กับ IP-MAC และไม่มีการชนกันของ IP ที่ฉันเห็นในตาราง DHCP แต่ปัญหาเดียวกันในแต่ละรายการ
อัปเดต : ฉันได้พิจารณาสิ่งหนึ่งที่น่าสนใจซึ่งก็คือเมื่อการปิดที่อยู่ MAC ถูกปิดใช้งานสะพานทวนหยุดทำงาน - สิ่งเดียวที่สามารถ ping raspberry pi คือเราเตอร์ 2 และไม่มีการเชื่อมต่อ (หรือเข้าถึงเราเตอร์ 1) สิ่งใดก็ตามที่เชื่อมต่อกับเราเตอร์ 2 - รวมถึงเครื่อง Windows อย่างไรก็ตามที่อยู่ mac ที่ถูกโคลนเป็นที่อยู่ mac เดียวกับที่ใช้งานจริงโดยอินเทอร์เฟซของเราเตอร์ 2 ต่อไป (ตามหน้า "สถานะ") ฉันมีพลังงานกรณืทั้งเราเตอร์ 1 และเราเตอร์ 2 สองครั้งและมันก็ไม่ต่างกัน ฉันไม่เข้าใจว่าทำไมการโคลนที่อยู่ MAC จึงมีความเกี่ยวข้องที่นี่ เมื่อปิดที่อยู่ MAC เมื่อฉันใส่ตัวเราเตอร์เองเราเตอร์สามารถ ping Raspberry pi ได้ แต่ไม่ใช่เราเตอร์ 1
อีกอย่างหนึ่งที่เล็กคือเมื่อการโคลนที่อยู่ MAC เปิดอยู่และฉันสามารถ ping คอมพิวเตอร์เครื่องอื่นบนเครือข่ายได้ arping จะส่งคืนที่อยู่ mac เดียวกันสำหรับทุกอุปกรณ์ที่ตอบสนองต่อการปิง
อัปเดต 2:จากการตรวจสอบค่า syslog ฉันพบว่ามีข้อผิดพลาดนี้เกี่ยวกับที่อยู่ MAC:
Jan 1 00:00:08 Router 2 kern.err kernel: [ 6.770000] ath: eeprom contains invalid mac address: ff:ff:ff:ff:ff:ff
Jan 1 00:00:08 Router 2 kern.err kernel: [ 6.780000] ath: random mac address will be used: fa:55:da:33:19:a9
เห็นได้ชัดว่านี่เป็นปัญหาที่ทราบกันดีว่าผู้คนกำลังแก้ปัญหาโดยใช้การโคลนที่อยู่ MAC ฉันไม่แน่ใจว่าทำไมที่อยู่ MAC แบบสุ่มเป็นปัญหาและผลที่ตามมาอื่น ๆ จากการโคลนที่อยู่ MAC คืออะไร