0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony上配置双网卡案例

OpenHarmony技术社区 来源:OST开源开发者 2023-02-20 10:13 次阅读

在某些特殊场景下,我们可能有这样的网络配置诉求,即:访问内网同时也需要访问外网。

本文主要针对该场景进行梳理,以双网卡配置为例,指导初学者进行网卡配置,达成同时访问内外网。

双网卡配置硬件前提条件

硬件方面:板卡有 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,sptrStopDhcpClient(dev,false);
+devState->RemoteUpdateNetLinkInfo();
devState->SetDhcpReqState(false);
}
@@-581,4+582,4@@voidEthernetManagement::SetDevState(sptr&devState,constst
devState->SetLowerUp(lowerUp);
}
}//namespaceNetManagerStandard
-}//namespaceOHOS
Nonewlineatendoffile
+}//namespaceOHOS
通过以上示例指导,相信大家已经掌握了如何配置双网卡达成同时访问内、外网的目的,该示例相对简单,重点是需要将默认网关配置为外网网关。同时,通过该示例,相信大家也熟练掌握了网络配置相关命令。 当然,同时访问内网和外网的网络结构,不止示例中一种,大家也可以不断尝试,举一反三。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网关
    +关注

    关注

    9

    文章

    4120

    浏览量

    50590
  • 网卡
    +关注

    关注

    3

    文章

    296

    浏览量

    27262
  • 网络
    +关注

    关注

    14

    文章

    7401

    浏览量

    88256
  • LAN
    LAN
    +关注

    关注

    0

    文章

    221

    浏览量

    37280
  • OpenHarmony
    +关注

    关注

    25

    文章

    3558

    浏览量

    15786

原文标题:OpenHarmony上配置双网卡

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    nuc980双网卡开机启动

    nuc980双网卡开机启动
    的头像 发表于 12-07 18:25 1226次阅读
    nuc980<b class='flag-5'>双网卡</b>开机启动

    使用双网卡的虚拟机ubuntu配置

    很多人为配置linux系统下的双网卡而焦头烂额,某贴出在ubuntu下的配置教文,望助人笑颜为怀{:4_95:}!
    发表于 05-28 22:58

    sdk8.0如何使用双网卡

    请教一下,如何在sdk8.0中把双网卡都使用起来? 硬件板是自己做的3358的板子,sdk8.0已经运行起来,并且其中一个网卡已经可以正常使用。 想把第二个网卡用起来,需要做哪些工作? 谢谢!
    发表于 05-15 12:51

    请问Am335x从nand启动且使用双网卡(rmii接口),该怎么办?

    本帖最后由 一只耳朵怪 于 2018-6-20 15:01 编辑 由于要使用双网卡且使用rmii接口,但第二个rmii接口的rmii2_crs_dv管脚却被复用到gpmc_wait0上了,且
    发表于 06-20 06:56

    双网卡时,SSH连接不无线网卡

    电脑有两个网卡,一个有线,一个无线。无线的是个USB转wifi的。现在是与linux进行SSH,如果Linux设置成有线网卡的网段是可以连接上的。设置成无线网卡的网段就连接不。怎么解
    发表于 07-18 08:39

    linux双网卡双网关实现

    ,现在介绍下网络情况。           OS:RHEL5.4           网卡双网卡           网卡配置信息:           eth0:192.68.1.
    发表于 07-05 08:39

    求指点使用Lwip协议栈做双网卡通信

    论坛里有没有大虾,试过使用Lwip协议栈做双网卡通信成功的,或者有比较清晰清晰思路的,急求指点啊。
    发表于 03-27 04:35

    开发板直连电脑双网卡配置的相关资料推荐

    嵌入式开发之开发板直连电脑双网卡配置前言虚拟机连接开发板配置Ubuntuwindows配置开发板配置主机连接外网前言现在笔记本电脑逐渐取消了
    发表于 12-21 07:49

    Android系统启动以太网卡及支持双网卡共存的操作流程

    点多余了。于是在setStaticIpAddress方法中就用用上边配置的地址信息为eth0配置静态地址。3.支持双网卡共存的其他修改1.评分机制分值修改
    发表于 05-25 10:29

    如何在OpenHarmony上进行双网卡设置

    前言在某些特殊场景下,我们可能有这样的网络配置诉求,即:访问内网同时也需要访问外网。本文主要针对该场景进行梳理,以双网卡配置为例,指导初学者进行网卡
    发表于 04-07 09:16

    求助,是否可以出一个6750EVK2同时配置双网卡的例程?

    是否可以出一个6750EVK2同时配置双网卡的例程
    发表于 05-26 08:07

    VxWorks下双网卡冗余热切换技术的研究

    详述了嵌入式实时操作系统VxWorks 下双网卡冗余热切换技术的实现方法。文中在分析了PCI 总线型网络适配器驱动装载机制及冗余切换原理的基础,给出了相应的BSP 配置和冗余切
    发表于 08-31 10:23 32次下载

    无线网卡双机互联和双网卡共享上网的设置及方法

    无线网卡双机互联和双网卡共享上网的设置及方法 在宿舍里上网需要帐号,每每gf过来就要被
    发表于 05-21 01:13 3931次阅读

    Linux系统双网卡绑定技术的介绍

    服务器的网络连通状况直接影响着服务器的可用性,利用双网卡(NIC)绑定技术,可以实现服务器网卡的失效保护和负载均衡,有助于提高网络性能,从而保证服务器的高可用性。 双网卡绑定技术 双网卡
    发表于 10-20 10:11 13次下载
    Linux系统<b class='flag-5'>双网卡</b>绑定技术的介绍

    关于超微双网卡工控主板金手指的详细介绍

    超微双网卡工控主板主要是指在工控主板安装了两块网卡,使得另一台工控电脑通过此台电脑共享上网。在超微双网卡工控主板,有一个重要部件叫金手指
    发表于 12-28 16:26 1663次阅读