OpenHarmony雙網路卡配置例項
在某些特殊場景下,我們可能有這樣的網路配置訴求,即:訪問內網同時也需要訪問外網。
本文主要針對該場景進行梳理,以雙網路卡配置為例,指導初學者進行網路卡配置,達成同時訪問內外網。
硬體方面:板卡有2個網路卡。
雙網路卡配置規則:1、連線外網LAN口,配置外網網段IP、子網掩碼、路由和閘道器;2、連線內網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
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:15 errors:0 dropped:0 overruns:0 frame:0 TX packets:15 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1320 TX bytes:1320 eth0 Link encap:Ethernet HWaddr 96:d0:79:2d:9b:88 Driver rk_gmac-dwmac inet addr:10.61.*** Bcast:10.255.255.255 Mask:255.0.0.0 inet6 addr: fe80::94d0:79ff:fe2d:9b88/64 Scope: Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:28813 errors:0 dropped:0 overruns:0 frame:0 TX packets:3445 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2706345 TX bytes:330787 Interrupt:35 eth1 Link encap:Ethernet HWaddr c2:5c:62:d7:1f:20 Driver smsc75xx inet addr:192.168.*** Bcast:192.168.*** Mask:255.255.255.0 inet6 addr: fe80::c05c:62ff:fed7:1f20/64 Scope: Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3282 errors:0 dropped:0 overruns:0 frame:0 TX packets:488 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:280938 TX bytes:55862 # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 10.61.*** 0.0.0.0 UG 0 0 0 eth0 10.0.0.0 * 255.0.0.0 U 0 0 0 eth0 10.61.*** * 255.255.252.0 U 0 0 0 eth0 192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
本例中設定192網段為內網,10網段為外網,經過以上配置後,ping內網(例如:192.168.***)正常,ping外網(例如:ping )正常。說明同時訪問內外網成功
Ping 192.168.*** (192.168.***): 56(84) bytes. 64 bytes from 192.168.***: icmp_seq=1 ttl=0 time=1 ms 64 bytes from 192.168.***: icmp_seq=2 ttl=0 time=2 ms 64 bytes from 192.168.***: icmp_seq=3 ttl=0 time=1 ms --- 192.168.*** ping statistics --- 3 packets transmitted, 3 received, 0% packet loss round-trip min/avg/max = 0/0/1 ms # ping 10.61.*** Ping 10.61.*** (10.61.***): 56(84) bytes. 64 bytes from 10.61.***: icmp_seq=1 ttl=0 time=0 ms 64 bytes from 10.61.***: icmp_seq=2 ttl=0 time=0 ms 64 bytes from 10.61.***: icmp_seq=3 ttl=0 time=1 ms --- 10.61.*** ping statistics --- 3 packets transmitted, 3 received, 0% packet loss round-trip min/avg/max = 0/0/0 ms
知識總結:
以上已經成功完成了雙網路卡配置,下面我們來看下相關配置
。
1、相關除錯
1)刪除路由
route del -net 10.0.0.0 netmask 255.0.0.0 dev eth1 route del -net 10.61.*** netmask 255.255.252.0 dev eth1
2)刪除預設閘道器
route del default
3)配置IP
ifconfig eth0 192.168.*** //給eth0網路卡配置IP地址 ifconfig eth0 192.168.*** netmask 255.255.255.0 //給eth0網路卡配置IP,並加mask ifconfig eth0 192.168.*** netmask 255.255.255.0 broadcast 192.168.120.255
4)配置預設閘道器
route add default gw 10.61.*** dev eth0`
5)配置路由
route add -net 10.61.*** netmask 255.255.252.0 dev eth0`
2、路由及IP在板子儲存位置:
1)路由儲存位置:/proc/net/route
# cat proc/net/route Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT eth0 00000000 01C43D0A 0003 0 0 0 00000000 0 0 0 eth0 0000000A 00000000 0001 0 0 0 000000FF 0 0 0 eth0 00C43D0A 00000000 0001 0 0 0 00FCFFFF 0 0 0 eth1 0000A8C0 00000000 0001 0 0 0 00FFFFFF 0 0 0
2)靜態IP儲存位置
# cat data/ethernet/eth0 DEVICE=eth0 BOOTPROTO=STATIC IPADDR=10.61.*** NETMASK=255.255.255.0 GATEWAY=10.61.*** ROUTE=10.61.*** # cat data/ethernet/eth1 DEVICE=eth1 BOOTPROTO=STATIC IPADDR=192.168.***23 NETMASK=255.255.255.0 GATEWAY=192.168.*** ROUTE=192.168.***
3)動態IP(dhcp)儲存位置 :/data/dhcp/eth0.result
# cat /data/dhcp/eth0.result IP4 1666952418 10.61.*** 10.61.*** 255.255.252.0 10.61.10.6 10.60.10.6 10.61.*** *
問題總結:
【問題現象】:拔掉網線不自動清除IP和路由
【原因分析】:拔掉網線後事件觸發StopDhcpClient,但未同步更新網路資訊;
【解決方案】:
在foundation\communication\netmanager_ext\services\ethernetmanager\src\ethernet_management.cpp 的StopDhcpClient()函式中增加更新網路連結狀態。
index 9b03ad8..0c4f708 100644 #NAME? #NAME? @@ -569,6 +569,7 @@ void EthernetManagement::StopDhcpClient(const std::string &dev, sptr<DevInterfac { NETMGR_EXT_LOG_D("EthernetManagement StopDhcpClient[%{public}s]", dev.c_str()); ethDhcpController_->StopDhcpClient(dev, false); + devState->RemoteUpdateNetLinkInfo(); devState->SetDhcpReqState(false); } @@ -581,4 +582,4 @@ void EthernetManagement::SetDevState(sptr<DevInterfaceState> &devState, const st devState->SetLowerUp(lowerUp); } } // namespace NetManagerStandard -} // namespace OHOS \ No newline at end of file +} // namespace OHOS
透過以上示例指導,相信大家已經掌握瞭如何配置雙網路卡達成同時訪問內、外網的目的,該示例相對簡單,重點是需要將預設閘道器配置為外網閘道器。同時,透過該示例,相信大家也熟練掌握了網路配置相關命令。當然,同時訪問內網和外網的網路結構,不止示例中一種,大家也可以不斷嘗試,舉一反三。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2939243/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 雙網路卡雙IP配置Linux
- Oracle 11gR2 RAC 單網路卡轉雙網路卡繫結配置Oracle
- 雙層 for 例項
- OpenHarmony的init程式、init配置與啟動項配置
- VMwareNAT網路卡配置
- Oracle VM VirtualBox之Ubuntu 22.04LTS雙網路卡網路模式配置OracleUbuntu模式
- 【Linux伺服器雙IP配置】如何實現不同IP的雙網路卡同時上網?Linux伺服器
- 配置高效能動態網站(例項)網站
- 雲主機新增網路卡配置多網路卡策略路由路由
- 萬兆網路卡使用注意事項
- 多網路卡路由出口配置路由
- Linux 7 配置網路卡(nmcli)Linux
- kali網路卡配置檔案
- jQuery Validate全域性配置和例項配置jQuery
- 虛擬機器網路卡配置虛擬機
- Docker容器配置Nginx例項分享DockerNginx
- 多網路卡 配置多閘道器
- linux網路卡配置檔案詳解Linux
- 網路卡配置及對應名稱
- canal同步mysql,監聽單例項,多例項配置MySql單例
- OpenStack Q版雙機部署-啟動例項
- shell動態修改yml配置例項
- 請教硬改蝸牛星際c主機板,單網路卡改雙網路卡
- 雙網路卡環境下如何內網外網同時用內網
- VMware-Ubuntu20.04配置雙網路卡解決遠端連線的2種場景Ubuntu
- Linux雙網路卡繫結單個IP之(team)Linux
- 如何區分例項化網格中的每個例項
- Qt5雙緩衝機制與例項QT
- [非專業翻譯] Mapster - 配置例項
- 深度分析Linux下雙網路卡繫結七種模式 多網路卡的7種bond模式原理Linux模式
- 瞭解下Foundation 網格例項
- RAC配置2個私網網路卡使用HAIP服務AI
- 新品釋出:聯瑞推出雙埠萬兆Bypass網路卡
- GODADLY:伺服器如何配置網路卡服務Go伺服器
- linux下一個網路卡配置多個IPLinux
- Linux網路卡配置檔案 引數詳解Linux
- 【除錯】SystemTap除錯網路卡狀態一例除錯
- React之配置元件的props(兩個例項)React元件