คำถามติดแท็ก linux-networking

Linux Networking หมายถึงฟังก์ชั่นเครือข่ายใด ๆ ที่ดำเนินการโดยเซิร์ฟเวอร์ที่ใช้ Linux เซิร์ฟเวอร์ Linux ที่ทำงานเป็นเราเตอร์หรือไฟร์วอลล์เป็นแอพพลิเคชั่นทั่วไป

2
ให้บริการ 10,000 ผู้ใช้พร้อมกันผ่าน Wifi
ฉันกำลังมองหาที่จะให้บริการ wifi ในงานสาธารณะ การจราจรจะน้อยมาก 10KBps ควรเพียงพอ ผู้ใช้ไม่จำเป็นต้องเชื่อมต่อกับสิ่งอื่นใดนอกจากอินทราเน็ตส่วนตัว สมมติว่าผู้ใช้ 10k ทั้งหมดจะใช้เครือข่ายในเวลาเดียวกันฉันจะเริ่มหาโซลูชันได้จากที่ใด

4
“ Stale NFS file handle” หลังจากรีบูต
บนโหนดเซิร์ฟเวอร์เป็นไปได้ที่จะเข้าถึงโฟลเดอร์ที่ส่งออก อย่างไรก็ตามหลังจากรีบูตเครื่อง (ทั้งเซิร์ฟเวอร์และไคลเอนต์) โฟลเดอร์จะไม่สามารถเข้าถึงได้จากไคลเอนต์ บนเซิร์ฟเวอร์ # ls /data Folder1 Forlder2 และไฟล์ / etc / exports มี /data 192.168.1.0/24(rw,no_subtree_check,async,no_root_squash) บนไคลเอนต์ # ls /data ls: cannot access /data: Stale NFS file handle ฉันต้องบอกว่าไม่มีปัญหากับโฟลเดอร์ที่แชร์จากฝั่งไคลเอ็นต์ แต่หลังจากรีบูตเครื่อง (เซิร์ฟเวอร์และไคลเอนต์) ฉันเห็นข้อความนี้ มีวิธีแก้ไขไหม?

4
วิธีดูบน Linux อินเตอร์เฟสเครือข่ายและที่อยู่ IP ต้นทางใดที่ใช้สำหรับเส้นทางไปยังโฮสต์ปลายทางที่ระบุ
ถ้าฉันมีอินเตอร์เฟสเครือข่ายหลายตัว (ที่นี่: 2) บนเครื่อง Linux (ที่นี่: Debian Lenny) ฉันจะดูได้อย่างไรว่าอินเตอร์เฟสเส้นทางเครือข่าย (NIC) ใดไปยังโฮสต์ปลายทางที่เจาะจงกำลังดำเนินการและค่าเริ่มต้นของที่อยู่ IP ต้นทางใดที่ใช้ ฉันมี แต่ของใช้ ping -I nic1 desthost.example.com ping -I nic2 desthost.example.com ดูว่าทั้งสองวิธีเป็นไปได้หรือไม่ (ที่นี่: เป็นไปได้ทั้งสองวิธี) ฉันค้นหาตารางเส้นทาง ip route show แต่มันค่อนข้างซับซ้อนดังนั้นฉันคิดว่าต้องมีเครื่องมือง่ายๆขนาดเล็กเพื่อบอกฉัน: "ไปยังโฮสต์ปลายทาง desthost.example.com ใช้อินเทอร์เฟซ nicX และแหล่งที่อยู่ IP 10.0.0.1" วิธีที่ง่ายที่สุดในการรับข้อมูลนี้คืออะไร? (และฉันไม่ต้องการใช้ tcpdump และตั้งค่าอินเทอร์เฟซในโหมด promiscous) ขอบคุณ

4
ชื่ออินเตอร์เฟสเครือข่ายที่คาดการณ์ได้ใน systemd
เวอร์ชันล่าสุดของ Ubuntu และ Debian (ขยาย) นำเสนอโครงร่างอินเตอร์เฟสเครือข่ายใหม่ ตอนนี้เมื่ออัปเดตจากระบบที่ใช้ชื่อแบบเก่าเช่น "eth0" ฉันต้องการทราบก่อนที่จะบูตว่าชื่อใหม่จะเป็นอย่างไร ฉันจะทำสิ่งนี้ได้อย่างไร มีการเรียกใช้เวทมนต์ของ "systemd" ฉันสามารถใช้เพื่อแก้ไข / etc / network / interface ก่อนการบูท (และต่อมาสูญเสียการเชื่อมต่อเครือข่าย)?

