单臂软路由实现(二) 新版OpenWrt实现VLAN划分 结合交换机进行拨号上网

  若想使用只有一个网口的设备搭建软路由(如电脑),则可以通过划分虚拟局域网VLAN,将WAN、LAN的数据分别划分至不同的广播域。利用一根网线连接交换机与电脑,交换机和电脑对Tag标签进行解析,并将两个广播域的数据分开后即可进行处理。

  OpenWrt内核5.4以前,在Web管理面板内有 “交换机” 的功能,可在此划分VLAN,实现单以太网口LAN、WAN的复用。内核5.4以后,采用DSA方式驱动,OpenWrt内不再有 “交换机” 功能,需采用其他方式划分VLAN。

目录

一、交换机准备

1. 实验说明

2. 交换机配置

二、 OpenWrt进行VLAN划分

1. 方法一:仅需接收带VLAN ID的数据

2. 方法二:可收发带VLAN ID的数据

三、 OpenWrt接口WAN、LAN的配置

1. 配置WAN接口

2. 新增LAN接口

四、OpenWrt防火墙配置

五、物理机配置

1. 延伸:配置网卡接收指定VLAN ID数据

2. 设置实现不剥离VLAN信息的方法


一、交换机准备

1. 实验说明

  • 实验设备:单网口电脑(已装有VMware并安装配置好OpenWrt)、二层管理型交换机(TL-SG2008D)

VMware内安装OpenWrticon-default.png?t=M1H3https://blog.csdn.net/Cx2008Lxl/article/details/122988514

  • 设备连接示意图:
图1 设备连接示意图

   【说明】广域网与交换机端口1在同一广播域、端口3-8处于局域网广播域。端口2将端口1、端口3-8的数据包打上对应的VLAN Tag后发送至电脑(软路由),并将电脑(软路由)发回的数据根据Tag转发至端口1(广域网)或端口3-8(局域网)。

2. 交换机配置

表1 交换机802.1Q VLAN配置

VLAN

VLAN描述

成员端口

Tagged端口

Untagged端口

1

Default

101

WAN

1-2

2

1

1000

LAN

2-8

2

3-8

表2 交换机PVID配置

端口

PVID

1

101

2

1

3-8

1000

二、 OpenWrt进行VLAN划分

  在Web管理界面顶部,点击 “网络->接口”,进入 “接口” 配置页面。切换至“设备”选项卡,添加设备配置。


  本实验在VMware内为OpenWrt分配了两张网络适配器,分别为:网络适配器、网络适配器 2。网络适配器对应OpenWrt系统内的eth0,网络适配器 2对应OpenWrt系统内的eth1。

  eth0设备是与物理机有线以太网卡桥接的虚拟网络适配器设备,所有通过有线以太网卡传输的数据,都将会在eth0中收到。因此对eth0划分软件VLAN,可以解析不同VLAN的数据。eth1设备仅能与主机(物理机)通信,作为物理机管理虚拟机内的OpenWrt的管理通道。


1. 方法一:仅需接收带VLAN ID的数据

  该方法通过添加OpenWrt的eth0软件VLAN设备来接收eth0适配器带有VLAN ID的数据,但无法发送正确的VLAN ID数据。该方法为不正确的配置方法,局限性强,不推荐使用。

  1)在 “接口” 页面,切换至 “设备” 选项卡,点击“添加设备配置”按钮。

图2 接口页面设备选项卡

  2)设备类型选择“VLAN(802.1q)”。基设备为“eth0”,VLAN ID为101。点击“保存”按钮。用于接收WAN数据。

图3 添加设备配置

  3)按同样的方式,再次添加设备配置,VLAN ID为1000。

  4)配置完毕后,点击“设备”选项卡下方的“保存并应用”按钮(图2)。

  5)在 “接口” 页面中,添加具体的接口时,选择对应的软件VLAN设备即可。例如:创建PPPoE拨号接口时,选择的设备为:eth0.101设备。

2. 方法二:可收发带VLAN ID的数据

  该方法可正确接收和发送带有VLAN ID标签的数据,本次实验将采用改方法实现

  1)在 “接口” 页面,切换至 “设备” 选项卡,点击左下角的 “添加设备配置”,添加一 “网桥设备”。如果是新安装的OpenWrt,也可直接编辑网桥设备 “br-lan”,在名为 “br-lan” 设备的右侧,点击 “配置” 按钮。

  2)在“常规设备选项”中,将“网桥端口”更改为eth0,此时所有eth0端口的数据将经过该网桥。

图4 网桥设备配置

   3)切换至 “网桥VLAN过滤” 选项卡,启用VLAN过滤,并新增VLAN 101、1000。eth0作为他们俩已标记的出口。设置完毕后点击“保存”按钮。这样,网桥内VLAN ID为101、1000的数据,将会被打上VLAN Tag后,从eth0端口发送。

