ฉันจะตั้งค่าบริดจ์เครือข่ายให้มี MTU เป็น 9000 ได้อย่างไร


10

ฉันต้องเชื่อมต่อเครือข่ายกิกะบิตซึ่งฉันได้เชื่อมต่อ

/ etc / network / interfaces คือ:

 auto lo
 iface lo inet loopback

# Set up interfaces manually, avoiding conflicts with, e.g., network manager
 iface eth0 inet manual

 iface eth1 inet manual

 # Bridge setup
 auto br0
 iface br0 inet static
    bridge_ports eth0 eth1
    address 192.168.88.2
    broadcast 192.168.88.255
    netmask 255.255.255.0
    gateway 192.168.88.254
    dns-nameservers 192.168.88.254

แต่ MTU มีเพียง 1500 เท่านั้น

myth@myth:~$ traceroute --mtu 192.168.88.1
traceroute to 192.168.88.1 (192.168.88.1), 30 hops max, 65000 byte packets
 1  RoboStation.local (192.168.88.1)  0.278 ms F=1500  0.279 ms  0.287 ms

ถ้าฉันใช้คำสั่งต่อไปนี้:

myth@myth:~$ sudo ifconfig eth0 mtu 9000
myth@myth:~$ sudo ifconfig eth1 mtu 9000
myth@myth:~$ traceroute --mtu 192.168.88.1

traceroute to 192.168.88.1 (192.168.88.1), 30 hops max, 65000 byte packets
 1  RoboStation.local (192.168.88.1)  0.407 ms F=9000  0.422 ms  0.383 ms

ตอนนี้ฉันมี MTU 9000 และการถ่ายโอนไปยัง NAS ของฉันเร็วขึ้นมาก

แต่ฉันคิดว่าฉันจะทำเช่นนี้ในไฟล์ / etc / network / interfaces:

 auto lo
 iface lo inet loopback

 # Set up interfaces manually, avoiding conflicts with, e.g., network manager
 iface eth0 inet manual
    mtu 9000

 iface eth1 inet manual
    mtu 9000

 # Bridge setup
 auto br0
 iface br0 inet static
    bridge_ports eth0 eth1
    address 192.168.88.2
    broadcast 192.168.88.255
    netmask 255.255.255.0
    gateway 192.168.88.254
    dns-nameservers 192.168.88.254
    mtu 9000

แต่เครือข่ายล้มเหลวในการบูต

ฉันลบส่วนmtu 9000ที่ br0 และบู๊ต PC โดยมีเครือข่ายขึ้นมา แต่ MTU ยังคงเป็น 9000

ฉันจะตั้งค่า MTU เป็น 9000 สำหรับ eth0 และ eth1 ตอนบูตได้อย่างไรบริดจ์จึงทำงานที่ 9000

นอกจากนี้ยังมีวิธีทดสอบ / etc / network / interfaces โดยไม่ต้องรีบูตเครื่องตลอดเวลาหรือไม่

คำตอบ:


9

ดูเหมือนว่าmtuตัวเลือกจะไม่สามารถใช้ได้เมื่อใช้manualวิธีการ (ดูinterfaces(5)) ดังนั้นนี่คือสิ่งที่ควรจะทำงาน (ผสมผสานความคิดเห็นจากความคิดเห็น):

auto lo
iface lo inet loopback

# Set up interfaces manually, avoiding conflicts with, e.g., network manager
iface eth0 inet manual
   # nothing here

iface eth1 inet manual
   # nothing here

# Bridge setup
auto br0
iface br0 inet static
   bridge_ports eth0 eth1
   address 192.168.88.2
   ...
   post-up ifconfig eth0 mtu 9000 && ifconfig eth1 mtu 9000

การใช้ตัวเลือกup(หรือในกรณีนี้post-up) เราสามารถระบุคำสั่งของเราเองเพื่อเรียกใช้ในระหว่าง (หลังจาก) เวลาที่อินเทอร์เฟซถูกนำขึ้นมา


1
ดูเหมือนว่าบริดจ์จะใช้ MTU ที่เล็กที่สุดจากชุดอุปกรณ์โฮสต์และใช้สิ่งนั้น MTU บน br0 ในไฟล์อินเตอร์เฟสทำให้เครือข่ายล้มเหลวในการเริ่มการบู๊ต
RoboJ1M

อย่างไรก็ตามเมื่อคืนที่ผ่านมาฉันสามารถแก้ไขมันได้โดยใช้วิธีนี้ ฉันเพิ่ม: post-up ifconfig eth0 mtu 9000ในตอนท้ายของส่วน br0 สองครั้งทั้งสำหรับ eth0 และ eth1
RoboJ1M

@ RoboJ1M ขอบคุณฉันได้อัปเดตคำตอบแล้ว
gertvdijk

หากคุณไม่มี ifconfig ให้ใช้ ip link:post-up ip link set dev eth0 mtu 9000
Jonathan S. Fisher

การแสดงผลของฉัน (ฉันอาจจะผิด) คือmtuตัวเลือกที่ควรได้รับการสนับสนุนในmanualวิธีการ (แน่นอนหน้า man ใน 14.04 ไม่แนะนำให้มันไม่ได้) และปัญหาที่อาจเกี่ยวข้องกับข้อผิดพลาดนี้ (ดูความคิดเห็น # 4 โดยเฉพาะอย่างยิ่ง) ค่อนข้างเป็นไปได้ว่าเรื่องนี้ได้รับการแก้ไขใน 16.04 เป็นผลพลอยได้จากการโยกย้าย systemd
sxc731
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.