2
การเพิ่มทั้งบล็อก IPv6 / 64 ให้กับเครือข่ายอินเทอร์เฟซบนเดเบียน
ฉันพยายามเพิ่มทั้งบล็อก IPv6 (/ 64) ลงในส่วนต่อประสานที่ใช้ ip route add local 2001:41d0:2:ad64::/64 dev lo เช่นอธิบายไว้ที่นี่บนเซิร์ฟเวอร์ Debian ของฉัน แต่ฉันดูเหมือนจะหายไปบางสิ่งบางอย่าง ถ้าฉัน ping ตัวอย่าง2001:41d0:2:ad64::feทุกอย่างในพื้นที่ทำงานได้ดี แต่ถ้าฉันลองจากเครื่องระยะไกลมันไม่ทำงาน ฉันลองเพิ่มเส้นทางใน eth0: ip route add local 2001::41d0:2:ad64::/64 dev eth0 ตอนนี้ฉันไม่สามารถปิงที่อยู่ตัวอย่างใด ๆ ในเครื่องได้! ฉันหายไปเล็กน้อยเนื่องจากดูเหมือนว่าจะพลาดบางสิ่ง แต่ฉันไม่พบคำตอบที่นี่ สั้น: ฉันต้องการ2001:41d0:2:ad64::/64ที่จะผูกพันกับ eth0 เพื่อให้ทุก IP บล็อกนี้มีจะสามารถเข้าถึงได้จากอินเทอร์เน็ตบนเครื่องของฉัน ฉันหวังว่าใครบางคนที่นั่นสามารถชี้ทางที่ถูกต้องให้ฉันได้ ขอบคุณล่วงหน้า. คู่มือจาก ISP ไม่ต้องให้ฉันเพิ่มแต่ละ IPv6 เพื่อติดต่อ explictly ฉันต้องการที่จะบอกเป็นนัย การกำหนดค่าการทำงานพร้อมการเชื่อมโยงที่อยู่ …

3
ไม่สามารถเพิ่มเส้นทางคงที่: SIOADDRT: เครือข่ายไม่สามารถเข้าถึงได้
ฉันทุบหัวของฉันกับกำแพงเป็นเวลาสองสามวันเพื่อพยายามคิดออก: ifconfig ของฉันคือ: eth0 Link encap:Ethernet HWaddr 00:50:56:BB:XX:XX inet addr:192.168.36.132 Bcast:192.168.37.255 Mask:255.255.254.0 eth1 Link encap:Ethernet HWaddr 00:50:56:BB:XX:XX inet addr:116.xx.xx.xx Bcast:116.xx.xx.xx Mask:255.255.255.192 เมื่อฉันลองและเพิ่มเส้นทางแบบคงที่เพื่อออกจาก eth0 ฉันได้รับข้อผิดพลาดต่อไปนี้: servername-test:/ # route add -net 10.248.12.0 netmask 255.255.255.240 gw 192.168.36.254 dev eth0 SIOCADDRT: Network is unreachable เกตเวย์เริ่มต้นของฉันคือ: servername-test:~ # netstat -anr Kernel IP routing table Destination …

1
แท็ก VLAN ไม่แสดงในการดักจับแพ็กเก็ต (Linux) ผ่าน tcpdump
ฉันกำลังเพิ่มแท็ก VLAN ลงใน eth0: #ip link add link eth0 name eth0.20 type vlan id 20 ผลลัพธ์นี้ใน: #ip link 2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff .... 12: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff #ip -d link …

8
วิธียืนยันการตั้งค่า ethtool ผ่านการรีบูท
ฉันต้องการปิดการแบ่งส่วนข้อมูล tcp บนเซิร์ฟเวอร์ CentOS5 การใช้ ethtool คำสั่งคือethtool -K eth0 tso offอย่างไรก็ตามการตั้งค่านี้จะคงอยู่สำหรับเซสชันนี้เท่านั้น ฉันจะทำให้มันคงอยู่ได้ด้วยการรีบูตเครื่อง?

