Giải thích chi tiết tốt về cú pháp / etc / mạng / giao diện?


139

Tôi hiểu khái niệm rất cơ bản về cách sử dụng /etc/network/interfaces, nhưng tất cả những gì tôi tìm thấy trên mạng là các ví dụ, ví dụ sau ví dụ, mà tôi có thể sao chép-dán từ đó. Những gì tôi bỏ lỡ là một lời giải thích về cú pháp, một lời giải thích về ý nghĩa của các lệnh và thứ tự các lệnh yêu cầu. Tôi muốn hiểu, vì phần lớn thời gian sao chép-dán là không đủ, vì tôi không làm việc trên một máy mới, vì vậy tôi không thể ghi đè lên các cấu hình hiện có vì nó sẽ phá vỡ nhiều thứ. man interfaceskhông hữu ích lắm vì nó được viết rất phức tạp.

Ví dụ câu hỏi tôi có: inettrong một ifacedòng có nghĩa chính xác là gì (tôi thậm chí không thể tìm thấy nó trong trang chủ), manualtrong một ifacedòng có nghĩa chính xác là gì (nhiều ví dụ sử dụng nó, nhưng theo manpage thì nó cần một tệp cấu hình bổ sung, sau đó các ví dụ không có mặt), khi nào tôi sử dụng hoặc cần chúng? Khi nào không? Khi tôi tạo một cây cầu, chính xác điều gì sẽ xảy ra với các giao diện?


4
Trang người đàn ông cho biết những gì xuất hiện sau tên giao diện là họ địa chỉ mà giao diện sử dụng. "Inet" là tên của IPv4, inet6 cho ipv6. Ngoài ra còn có ipx, x25, appletalk ..., mặc dù ifupdown chỉ xử lý inet / inet6 / ipx như trang man giải thích. manualcó nghĩa là ifupdown không làm gì với họ, bạn phải tự làm điều đó bằng tay.
Stéphane Chazelas

Câu trả lời:


169

Chà, hãy tách nó thành từng mảnh, để dễ hiểu hơn /etc/network/interfaces:

Tùy chọn lớp liên kết + loại giao diện (thường là đầu tiên của mỗi khổ giao diện và được gọi là địa chỉ họ + phương thức theo interfaces(5)manpages):

auto interface- Bắt đầu (các) giao diện khi khởi động. Đó là lý do tại sao logiao diện sử dụng loại cấu hình liên kết này.

allow-auto interface - Giống như auto

allow-hotplug interface- Khởi động giao diện khi phát hiện sự kiện "hotplug". Trong thế giới thực, điều này được sử dụng trong các tình huống tương tự autonhưng sự khác biệt là nó sẽ chờ đợi một sự kiện như "được phát hiện bởi udev hotplug api" hoặc "cáp được liên kết". Xem " Nội dung liên quan (hotplug) " để biết thêm thông tin.

Các tùy chọn này có khá nhiều tùy chọn "lớp 2", thiết lập trạng thái liên kết trên các giao diện và không liên quan đến "lớp 3" (định tuyến và địa chỉ). Ví dụ, bạn có thể có một tập hợp liên kết trong đó giao diện bond0 cần phải lên bất kể trạng thái liên kết là gì và các thành viên của nó có thể hoạt động sau một sự kiện trạng thái liên kết:

auto bond0
iface bond0 inet manual
        down ip link set $IFACE down
        post-down rmmod bonding
        pre-up modprobe bonding mode=4 miimon=200
        up ip link set $IFACE up mtu 9000
        up udevadm trigger

allow-hotplug eth0
iface eth0 inet manual
        up ifenslave bond0 $IFACE
        down ifenslave -d bond0 $IFACE 2> /dev/null

allow-hotplug eth1
iface eth1 inet manual
        up ifenslave bond0 $IFACE
        down ifenslave -d bond0 $IFACE 2> /dev/null

Vì vậy, theo cách này tôi tạo một tập hợp liên kết và các giao diện sẽ được thêm vào nó và loại bỏ trên các trạng thái liên kết cáp.

Các loại giao diện phổ biến nhất:

Tất cả các tùy chọn bên dưới là hậu tố cho giao diện đã xác định ( iface <Interface_family>). Về cơ bản, việc iface eth0tạo ra một khổ thơ được gọi eth0trên thiết bị Ethernet. iface ppp0nên tạo một giao diện điểm-điểm và nó có thể có nhiều cách khác nhau để có được các địa chỉ như thế inet wvdialsẽ chuyển cấu hình của giao diện này thành wvdialconftập lệnh. Các tuple inet/ inet6+ optionsẽ xác định phiên bản của giao thức IP sẽ được sử dụng và cách địa chỉ này sẽ được cấu hình ( static, dhcp, scripts...). Các hướng dẫn sử dụng trực tuyến Debian sẽ cho bạn biết thêm chi tiết về việc này.

