好吧,让我们将其分成几部分,以使其更易于理解/etc/network/interfaces
:
链接层 +接口类型选项(通常是每个接口节的第一个,并通过interfaces(5)
手册页称为地址族+方法):
auto interface
–在启动时启动接口。这就是为什么lo
界面使用这种链接配置的原因。
allow-auto interface
- 如同 auto
allow-hotplug interface
–当检测到“热插拔”事件时,启动界面。在现实世界中,这与在相同情况下使用,auto
但不同之处在于它将等待诸如“被udev hotplug api检测到”或“电缆链接”之类的事件。有关其他信息,请参见“ 相关材料(热插拔) ”。
这些选项几乎是“第2层”选项,用于在接口上设置链接状态,并且与“第3层”(路由和寻址)无关。例如,您可能有一个链路聚合,其中不管链接状态是什么,bond0接口都需要启动,并且其成员可以在链接状态事件后启动:
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
因此,通过这种方式,我创建了一个链路聚合,接口将被添加到其中,并在电缆链路状态上被删除。
最常见的接口类型:
以下所有选项都是定义的接口(iface <Interface_family>
)的后缀。基本上,iface eth0
创建一个eth0
在以太网设备上调用的节。iface ppp0
应该创建一个点对点的接口,并且它可能有不同的方式来获取地址,这样inet wvdial
会将该接口的配置转发给wvdialconf
脚本。该元组inet
/ inet6
+ option
将定义的版本IP协议将被用来与该地址将被配置的方式(static
,dhcp
,scripts
...)。在网上的Debian手册会给你更多细节。
以太网接口上的选项:
inet static
–定义静态IP地址。
inet manual
–没有为接口定义IP地址。通常由作为桥接或聚合成员的接口,需要以混杂模式运行的接口(例如,端口镜像或网络TAP)或在其上配置了VLAN设备的接口使用。这是保持接口不带IP地址的一种方法。
inet dhcp
–通过DHCP协议获取IP地址。
inet6 static
–定义静态IPv6地址。
例:
# 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
此示例将eth0
启动并创建一个名为VLAN的接口vlan10
,该接口将处理以太网帧上的标记号10。
接口节(第2层和第3层)内的常用选项:
address
–静态IP配置接口的IP地址
netmask
–网络掩码。如果使用cidr地址,则可以省略。例:
iface eth1 inet static
address 192.168.1.2/24
gateway 192.168.1.1
gateway
–服务器的默认网关。注意只使用其中一个。
vlan-raw-device
–在VLAN接口上,定义其“父亲”。
bridge_ports
–在网桥接口上,定义其成员。
down
–使用以下命令代替来关闭接口ifdown
。
post-down
–接口关闭后立即采取的措施。
pre-up
–接口启动之前的操作。
up
–使用以下命令代替接口ifup
。使用上的任何选项完全取决于您的想象iputils
。例如,我们可以在操作过程中up ip link set $IFACE up mtu 9000
启用巨型帧up
(而不是使用mtu
选项本身)。您也可以调用其他任何软件,例如up sleep 5; mii-tool -F 100baseTx-FD $IFACE
在接口启动后5秒钟强制100Mbps全双工。
hwaddress ether 00:00:00:00:00:00
-更改接口的mac地址,而不要使用硬编码到rom中或由算法生成的地址。您可以使用关键字random
来获取随机的mac地址。
dns-nameservers
–名称服务器的IP地址。需要resolvconf
包装。这是一种集中所有信息的方式,/etc/network/interfaces
而不是/etc/resolv.conf
用于与DNS相关的配置。请勿resolv.conf
手动编辑配置文件,因为配置文件会被系统中的程序动态更改。
dns-search example.net
–将example.net作为域附加到主机查询中,以创建FQDN。期权domain
的/etc/resolv.conf
wpa-ssid
–无线:设置无线WPA SSID。
mtu
- MTU大小。mtu 9000
=巨型帧。如果您的Linux机器与支持更大MTU大小的交换机连接,则很有用。可能会破坏某些协议(我在使用snmp和巨型帧方面经验很差)。
wpa-psk
–无线:为您的SSID设置十六进制编码的PSK。
ip_rp_filter 1
- 启用反向路径过滤器。在您有两条通往主机的路由的情况下很有用,这将迫使数据包从其到达的地方返回(相同接口,使用其路由)。示例:您已连接到lan(192.168.1.1/24
)上,并且具有一台dlna服务器,该服务器的lan(192.168.1.10/24
)上有一个接口,而dmz上有另一个接口来执行管理任务(172.16.1.1/24
)。在从计算机到dlna dmz ip的ssh会话中,信息需要返回给您,但由于您的dlna服务器将尝试直接通过其lan接口传递响应,因此该信息将永远挂起。在启用rp_filter的情况下,它将确保连接将从其来源返回。更多信息在这里。
其中一些选项不是可选的。例如,如果您将IP地址放在没有网络掩码的接口上,Debian会警告您。
您可以在此处找到更多网络配置的好示例。
相关资料:
具有与/etc/network/interfaces
网络配置文件有关的信息的链接:
manual
意味着ifupdown对它们不做任何事情,您必须自己手动进行。