ทำการเปลี่ยนแปลงถาวรในตารางเส้นทาง


10

ฉันมีราสเบอรี่รุ่น PI 2 กับรุ่นราสเบียนเจสซีและฉันพยายามนำอินเทอร์เน็ตจากพีซีของฉันไปยังราสเบอร์รี่ ฉันมีอินเตอร์เฟซเครือข่าย 2 จุดระหว่างหนึ่งอันคือผ่านอีเธอร์เน็ตและอีกอันหนึ่งเป็นผ่าน Wifi ฉันได้กำหนดค่าที่อยู่ IP ของอีเทอร์เน็ตใน Raspberry ให้คงที่เพราะฉันมีเครือข่ายคอมพิวเตอร์ขนาดเล็กที่บ้านที่มีที่อยู่ IP แบบคงที่และฉันต้องการให้ราสเบอร์รี่เป็นส่วนหนึ่งของมัน เนื่องจากอินเทอร์เน็ตของฉันช้ามาก (ฉันใช้โมเด็ม dial-up) ฉันไม่ต้องการแบ่งปันอินเทอร์เน็ตที่ช้านี้ผ่านทางอินเตอร์เฟสอีเธอร์เน็ตเพราะฉันไม่ต้องการให้คอมพิวเตอร์ทุกเครื่องที่เชื่อมต่อกับเครือข่ายนี้ระบายความเร็วอินเทอร์เน็ตของฉัน เนื่องจากฉันตั้งใจจะนำอินเทอร์เน็ตไปที่ Raspberry ฉันได้สร้างฮอตสปอต Wifi ในพีซีของฉันซึ่งกำหนดที่อยู่ IP แบบไดนามิกให้กับ Raspberry ของฉัน (ซอฟต์แวร์ฮอตสปอตมี DHCP บางประเภท) และนั่นคือ '

แต่แล้วปัญหาของฉันจะเริ่มต้นตามค่าเริ่มต้นหลังจากฉันเปิดใช้งาน (หรือถ้าฉันยกเลิกการเชื่อมต่อและเชื่อมต่ออีกครั้ง) Raspberry จะไม่เชื่อมต่ออินเทอร์เน็ต เมื่อพิมพ์ifconfigฉันจะได้รับ:

eth0     
Link encap:Ethernet  HWaddr b8:27:eb:4e:35:65  
inet addr:100.100.100.25  Bcast:100.100.100.255  Mask:255.255.255.0
inet6 addr: fe80::ba27:ebff:fe4e:3565/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

wlan0     
Link encap:Ethernet  HWaddr 74:da:38:55:f3:a2  
inet addr:192.168.137.201  Bcast:192.168.137.255  Mask:255.255.255.0
inet6 addr: fec0::12:c4f1:c3fc:eb1e:3153/64 Scope:Site
inet6 addr: 2002:be0f:9cea:12:1bc0:1969:c17d:f854/64 Scope:Global
inet6 addr: fe80::bdca:7255:2e27:8341/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

เมื่อฉันพิมพ์route -nฉันจะได้รับ:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
0.0.0.0         192.168.137.1   0.0.0.0         UG    303    0        0 wlan0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

ที่นี่คุณสามารถดูว่าตัวชี้วัดของเกตเวย์การเชื่อมต่ออีเทอร์เน็ตแบบสแตติกของฉัน (100.100.100.1) มีขนาดเล็กกว่าตัวชี้วัดของเกตเวย์การเชื่อมต่อ DHCP Wifi ของฉัน (192.168.137.1) ดังนั้นราสเบอร์รี่ของฉันพยายามรับอินเทอร์เน็ตผ่านอินเตอร์เฟซที่ผิด

หลังจากฉันพิมพ์:

sudo route delete  default gateway 192.168.137.1 

แล้ว:

sudo route add  default gateway 192.168.137.1

ตารางเส้นทางของฉันได้รับการแก้ไขเป็น:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.137.1   0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

และ Raspberry สามารถเข้าถึงอินเทอร์เน็ตได้

คำถามของฉันคือ:

  1. มีวิธีที่จะทำให้กระบวนการนี้เป็นแบบอัตโนมัติหรือไม่ดังนั้นฉันจะไม่ต้องทำเองทุกครั้งที่เปิด Raspberry?
  2. มีวิธีการทำให้เป็นอัตโนมัติหรือไม่เพื่อให้รับรู้ได้เสมอว่าจะต้องได้รับอินเทอร์เน็ตจาก Wifi โดยไม่ขึ้นกับช่วง IP ที่กำหนดโดยฮอตสปอต DCHP ไปยังอินเทอร์เฟซนี้หรือไม่?
  3. ทำไมเมตริกต่ำกว่าจึงถูกกำหนดให้กับอินเตอร์เฟสอีเธอร์เน็ตโดยอัตโนมัติ