2
CoreOS: tcpdump แก้ไขปัญหาเครือข่ายอย่างลึกลับ (ใช้ซ็อกเก็ตจำนวนมากเกินไป)
วันนี้ฉันมีเรื่องลึกลับสำหรับคุณ เราเรียกใช้คลัสเตอร์ Elasticsearch ขนาดเล็กสามโหนดที่ใช้ CoreOS (2023.5.0 / Linux 4.19.25-coreos) บน Azure Elasticsearch ทำงานภายในคอนเทนเนอร์นักเทียบท่าในโหมดโฮสต์เครือข่าย หลังจากใช้งานการบำรุงรักษาเกือบทั้งหมดฟรีเป็นเวลานานกว่าหนึ่งปีเราได้เห็นเครื่องเข้าสู่สถานะที่น่าสนใจมาก ปรับปรุง ปัญหานี้ถูกแก้ไขได้โดยการแก้ไขที่จะขับรถในลินุกซ์เคอร์เนล ดูคำตอบด้านล่าง อาการ โดยพื้นฐานแล้วการเชื่อมต่อระหว่างเครื่องที่ได้รับผลกระทบและอีกสองโหนดจะตาย ทั้งหมดอยู่ในเครือข่ายเสมือนเดียวกันและเครือข่ายย่อยเดียวกันและสามารถสื่อสารกับ eath อื่น ๆ ได้ โหนดที่ได้รับผลกระทบยังสามารถเข้าถึงได้จากเครือข่ายย่อยอื่น ๆ (ฉันสามารถ ssh เข้าไปได้) และจากเครือข่ายเสมือนที่แตกต่างกัน เครื่องยังมีการเชื่อมต่อกับอินเทอร์เน็ต (ขาด ๆ หาย ๆ ) แต่การร้องขอส่วนใหญ่จะหมดเวลา เราสังเกตว่าบนโหนดที่ได้รับผลกระทบจำนวน "ซ็อกเก็ตที่ใช้" ที่รายงานโดย/proc/net/sockstatมีค่าสูงมาก (~ 4.5k แทน ~ 300 บนโหนดที่มีสุขภาพดี) การตรวจสอบแสดงให้เห็นว่าจำนวนนี้เพิ่มขึ้นอย่างรวดเร็วจากช่วงเวลาที่โหนดจะไม่พร้อมใช้งาน สิ่งที่สนุกคือเราไม่สามารถระบุแหล่งที่มาของซ็อกเก็ตที่ใช้แล้ว: # cat …

1
ความแตกต่างระหว่าง net.core.rmem_max และ net.ipv4.tcp_rmem
ความแตกต่างระหว่าง net.core.rmem_max และค่าที่สามของ net.ipv4.tcp_rmem คืออะไร ข้อใดมีความสำคัญสูงกว่าสำหรับการเชื่อมต่อ tcp สำหรับสองตัวอย่างด้านล่างบัฟเฟอร์สูงสุดสำหรับการเชื่อมต่อ tcp คืออะไร Case 1: sysctl -w net.core.rmem_max=7388608 sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608' Case 2: sysctl -w net.core.rmem_max=8388608 sysctl -w net.ipv4.tcp_rmem='4096 87380 7388608'

4
ฉันจะสลับจากเนมสเปซเครือข่าย linux ที่กำหนดเองกลับไปเป็นค่าเริ่มต้นได้อย่างไร
ด้วยip netns execคุณสามารถรันคำสั่งในเนมสเปซเครือข่ายที่กำหนดเองได้ แต่มีวิธีการรันคำสั่งในเนมสเปซเริ่มต้นด้วยหรือไม่ ตัวอย่างเช่นหลังจากรันคำสั่งทั้งสองนี้: sudo ip netns add test_ns sudo ip netns exec test_ns bash bash ที่สร้างขึ้นใหม่สามารถรันโปรแกรมในเนมสเปซเครือข่ายเริ่มต้นได้อย่างไร ไม่มีเป็นIP netns exec เริ่มต้นหรืออะไรที่คล้ายกันเท่าที่ผมได้พบ สถานการณ์ของฉันคือ: ฉันต้องการเรียกใช้เซิร์ฟเวอร์ SSH ในเนมสเปซเครือข่ายแยกต่างหาก (เพื่อให้ระบบที่เหลือไม่รู้จักการเชื่อมต่อเครือข่ายเนื่องจากระบบใช้สำหรับการทดสอบเครือข่าย) แต่ต้องการให้สามารถรันโปรแกรมในเนมสเปซเครือข่ายเริ่มต้นผ่าน การเชื่อมต่อ SSH สิ่งที่ฉันค้นพบแล้ว: เนมสเปซเครือข่ายที่สร้างขึ้นจะแสดงเป็นไฟล์ภายใต้ / var / run / netns (แต่ไม่มีไฟล์สำหรับเนมสเปซเริ่มต้น) รหัสip netns execสามารถพบได้ที่นี่: http://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/tree/ip/ipnetns.c#n132 - ฉันไม่เข้าใจทุกอย่าง มันกำลังทำอยู่ แต่มันก็ดูไม่ค่อยสดใสเท่าไหร่นัก ip netns ระบุ …