图4 网桥VLAN过滤配置

   4)在“设备”界面,可见自动新增了两个软件VLAN设备。通过eth0进入网桥“br-lan”的数据,将根据VLAN ID标签,将其转发至虚拟的br-lan.1000和br-lan.101设备。同时,br-lan.1000和br-lan.101设备发送的数据,进入网桥br-lan后,将根据设定的VLAN过滤规则,决定是否加上VLAN Tag从对应的实际硬件设备进行转发。

图5 自动新增的软件VLAN设备

三、 OpenWrt接口WAN、LAN的配置

  在 “接口” 页面,切换至 “接口” 选项卡,对WAN接口进行配置,并添加LAN接口。

图6 接口页面接口选项卡

1. 配置WAN接口

  1)在“WAN”右侧,点击“编辑”按钮。将“协议”切换为“PPPoE”协议,“设备”选择“br-lan.101”软件VLAN。输入拨号上网的用户名和密码。

图7 WAN接口常规设置

   2)切换至“高级设置”,在“重设MTU”处填写1492或小于1492的值,例如1480等。确保PPPoE工作正常。

图8 WAN接口重设MTU

   3)切换至“防火墙设置”选项卡,划分至wan防火墙区域。点击“保存”按钮完成配置。

图9 WAN接口防火墙设置

2. 新增LAN接口

   1)在 “接口” 页面 “接口” 选项卡下方,点击 “添加新接口”,为其添加LAN口。名称输入“lan”,协议选择 “静态地址”,设备选择 “br-lan.1000” 软件VLAN。点击“创建接口”。在弹出来的新窗口中,输入路由器IPv4地址。地址网段需与局域网内已有设备不冲突。

图10 LAN接口常规设置

   2)选择“防火墙设置”选项卡,添加至lan防火墙。完成后,点击“保存”按钮。

图11 LAN接口防火墙设置

   3)所有接口配置完成后,点击右下角“保存并应用”按钮完成接口配置。

四、OpenWrt防火墙配置

  在最上方菜单,选择“网络->防火墙”,进入防火墙配置页面。在最下方的“区域”中可见,WAN的流量是没有转发区域的,而LAN的流量默认已经可以转发至WAN区域。

图12 防火墙配置页面

   配置WAN区域,使其流量能转发至LAN区域:

  ① 点击WAN区域右侧的“编辑”按钮。

  ② 在“常规设置”选项卡中,“Forward”处选择“accept”。在Allow forward to destination zones中,指定允许转发至lan区域。

  ③ 完成后点击“保存”按钮。然后点击“保存并应用按钮”。至此,OpenWrt的所有配置完毕。

图13 WAN区域防火墙配置

五、物理机配置

  回到 “网络->接口” 页面,可以看到:WAN接口状态信息中显示拨号失败。其中,发送数据包中数量不停在增长,而接收数据包一直为0。

  此问题是由于OpenWrt安装在VMware虚拟机内,物理机为Windows系统所致。如果OpenWrt直接安装在物理机中,将不存在该问题。在Windows系统中,对于Realtek PCIe GbE Family Controller的网卡,在接收到数据包后,数据包结构中如果没有vlan部分,则直接接收。如果有vlan部分,会先检查VLAN ID是否与网卡设置的VLAN ID一致,不一致则丢弃,一致则去除vlan部分后接收。

  网卡的默认VLAN为0,则接收任何VLAN的数据包。但接收时会去除数据包结构中VLAN部分的信息。因此OpenWrt在虚拟机内通过桥接获取物理网卡接收到的数据包是不含VLAN部分的,无法根据VLAN ID标签识别出数据包的类型。因此拨号失败,且接收到的数据一直为0。

  下面,将给出该问题的解决方案。

1. 延伸:配置网卡接收指定VLAN ID数据

  该部分为延伸内容,无需实际操作。

  1)在 “桌面->网络图标处右键->属性->更改适配器设置” 或 “控制面板->网络和Internet->网络连接” 中,找到 “以太网” 图标。

图14 以太网图标

  2)在该图标处,单击 “右键->属性”,打开 “以太网 属性” 窗口。点击 “配置” 按钮。

图15 以太网属性窗口

  3)选择“高级”选项卡,在“属性”中找到“VLAN ID”项,右侧即可输入指定的VLAN ID。(该部分为延伸内容,不必实际设置)

图16 网卡VLAN ID配置

2. 设置实现不剥离VLAN信息的方法

  1)在图16中,切换至“详细信息”选项卡,属性中选择“匹配设备Id”,记录其值。

图17 匹配设备ID查看

  2)使用组合键“Win+R”,在运行对话框中,输入“regedit”,打开注册表编辑器。

  3)找到 HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ Class \ {4d36e972-e325-11ce-bfc1-08002be10318} \

  4)依次翻阅左侧的项,在右侧窗口找到MatchingDeviceId的数据部分与1)中记录的设备Id相符的位置。将其下方的MonitorModeEnabled值修改为1。

图18 注册表编辑器值修改

   5)将该以太网网络适配器禁用后重新启用,或重启计算机即可。至此,对于含有VLAN信息的数据包,不论VLAN ID是否与网卡配置一致,都不会去掉数据包中的VLAN信息。

猜你喜欢

转载自blog.csdn.net/Cx2008Lxl/article/details/122990497