一、背景
LAN:局域网
局域网指在较小的地理范围内,将两台以上的计算机通过传输电缆连接起来,实现资源共享。
局域网的传输速度通常在10Mb/s~1000Mb/s之间,主干1000Mb/s、桌面100Mb/s是目前的主流技术。局域网的设计通常是针对于一座建筑物内,提高资源和信息的安全性,用于减少管理者的维护操作等。
WAN:广域网
广域网是将一个较大的地理范围内,将多台计算机连接起来相互进行通信、共享资源的网络。
与局域网相比,广域网的传输速度相对要慢的多。在线路连接形式上有电话线、专线等几种。在人们的思想中总认为 WAN 与 LAN 的区别在,WAN 是一种通过电话线路来实现地理位置相隔很远的异地间进行通信的网络。但随着通信技术与网络技术的发展,这个定义已经不再确切,相应地人们将逐步淡化 WAN 与 LAN 之间的界限,也可以说是将异地的局域网连在一起便形成广域网。
VLAN:虚拟局域网
虚拟局域网是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网
VLAN 是一种比较新的技术,工作在 OSI 参考模型的第 2 层和第 3 层,一个 VLAN 就是一个广播域,VLAN之间的通信是通过第 3 层的路由器来完成的。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点:
- 网络设备的移动、添加和修改的管理开销减少
- 可以控制广播活动
- 可提高网络的安全性
VLAN划分网络
MT7688一共提供了5个物理网口,分别为ETHPHY0、ETHPHY1、ETHPHY2、ETHPHY3、ETHPHY4。使用VLAN可以对5个网口进行划分,成为WAN和LAN。
二、查看当前网络
root@hi-wooya:/nfs# ifconfig
apcli0 Link encap:Ethernet HWaddr A2:9D:C1:0D:28:02
inet6 addr: fe80::a09d:c1ff:fe0d:2802/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
br-lan Link encap:Ethernet HWaddr 0C:EF:AF:CF:E1:B3
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::eef:afff:fecf:e1b3/64 Scope:Link
inet6 addr: fdd8:c0ec:8d29::1/60 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:53691 errors:0 dropped:0 overruns:0 frame:0
TX packets:23930 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:21511968 (20.5 MiB) TX bytes:1804340 (1.7 MiB)
eth0 Link encap:Ethernet HWaddr A0:9D:C1:0D:28:03
inet6 addr: fe80::a29d:c1ff:fe0d:2803/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:10112 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:1555238 (1.4 MiB)
Interrupt:5
eth0.1 Link encap:Ethernet HWaddr A0:9D:C1:0D:28:03
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:7041 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:484973 (473.6 KiB)
eth0.2 Link encap:Ethernet HWaddr 0C:EF:AF:CF:E1:B3
inet6 addr: fe80::eef:afff:fecf:e1b3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3055 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:1028225 (1004.1 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1508180 errors:0 dropped:0 overruns:0 frame:0
TX packets:1508180 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:118239959 (112.7 MiB) TX bytes:118239959 (112.7 MiB)
ra0 Link encap:Ethernet HWaddr A0:9D:C1:0D:28:02
inet6 addr: fe80::a29d:c1ff:fe0d:2802/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:63744 errors:17 dropped:0 overruns:0 frame:0
TX packets:19189 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24063249 (22.9 MiB) TX bytes:1306877 (1.2 MiB)
Interrupt:6
- br-lan: 虚拟设备,LAN口桥接设备,包含通过LAN口和WAN口连入系统的设备统一桥接。
- eth0: 真实设备,CPU内部到交换芯片之间只有一个接口。
- eth0.1: 虚拟设备,由VLAN划分的有线LAN口,VLAN编号1。
- eth0.2: 虚拟设备,由VLAN划分的有线WAN口,VLAN编号2。
- lo: 虚拟设备,回环设备。
- wlan: 真实设备,启动Wi-Fi后将会产生此无线设备。
- pppoe-wan: 虚拟设备,是PPPOE拨号上网成功后产生的。
三、配置WAN口外网
WAN口是任何一台路由器用来连接外网的端口,WAN口可以被配置成为3种连接方式。
3.1 查看WAN配置
3.1.1 通过配置文件查看
配置文件位置:/etc/config/network
其内容如下:
config interface 'wan'
option ifname 'eth0.2'
option force_link '1'
option macaddr '0c:ef:af:cf:e1:b3'
option proto 'dhcp'
3.1.2 通过UCI查看
UCI命令:uci show network.wan
network.wan=interface
network.wan.ifname='eth0.2'
network.wan.force_link='1'
network.wan.macaddr='0c:ef:af:cf:e1:b3'
network.wan.proto='dhcp'
network.wan选项参数说明:
选项 | 说明 | 可选值及说明 | 必填 |
---|---|---|---|
ifname | 设备名称 | eth0.2 | 是 |
proto | 协议类型 | static:静态IP地址 dhcp:动态获取IP地址 pppoe:拨号上网 pptp:远程VPN服务器 3g:连接3G/4G无线电话网络 |
是 |
macaddr | WAN口MAC地址,修改该地址即可实现MAC地址克隆功能 | 首次数据根据factory分区内参数自动生成 | 是 |
3.2 动态获取IP地址
动态获取IP选项说明
选项 | 说明 | 可选值及说明 | 必填 |
---|---|---|---|
ifname | 设备名称 | eth0.2 | 是 |
proto | 协议类型 | dhcp | 是 |
macaddr | WAN口MAC地址 | 首次数据根据factory分区内参数自动生成 | 是 |
mtu | 修改最大数据包大小,默认不用设置 | 数值 | 否 |
reqopts | 在向DHCP服务器发出请求时增加附加的DHCP信息 | 字符串 | 否 |
dns | 使用指定的DNS服务器地址替代获得的DNS | 字符串 | 否 |
配置文件如下:
config interface 'wan'
option ifname 'eth0.2'
option macaddr '0c:ef:af:cf:e1:b3'
option proto 'dhcp'
3.3 指定静态IP地址
指定静态IP选项说明
选项 | 说明 | 可选值及说明 | 必填 |
---|---|---|---|
ifname | 设备名称 | eth0.2 | 是 |
proto | 协议类型 | static | 是 |
macaddr | WAN口MAC地址 | 首次数据根据factory分区内参数自动生成 | 是 |
mtu | 修改最大数据包大小,默认不用设置 | 数值 | 否 |
ipaddr | WAN口的IP地址 | 字符串 | 是 |
netmask | WAN口的子网掩码 | 字符串 | 是 |
gateway | 默认网关 | 字符串 | 否 |
broadcast | 广播地址 | 字符串 | 否 |
dns | DNS服务器地址 | 字符串 | 否 |
配置文件如下:
config interface 'wan'
option ifname 'eth0.2'
option macaddr '0c:ef:af:cf:e1:b3'
option proto 'static'
option ipaddr '192.168.0.2'
option netmask '255.255.255.0'
option gateway '192.168.0.1'
option dns '192.168.0.1'
3.4 修改OpenWrt源码中WAN配置
3.4.1 在openwrt-hiwooya-stable-master中
配置文件位置/work/openwrt-hiwooya-stable-master/files/etc/config/network
config interface 'wan'
option ifname 'eth0.2'
option force_link '1'
option macaddr '0c:ef:af:cf:e1:b3'
option proto 'dhcp'
3.4.2 在OpenWrt 1505中
配置文件位置/work/openwrt/package/base-files/files/bin/config_generate
wan) uci -q batch <
四、配置LAN口服务
LAN口下的设备可以通过WAN口接入网络,也可以直接访问设备上的各项功能(系统防火墙对LAN口默认不做任何拦截)。
4.1 查看LAN配置
4.1.1 通过配置文件查看
配置文件位置:/etc/config/network
其内容如下:
config interface 'lan'
option ifname 'eth0.1'
option force_link '1'
option macaddr '0c:ef:af:cf:e1:b3'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.100.1'
option netmask '255.255.255.0'
option ip6assign '60'
4.1.2 通过UCI查看
UCI命令:uci show network.lan
network.lan=interface
network.lan.ifname='eth0.1'
network.lan.force_link='1'
network.lan.macaddr='0c:ef:af:cf:e1:b3'
network.lan.type='bridge'
network.lan.proto='static'
network.lan.ipaddr='192.168.100.1'
network.lan.netmask='255.255.255.0'
network.lan.ip6assign='60'
network.lan选项参数说明:
选项 | 说明 | 可选值及说明 | 必填 |
---|---|---|---|
ifname | 设备名称,一旦改了就乱了 | eth0.1 | 是 |
proto | 协议类型 | static:静态IP地址 | 是 |
macaddr | WAN口MAC地址,修改该地址即可实现MAC地址克隆功能 | 首次数据根据factory分区内参数自动生成 | 是 |
type | 网络类型必须是桥接模式,要不就没交换机功能 | bridge | 是 |
ipaddr | LAN口的IP地址,用于局域网内其他设备访问路由器 | 字符串 | 是 |
netmask | 子网掩码 | 字符串 | 是 |
4.2 指定静态IP地址
配置文件如下:
config interface 'lan'
option ifname 'eth0.1'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
修改过LAN口的配置后要重启网络及DHCP服务:
root@OpenWrt:~# /etc/init.d/network restart
root@OpenWrt:~# /etc/init.d/odhcpd restart
4.3 修改OpenWrt源码中LAN配置
4.3.1 在openwrt-hiwooya-stable-master中
配置文件位置/work/openwrt-hiwooya-stable-master/files/etc/config/network
config interface 'lan'
option ifname 'eth0.1'
option force_link '1'
option macaddr '0c:ef:af:cf:e1:b3'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.100.1'
option netmask '255.255.255.0'
option ip6assign '60'
可将LAN口下的设备通过WAN口接入网络。
4.3.2 在OpenWrt 1505中
配置文件位置/work/openwrt/package/base-files/files/bin/config_generate
case $1 in
lan) uci -q batch <
五、WAN口和LAN口切换
在OpenWrt源码中:
5.1 分析配置文件
配置文件位置/work/openwrt-hiwooya-stable-master/files/etc/config/network
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '1 2 6t'
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '0 6t'
其中eth0.1
对应vlan1:
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '1 2 6t'
分配了2个网口:网口1、网口2
eth0.2
对应vlan2:
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '0 6t'
分配了1个网口:网口0
根据network配置文件中关于网卡的内容:
config interface 'lan'
option ifname 'eth0.1'
option force_link '1'
option macaddr '20:20:20:20:20:a8'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
option interface 'wan'
option ifname 'eth0.2'
option force_link '1'
option macaddr '20:20:20:20:20:a8'
option proto 'dhcp'
可知WAN对应eth0.2
,LAN对应eth0.1
,则网口0为WAN,网口1与网口2为LAN
5.2 修改配置
-
将WAN设置到最右边的网口上,我们只需做出以下修改:
- 执行
reboot
,重启 - 插上网线进行测试
• 由 Leung 写于 2019 年 4 月 8 日
• 参考:YDH Kit 开发板WAN口和LAN口切换