Tùy chọn trên giao diện Ethernet:

inet static - Xác định địa chỉ IP tĩnh.

inet manual- Không xác định địa chỉ IP cho giao diện. Thường được sử dụng bởi các giao diện là thành viên cầu nối hoặc tập hợp, các giao diện cần hoạt động ở chế độ bừa bãi ( ví dụ: phản chiếu cổng hoặc TAP mạng ) hoặc có thiết bị Vlan được cấu hình trên chúng. Đó là một cách để giữ cho giao diện không có địa chỉ IP.

inet dhcp - Có được địa chỉ IP thông qua giao thức DHCP.

inet6 static - Xác định địa chỉ IPv6 tĩnh.

Thí dụ:

# Eth0
auto eth0
iface eth0 inet manual
    pre-up modprobe 8021q
    pre-up ifconfig eth0 up
    post-down ifconfig eth0 down

# Vlan Interface
auto vlan10
iface vlan10 inet static
        address 10.0.0.1
        netmask 255.255.255.0
        gateway 10.0.0.254
        vlan-raw-device eth0
        ip_rp_filter 0

Ví dụ này sẽ eth0xuất hiện và tạo giao diện Vlan được gọi là vlan10sẽ xử lý thẻ số 10 trên khung Ethernet.

Các tùy chọn phổ biến bên trong khổ thơ giao diện (lớp 2 và 3):

address - Địa chỉ IP cho giao diện được định cấu hình IP tĩnh

netmask- Mặt nạ mạng. Có thể được thông báo nếu bạn sử dụng địa chỉ cidr. Thí dụ:

iface eth1 inet static
    address 192.168.1.2/24
    gateway 192.168.1.1

gateway- Cổng mặc định của máy chủ. Hãy cẩn thận để chỉ sử dụng một trong những anh chàng này.

vlan-raw-device - Trên giao diện Vlan, xác định "cha đẻ" của nó.

bridge_ports - Trên giao diện cầu, xác định thành viên của nó.

down- Sử dụng lệnh sau để xuống giao diện thay vì ifdown.

post-down - Các hành động được thực hiện ngay sau khi giao diện bị hỏng.

pre-up - Thao tác trước khi giao diện được bật lên.

up- Sử dụng lệnh sau để lên giao diện thay vì ifup. Tùy thuộc vào trí tưởng tượng của bạn để sử dụng bất kỳ tùy chọn có sẵn trên iputils. Để làm ví dụ, chúng ta có thể sử dụng up ip link set $IFACE up mtu 9000để kích hoạt các khung jumbo trong quá trình uphoạt động (thay vì sử dụng mtutùy chọn đó). Bạn cũng có thể gọi bất kỳ phần mềm nào khác như up sleep 5; mii-tool -F 100baseTx-FD $IFACEbắt buộc 100Mbps Full duplex 5 giây sau khi giao diện được bật.

hwaddress ether 00:00:00:00:00:00- Thay đổi địa chỉ mac của giao diện thay vì sử dụng địa chỉ được mã hóa cứng thành rom hoặc được tạo bởi thuật toán. Bạn có thể sử dụng từ khóa randomđể lấy địa chỉ mac ngẫu nhiên.

dns-nameservers- Địa chỉ IP của máy chủ tên. Yêu cầu resolvconfgói. Đó là một cách tập trung tất cả thông tin /etc/network/interfacesthay vì sử dụng /etc/resolv.confcho các cấu hình liên quan đến DNS. Không chỉnh sửa resolv.conftệp cấu hình theo cách thủ công vì nó sẽ được thay đổi động bởi các chương trình trong hệ thống.

dns-search example.net- Nối example.net làm tên miền cho các truy vấn của máy chủ, tạo FQDN. Lựa chọn domaincủa/etc/resolv.conf

wpa-ssid - Không dây: Đặt SSID WPA không dây.

mtu- Kích thước MTU . mtu 9000= Khung Jumbo. Hữu ích nếu hộp Linux của bạn được kết nối với các công tắc hỗ trợ kích thước MTU lớn hơn. Có thể phá vỡ một số giao thức (tôi đã có trải nghiệm xấu với khung snmp và jumbo).

wpa-psk - Không dây: Đặt PSK được mã hóa thập lục phân cho SSID của bạn.

