Openwrt系列WIKI中文原创翻译——理解网络接口 openwrt接口设置

http://nuwiki.openwrt.org/oldwiki/OpenWrtDocs/NetworkInterfaces

目录 VLAN和桥接的概念 基础

VLAN TRUNK

桥接

Openwrt的接口 体系结构

接口配置

DMZ(非军事安全区)的VLAN

单网卡的VLAN TRUNK

1. VLAN和桥接的概念

1.1. 基础

开始深入细节前,了解Vlan的工作原理很重要哦。虚拟局域网VLAN主要是让一组物理上的交换机表现起来像是一个单独的交换机。我们也可以把一个物理的交换机划分到多个VLAN里面,每个VLAN之间互相隔离。

当然这样的交换机必须支持VLAN配置,便宜的不支持,高端的可网管交换机才可以的,Openwrt内置的也可以。如果你就一个物理交换机,但是你又想分隔不同设备的流量,那么就用VLAN吧

例如,你先搞一个VLAN处于防火墙外面,提供外部的WEB/MAIL服务,另外一个VLAN给内网的机器。因为安全的原因,他们就不能放在一个局域网里面,你要用VLAN隔离他们的端口我们有一个10口的交换机。配置1到5口是VLAN1,6到10口是VLAN2。设备插在1-5口,他们就像在自己的拥有的交换机,6-10口的像是在另外一个交换机。主要的规则是网口之间的通信被VLAN阻隔。当然你可以在任何时候重新配置你的VLAN

Openwrt的VLAN端口数量限制取决于本身的最多物理端口。

1.2. VLAN Trunking

如果你的交换机拥有多个VLAN,然后想和其他超过一个VLAN的交换机连上。另外一个交换机也有相同的两个VLAN。为了维护他们之间的分隔,它们之间互相可以交换数据包。

如果每个VLAN都要单独用一个端口级联,那将会相当浪费,所以我们使用trunking技术。交换机上某一个端口被配置成trunk口,那么这个口与交换机的所有VLAN口连通着。例如你有一个交换机有3个VLAN,那么你配置一个或更多的trunk口连接所有的VLAN或者VLAN的子网。

那交换机如何保持端口的隔离呢?这里使用标记的方法。每一个来至于trunk口的数据包附加上一个小标记,指明它是来至于哪个VLAN的。所以一个设备看一下接收到的包的标记,就知道这个包是从哪一个VLAN来的了。当设备发送一个包到交换机的时候,它自己也会打上一个标记,交换机也会做类似的判断。

一个附加防火墙的例子,一个数据包来至于内部的VLAN,通过trunk口发送到防火墙,并且打上标记VLAN ID。防火墙处理了这个数据包,然后返回到交换机同事带上了外部VLAN的标记,交换机将看到这个标记以后,把包发送到外部设备上。

你可以在类似防火墙的设备上看到每一个单独的VLAN仿佛是不同的网络接口。内部的VLAN好像是一个网卡在内网上,外部的接口也表现的像一个在外部的网卡。

因此,大多数的主机与防火墙支持VLAN标记设置,以区分不同的网络接口,哪怕数据包走在同一根物理网线上也可以。

1.3. 桥接

网络中,桥接就是把两个网卡连接到一个LAN里面。

如果你把两个被桥接的网卡分别连在两个交换机上,这两个交换机等效于用线缆连接了。

当然你一可以把有线网卡和无线网卡桥接,这样看起来想无线AP或者AP桥

桥接还有一个有用的功能是使得linux主机可以监听和发送自己的流量。

它为了完成这个功能,而创建了一个网卡。如果你连接了一个eth0和eth1两个网卡,那么他们会绑定br0(或br1等)接口。

你可以给br0分配一个IP地址,使他看起来像一个正常的网卡。你只能给敲击的 网卡分配IP,但是你不能给桥接的成员(eht0 或eth1)分配IP地址

以上是桥接知识的要点

2. Openwrt的接口

2.1. 体系结构

Openwrt主机实际上有三个设备在里面。一个可配置VLAN的交换机,一个无线端口,一个linux主机。

交换机和linux主机被内部的电路所连接,通过VLAN标记的包进行数据交换。

主机上所有的物理端口都在单一的交换机上。VLAN分隔这些端口到不同的组。

下面的图表显示了架构。



  0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" alt="" src="http://wiki.openwrt.org/OpenWrtDocs/NetworkInterfaces?action=AttachFile&do=get&target=ASUS-Internals-default-sm.png">

端口1-4被配置为VLAN0,标记成LAN1-4。如果你愿意,你实际上也可以把WAN口、LAN口配置。

See http://en.wikipedia.org/wiki/IEEE_802.1Q#Native_VLAN The native vlan is not tagged. Only the second VLAN needs to be tagged to separate the two data streams.

