在某些特殊場景下,我們可能有這樣的網絡配置訴求,即:訪問內網同時也需要訪問外網。
本文主要針對該場景進行梳理,以雙網卡配置為例,指導初學者進行網卡配置,達成同時訪問內外網。
雙網卡配置硬件前提條件
硬件方面:板卡有 2 個網卡。
雙網卡配置規則:
連接外網 LAN 口,配置外網網段 IP、子網掩碼、路由和網關
連接內網 LAN 口,配置內網網段 IP、子網掩碼和路由。
說明:特別要注意,一臺設備不能同時配置兩個網關,且網關只能配置為外網網關,否則設備將無法區分外網出口,導致外網訪問失敗。
如下為例
以下示例內外網的 IP 分配如下:(具體以你所在的網絡為準)
外網:IP地址10.61.***掩碼:255.0.0.0路由:10.61.***網關:10.61.*** 內網:IP地址192.168.***掩碼:255.255.255.0路由:192.168.0.0
loLinkencap:LocalLoopback inetaddr:127.0.0.1Mask:255.0.0.0 inet6addr:::1/128Scope:Host UPLOOPBACKRUNNINGMTU:65536Metric:1 RXpackets:15errors:0dropped:0overruns:0frame:0 TXpackets:15errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:1000 RXbytes:1320TXbytes:1320 eth0Linkencap:EthernetHWaddr9679:2d88Driverrk_gmac-dwmac inetaddr:10.61.***Bcast:10.255.255.255Mask:255.0.0.0 inet6addr:fe80:79ff9b88/64Scope:Link UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1 RXpackets:28813errors:0dropped:0overruns:0frame:0 TXpackets:3445errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:1000 RXbytes:2706345TXbytes:330787 Interrupt:35 eth1Linkencap:EthernetHWaddrc2621f:20Driversmsc75xx inetaddr:192.168.***Bcast:192.168.***Mask:255.255.255.0 inet6addr:fe80:62ff1f20/64Scope:Link UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1 RXpackets:3282errors:0dropped:0overruns:0frame:0 TXpackets:488errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:1000 RXbytes:280938TXbytes:55862 #route KernelIProutingtable DestinationGatewayGenmaskFlagsMetricRefUseIface default10.61.***0.0.0.0UG000eth0 10.0.0.0*255.0.0.0U000eth0 10.61.****255.255.252.0U000eth0 192.168.0.0*255.255.255.0U000eth1
本例中設置 192 網段為內網,10 網段為外網,經過以上配置后,ping 內網(例如:192.168.***)正常,ping 外網(例如:ping www.baidu.com)正常。說明同時訪問內外網成功。
Ping192.168.***(192.168.***):56(84)bytes. 64bytesfrom192.168.***:icmp_seq=1ttl=0time=1ms 64bytesfrom192.168.***:icmp_seq=2ttl=0time=2ms 64bytesfrom192.168.***:icmp_seq=3ttl=0time=1ms ---192.168.***pingstatistics--- 3packetstransmitted,3received,0%packetloss round-tripmin/avg/max=0/0/1ms #ping10.61.*** Ping10.61.***(10.61.***):56(84)bytes. 64bytesfrom10.61.***:icmp_seq=1ttl=0time=0ms 64bytesfrom10.61.***:icmp_seq=2ttl=0time=0ms 64bytesfrom10.61.***:icmp_seq=3ttl=0time=1ms ---10.61.***pingstatistics--- 3packetstransmitted,3received,0%packetloss round-tripmin/avg/max=0/0/0ms
知識總結
以上已經成功完成了雙網卡配置,下面我們來看下相關配置命令。 ①相關調試命令
刪除路由:
routedel-net10.0.0.0netmask255.0.0.0deveth1 routedel-net10.61.***netmask255.255.252.0deveth1
刪除默認網關:
routedeldefault
配置 IP:
ifconfigeth0192.168.***//給eth0網卡配置IP地址 ifconfigeth0192.168.***netmask255.255.255.0//給eth0網卡配置IP,并加mask ifconfigeth0192.168.***netmask255.255.255.0broadcast192.168.120.255
配置默認網關:
routeadddefaultgw10.61.***deveth0`
配置路由:
routeadd-net10.61.***netmask255.255.252.0deveth0`②路由及 IP 在板子保存位置
路由保存位置:/proc/net/route
#catproc/net/route IfaceDestinationGatewayFlagsRefCntUseMetricMaskMTUWindowIRTT eth00000000001C43D0A000300000000000000 eth00000000A000000000001000000000FF000 eth000C43D0A00000000000100000FCFFFF000 eth10000A8C000000000000100000FFFFFF000
靜態 IP 保存位置:
#catdata/ethernet/eth0 DEVICE=eth0 BOOTPROTO=STATIC IPADDR=10.61.*** NETMASK=255.255.255.0 GATEWAY=10.61.*** ROUTE=10.61.*** #catdata/ethernet/eth1 DEVICE=eth1 BOOTPROTO=STATIC IPADDR=192.168.***23 NETMASK=255.255.255.0 GATEWAY=192.168.*** ROUTE=192.168.***
動態 IP(dhcp)保存位置 :/data/dhcp/eth0.result
#cat/data/dhcp/eth0.result IP4166695241810.61.***10.61.***255.255.252.010.61.10.610.60.10.610.61.****
問題總結
【問題現象】:拔掉網線不自動清除 IP 和路由 【原因分析】:拔掉網線后事件觸發 StopDhcpClient,但未同步更新網絡信息。
【解決方案】:在下面中的StopDhcpClient() 函數中增加更新網絡鏈接狀態。
foundationcommunicationnetmanager_extservicesethernetmanagersrcethernet_management.cpp
index9b03ad8..0c4f708100644 #NAME? #NAME? @@-569,6+569,7@@voidEthernetManagement::StopDhcpClient(conststd::string&dev,sptr通過以上示例指導,相信大家已經掌握了如何配置雙網卡達成同時訪問內、外網的目的,該示例相對簡單,重點是需要將默認網關配置為外網網關。同時,通過該示例,相信大家也熟練掌握了網絡配置相關命令。 當然,同時訪問內網和外網的網絡結構,不止示例中一種,大家也可以不斷嘗試,舉一反三。StopDhcpClient(dev,false); +devState->RemoteUpdateNetLinkInfo(); devState->SetDhcpReqState(false); } @@-581,4+582,4@@voidEthernetManagement::SetDevState(sptr &devState,constst devState->SetLowerUp(lowerUp); } }//namespaceNetManagerStandard -}//namespaceOHOS Nonewlineatendoffile +}//namespaceOHOS
審核編輯:湯梓紅
-
網關
+關注
關注
9文章
4522瀏覽量
51211 -
網卡
+關注
關注
4文章
312瀏覽量
27402 -
網絡
+關注
關注
14文章
7580瀏覽量
88933 -
LAN
+關注
關注
0文章
227瀏覽量
37468 -
OpenHarmony
+關注
關注
25文章
3728瀏覽量
16395
原文標題:OpenHarmony上配置雙網卡
文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論