ฉันได้ตรวจสอบวิธีแก้ไขปัญหาแล้วในวิธีการเปลี่ยนแปลงตารางเส้นทางยังคงอยู่? แต่ไม่ได้ผลสำหรับฉันเพราะใน Raspbian Jessie คุณไม่ได้แก้ไขโดยตรง/etc/network/interfacesแต่คุณจะแก้ไข/etc/dhcpcd.confเพื่อให้ได้ที่อยู่ IP แบบคงที่

คำตอบ:


11

มีวิธีที่จะทำให้กระบวนการนี้เป็นแบบอัตโนมัติหรือไม่ดังนั้นฉันจะไม่ต้องทำเองทุกครั้งที่เปิด Raspberry?

ไม่จำเป็นหากคำถาม # 2 สามารถแก้ไขได้ - และสามารถ ...

มีวิธีการทำให้เป็นอัตโนมัติหรือไม่เพื่อให้รับรู้ได้เสมอว่าจะต้องได้รับอินเทอร์เน็ตจาก Wifi โดยไม่ขึ้นกับช่วง IP ที่กำหนดโดยฮอตสปอต DCHP ไปยังอินเทอร์เฟซนี้หรือไม่?

ในการ/etc/dhcpcd.confเพิ่ม

interface wlan0;
metric 200;

interface eth0
metric 300;

สิ่งนี้จะกำหนดเมตริกที่ต่ำกว่าให้กับอินเทอร์เฟซ WLAN เพื่อที่จะได้เลือกหนึ่งรายการสำหรับคำขออินเทอร์เน็ต

ทำไมเมตริกต่ำกว่าจึงถูกกำหนดให้กับอินเตอร์เฟสอีเธอร์เน็ตโดยอัตโนมัติ

เพราะนั่นคือวิธีการกำหนดเมตริกตามman dhcpcd.conf (5) :

 metric metric
         Metrics are used to prefer an interface over another one, lowest
         wins.  dhcpcd will supply a default metric of 200 +
         if_nametoindex(3).  An extra 100 will be added for wireless
         interfaces.

+1 ขอบคุณมากฉันยังไม่มีคำตอบ ฉันใช้สคริปต์คู่มือทุกครั้งที่ต้องทำเช่นนี้
VMMF

หมายเหตุนี่ใช้ไม่ได้กับการเชื่อมต่อที่ไม่ใช่ DHCP หากคุณมีการเชื่อมต่อแบบคงที่ใน / etc / เครือข่าย / อินเทอร์เฟซคุณสามารถตั้งค่าตัวชี้วัดเกตเวย์โดยการแทนที่เกตเวย์ xxx.xxx.xxx.xxx ด้วยค่าอัพเส้นทางเพิ่มค่าเริ่มต้น gw xxx.xxx.xxx.xxx เมตริก ###
Sameer Puri

0

สิ่งที่ฉันทำคือเพียงเพื่อให้มันทำงานในการบูต

เพิ่มsudo route delete defaultและsudo route add default gateway 192.168.137.1ตามลำดับเฉพาะใน/etc/init.d/rc.localไฟล์ของคุณ

ฉันลืมถ้า/etc/init.d/rc.localทำงานออกจากกล่องสำหรับเจสซีหรือแม้กระทั่งว่าคุณควรจะสัมผัสมันได้หรือไม่ แต่มันควรจะเป็นเล็กน้อยเพื่อหาทางออกอื่น (ฉันไม่ได้แล้ว)

และนี่แก้ # 1


ifmetricสำหรับการจัดลำดับความสำคัญของการเชื่อมต่อผมขอแนะนำให้คุณติดตั้ง จากนั้นเพียงจัดลำดับความสำคัญการเชื่อมต่อของคุณใน/etc/network/interfaces

ลำดับความสำคัญสูงสุดคือ 0 ถัดไปคือ 1 จากนั้น 2 และอื่น ๆ

iface eth0 inet dhcp
 metric 1

iface wlan0 inet static
 address 192.168.0.1
 netmask 255.255.255.0
 network 192.168.0.0
 metric 0

iface eth1 inet dhcp
 metric 2

และนั่นคือสำหรับ # 2


ฉันคิดว่า # 3 เกิดขึ้นเพราะ devs คิดว่า WiFi มีความสำคัญในสภาพแวดล้อมของผู้ใช้ที่ไม่ใช่ชาวนา ฉันคิดได้เพียงเพราะฉันไม่พบข้อมูลใด ๆ เกี่ยวกับเรื่องนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.