有一个内部端口,5口(Port 5),打上VLAN标记,连接到linux内部主机。在Asus WL-500gP,5口连到网卡eth0。eth0不配置IP地址,内核会使用VLAN标记从eth0取来原始的包,并整理出来至VLAN0还是VLAN1。收发至VLAN1的数据包被映射到一个逻辑网卡vlan1,同理可得逻辑网卡vlan0

这里有另外一个链路通道没有显示出来,它用来配置交换机自身,它在linux下有一个单独的逻辑设备。

在Openwrt下,vlan1网卡常常用来配置WAN口IP地址,并且应用给WAN口的所有配置(如iptables规则和路由)都应用于vlan1网卡。

vlan0网卡有点不同。默认情况下,无线网卡(eth2)被桥接到到LAN口,任何一个接到无线口的主机都和在LAN口的主机拥有一样的VLAN和子网。如上所述,当一个网桥被创建

360pskdocImg_2_xyz  0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" alt="" height="15" width="15">

This is the case on the Asus WL-500gP, it may differ on other models

2.2. Interface configuration

拥有了如果区分接口的知识,现在很容易理解如何在Openwrt下面配置接口了。

Openwrt系列WIKI中文原创翻译——理解网络接口 openwrt接口设置
下面的代码块将物理端口配置到VLAN中

vlan0hwname=et0

vlan0ports="1 2 3 4 5*"

vlan1hwname=et0

vlan1ports="0 5*"

"hwname"参数部分总是"et0"。"et0"设备(Linux下面的)就是交换机自身,并且这样写同时告诉系统哪一个交换机被配置。因为路由器里面只有一个交换机,所以它必须总是被设置为"et0"。如果你在VLAN里面不含5口,那么数据流总是留在交换机里面,永远不会被送到CPU。

端口被如上配置。VLAN0(LAN)有四个端口另加一个内部标记口,VLAN1(WAN)只有一个端口,另外也加一个Trunk口

这个配置把VLAN1连接到WAN口,VLAN0连接到另外的口。如之前提及的,LAN口WAN口的地址可以互换。

VLAN1从WAN口连接到CPU,它被映射到一个WAN接口的,并且配置了IP

wan_ifname=vlan1

wan_ipaddr=a.b.c.d

wan_netmask=255.255.255.0

wan_proto=static

下面的LAN被配置,必须建立一个桥接,然后给桥接的接口分配IP而不是VLAN。

lan_ifname=br0

lan_ifnames="vlan0 eth2"

lan_proto=static

lan_ipaddr=w.x.y.z

lan_netmask=255.255.255.0

"lan_ifname"变量是实际配置IP参数的接口,当然必须是br0的桥接接口。那么这个变量就是设置哪些接口一定要桥接上,既然如此,那么就应该配置为VLAN0和无线接口。VLAN0端口之前被定义为网线口1到4,所以增加的无线接口现在是单个逻辑LAN。

这是路由器里整个网络的基本结构。下面的例子是增加另外一个VLAN

2.3. DMZ Vlan

参见DemilitarizedZoneHowto

如果你要运行一些提供给公众的服务器并且是安全的,你可能要用到DMZ(非军事区)。这是网络里面的第三个VLAN,它被配置了不同的规则到内部的安全网络。通常,DMZ被配置运行确定的端口来至于互联网,同时不允许内网的主机访问它。

Openwrt下面的DMZ很容易配置的。创建第三个VLAN,含有一个以上的物理端口。合适的防火墙规则应用于VLAN。以下的图片显示了DMZ在设备里面的配置

360pskdocImg_3_xyz  0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" alt="" src="http://wiki.openwrt.org/OpenWrtDocs/NetworkInterfaces?action=AttachFile&do=get&target=ASUS-Internals-dmz.png">

360pskdocImg_4_xyz

The configuration lines that would be changed for this are:

配置改成下面这样

vlan0ports="2 3 4 5*"

vlan2hwname=et0

vlan2ports="1 5*"

dmz_ifname=vlan2

dmz_proto=static

dmz_ipaddr=192.168.1.22

dmz_netmask=255.255.255.0

配置文件首先更改VLAN0不包含将会用于DMZ的端口1。然后DMZ的VLAN被建立,含有端口1和5(记住端口5是内部的标记口)。然后逻辑接口"DMZ"被配置并附加到VLAN2上。启动新接口,运行"ifup dmz"。当然,你的防火墙还需要做配置。

你甚至可以添加更多的DMZ接口,你总共有6个接口(包括无线端口)。路由器拥有的功能超出了你的想象。

2.4. VLan Trunking on one NIC 以下和服务器联合配置,暂且不翻译

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/77616.html

更多阅读

声明:《Openwrt系列WIKI中文原创翻译——理解网络接口 openwrt接口设置》为网友靜侯輪徊分享!如侵犯到您的合法权益请联系我们删除