2
eth0 NIC Link เป็นข้อความซ้ำในเคอร์เนล
ฉันสังเกตเห็นตั้งแต่ไม่กี่วันที่ผ่านมาว่ามีข้อความซ้ำเกิดขึ้นซ้ำ ๆ กันและฉันสามารถพูดได้ว่าไม่มีอะไรเปลี่ยนแปลงโดยเจตนา (ติดตั้ง / ถอนการติดตั้ง) ในช่วงเวลานั้น นี่คือตัวอย่างของข้อความ/var/log/kern.log : Mar 30 06:32:45 aurora kernel: [566322.867110] e1000e: eth0 NIC Link is Down Mar 30 06:32:47 aurora kernel: [566325.313634] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx Mar 30 06:32:59 aurora kernel: [566337.632930] e1000e: eth0 NIC Link …

1
GRO (การรับโหลดทั่วไป) ทำงานอย่างไรกับ NIC ขั้นสูงเพิ่มเติม
ฉันสนใจคำตอบเฉพาะ: NIC ที่มีการแก้ไข GRO สร้าง / สร้าง TCP ACK หรือแพ็กเก็ตอื่น ๆ (หรือคุณสมบัตินี้โปร่งใสต่อการรับสแต็ก TCP) หรือไม่? ควรจะมีการหมดเวลา / เหตุการณ์เมื่อ NIC ควรส่ง "เซ็กเมนต์ที่ติดกาว" ไปยังสแต็ก TCP หรือไม่ พวกเขาคืออะไร ในการตั้งค่าการส่งต่อแพ็คเก็ต - คุณสมบัติ GRO ยังพยายามอ่าน ACK ของตัวรับสัญญาณ (ดูด้านล่างว่าทำไมฉันจึงถามสิ่งนี้) แหล่งข้อมูลใด ๆ ที่อธิบายถึง GRO และคุณสมบัติการถ่าย NIC อื่น ๆ (TSO, LSO ... ) ดีกว่าวิกิพีเดียและหน้าลินุกซ์หน้าคนจะได้รับการชื่นชมจริงๆ รายละเอียดเพิ่มเติม: ฉันกำลังแก้ไขปัญหาด้านประสิทธิภาพด้วยการใช้งาน IPSec หนึ่งครั้ง ปัญหาคือแบนด์วิดท์ที่ใช้งานไม่ได้มีการกระจายอย่างเท่าเทียมกันทั่วทั้ง …

8
นักเทียบท่าดึง: การหมดเวลาจับมือ TLS
ฉันได้รับนี้อย่างสม่ำเสมอ (Ubuntu 16.04 LTS): $ docker pull nginx Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout อย่างไรก็ตาม curl TLS ทำงานได้ดี (นอกเหนือจากข้อผิดพลาด auth): $ curl https://registry-1.docker.io/v2/ {"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]} และแม้แต่โปรแกรม golang ขนาดเล็ก (เพื่อเลียนแบบนักเทียบท่า) ก็ใช้งานได้ดี: package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, …

2
เป็นไปได้หรือไม่ที่ L2TP VPN จะทำการกำหนดค่าเส้นทางอัตโนมัติสำหรับลูกค้าในระหว่างการเชื่อมต่อ?
เราได้ติดตั้งเซิร์ฟเวอร์ L2TP VPN ด้วยบทช่วยสอนนี้ทุกอย่างทำงานได้อย่างมีเสน่ห์ ปัญหาเดียวคือ เราไม่ต้องการให้ลูกค้ากำหนดเส้นทางการรับส่งข้อมูลทั้งหมดโดยใช้ VPN นี้เฉพาะซับเน็ตเฉพาะเช่น 10.0.0.0/20 สำหรับ Mac เราต้องตั้งค่าเส้นทางด้วยตนเองโดยใช้คำสั่ง แต่สำหรับอุปกรณ์มือถือดูเหมือนว่าไม่มีวิธีทำเช่นนั้นหรือ ดังนั้นจึงเป็นไปได้ที่จะกำหนดค่าสำหรับไคลเอ็นต์โดยอัตโนมัติสำหรับ subnet "10.0.0.0/20"

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