ip_rp_filter 1- Kích hoạt bộ lọc đường dẫn ngược . Hữu ích trong trường hợp bạn có 2 tuyến đến một máy chủ và điều này sẽ buộc gói trở về từ nơi nó đến (cùng giao diện, sử dụng các tuyến của nó). Ví dụ: Bạn được kết nối trên lan ( 192.168.1.1/24) và bạn có máy chủ dlna với một giao diện trên lan ( 192.168.1.10/24) và giao diện khác trên dmz để thực thi các tác vụ quản trị ( 172.16.1.1/24). Trong phiên ssh từ máy tính của bạn đến ip dlna dmz, thông tin cần phải quay lại với bạn, nhưng sẽ bị treo vĩnh viễn vì máy chủ dlna của bạn sẽ cố gắng gửi phản hồi trực tiếp qua giao diện lan. Với rp_filter được bật, nó sẽ đảm bảo rằng kết nối sẽ trở lại từ nơi nó đến. Thêm thông tin ở đây .

Một số tùy chọn không phải là tùy chọn. Debian sẽ cảnh báo bạn nếu bạn đặt một địa chỉ IP trên một giao diện mà không có netmask chẳng hạn.

Bạn có thể tìm thấy nhiều ví dụ tốt về cấu hình mạng ở đây .

Nội dung liên quan :

Liên kết có thông tin liên quan đến /etc/network/interfacestệp cấu hình mạng:


Cảm ơn, điều này giúp nhiều. Có inetliên quan gì đến "internet" không? Tôi đã đọc một số thông tin rằng nó chỉ có nghĩa là "IPv4" và inet6có nghĩa là "IPv6", nhưng thuật ngữ "inet" thực sự khó hiểu khi bạn nhìn thấy nó và nhầm lẫn với từ "internet". Và những cái tên mà người ta sử dụng, như eth0, chúng được định nghĩa hay tôi có thể tự mình chọn chúng? Nếu tôi có nhiều hơn một bộ điều hợp mạng LAN, làm thế nào để tôi biết cái nào eththuộc về bộ điều hợp LAN nào?
Foo Bar

2
Cả hai. Họ cùng nhau xác định phương thức aquisition địa chỉ ip (dhcp, static, ppp scripts, no address) và phiên bản của giao thức ip ( inet= v4 và inet6= v6). Tên giao diện khá nhiều phụ thuộc vào phân phối bạn đang sử dụng và cách udevđược định cấu hình. Debian sử dụng eth*wlan*giao diện cáp và không dây. Fedora sử dụng sơ đồ tên miền sinh học em0là giao diện ethernet tích hợp đầu tiên trên bo mạch chủ của bạn và p<slot>p<eth port>tên cho một nic nic. Bạn có thể sửa tên mạng tại /etc/udev/rules.d/70-persistent-net.ruleshoặc tạo bí danh trên interfaces.

2
Về "gateway - cổng mặc định của máy chủ. Hãy cẩn thận khi chỉ sử dụng một trong số anh chàng này." Là một trong mỗi khổ thơ hoặc một giao diện cổng trong số tất cả các khổ thơ?
ctbrown

2
Nên là một cửa ngõ trong số tất cả các khổ thơ, hoặc, bạn sẽ gặp rắc rối với tuyến đường mặc định của mình. Để làm việc với đa cổng / đa liên kết, một số suy nghĩ với iptables + gói đánh dấu + quy tắc ip sẽ là cần thiết.

Một truy vấn nhỏ, nếu trong tệp này, tôi có iface eth0 inet tĩnh và sau đó nếu tôi viết một số IP theo trường địa chỉ, điều này có nghĩa là IP cụ thể mà tôi vừa viết sẽ được liên kết với địa chỉ MAC của hệ thống của tôi?
k10

0

Tôi cũng sẽ thêm rằng:

  • giao diện dành cho dịch vụ ifup / ifdown.
  • Khi bạn sử dụng cho phép hotplug, nó sẽ không bắt đầu bằng ifup / ifdown, bcos u cần sử dụng cờ --allow = hotplug.

Bạn có thể theo dõi những gì đang xảy ra với ifup bằng cách sử dụng cờ --verbose.

Tôi không chắc chắn 100% về điều này, nhưng có vẻ như về cơ bản khi ifup được gọi là u sẽ thực thi tất cả từ / etc / network / giao diện với ... nếu không được nêu khác.

Tôi không biết nó liên quan đến: mạng dịch vụ ...

Sẽ rất tuyệt nếu ai đó chỉ ra những gì đang xảy ra sau cuộc gọi:

service networking restart

liên quan đến ifup / ifdown.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.