一、背景
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 <<EOF
set network.$1.proto='dhcp'
delete network.wan6
set network.wan6='interface'
set network.wan6.ifname='$ifname'
set network.wan6.proto='dhcpv6'
EOF
四、配置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 <<EOF
set network.$1.type='bridge'
set network.$1.proto='static'
set network.$1.ipaddr='192.168.1.1'
set network.$1.netmask='255.255.255.0'
set network.$1.ip6assign='60'
EOF
五、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 日