关于双网口机器通信问题

总结一下上个月工作中,使用双网卡芯片的开发板遇到的问题。

要实现的功能是实现交换机功能,准确的来说是开发板的主网口(eth0)连接到局域网的网口(192.168.1.*),次网口(eth1)通过KSZ****交换机芯片来添加4个网口,并且四个网口下是同一个网段(192.168.2.*)

实现的过程:
设置次网口的ip为静态ip:192.168.2.1,编辑
/etc/network/interfaces

allow-hotplug eth1
iface eth0 inet static #static表示固定ip , dhcp表示使用动态ip
address 192.168.2.1 #设置ip地址
netmask 255.255.255.0 #设置子网掩码

然后安装dhcp服务器来给交换机芯片下的设备分配ip,在debian系的arm平台上用的是isc-dhcp-server,详细的配置参考自linux.cn

sudo apt install isc-dhcp-server

这样就完成后,在局域网内就可以正常的连接设备和通信了。但是发现挂载在eth1的设备无法连接到公网的网络。解决的方法如下:

1、打开开发板的报文转发功能,编辑 /etc/sysctl.conf,将#net.ipv4.ip_forward=1 这项的#号去掉,然后运行sysctl -p生效配置
2、配置NAT转换,具体配置可以参考这个网站

总结:这个问题现在看起来简单,但是当初做了好久,原因可能是但是觉得比较陌生吧,事情其实并不会太难。其中还遇到驱动不全的问题,由于精简驱动,导致iptables的nat表用不了,这些在内核中添加回来即可。

发表评论

电子邮件地址不会被公开。 必填项已用*标注