好吧,让我们将其分成几部分,以使其更易于理解/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对它们不做任何事情,您必须自己手动进行。