AES100中Atlas模块访问外部网络配置
本文当以AES100中第一组模块中的第一个模块(IP:192.168.105.1)为例来演示如何配置网络,让其访问外部网络。
1. AES100中COME中网络配置
1、假定第一组模块中的四个模块与COME中的enp10s0网口处于同一个网段(192.168.105.0/24),首先我们需要给enp10s0配置IP,命令如下:
sudo ifconfig enp10s0:0 192.168.105.100/24 up
2、给COME与外部通讯的网卡(这里假定是eno1)配置IP地址(172.18.3.0/24),根据你的具体的情况,此IP是可以手动设置,也可以通过DHCP来自动获取,本例采用手动设置,命令如下:
sudo ifconfig eno1 172.18.3.100/24 up
3、添加主机路由规则,让COME知道,所有目的地址的为192.168.105.1的包都通过192.168.105.100转发
sudo route add -host 192.168.105.1 gw 192.168.105.100
4、使能系统包转发功能
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
5、修改iptables规则,
sudo iptables -P INPUT ACCEPT #允许所有报文进入sudo iptables -P FORWARD ACCEPT #允许转发sudo iptables -t nat -A POSTROUTING -s 192.168.105.0/24 -o eno1 -j MASQUERADE #源地址为192.168.105.0/24的所有报文都通过eno1网口转发
6、如果需要保存iptables的设置,可以运行以下命令
sudo iptables-save > /etc/iptables/rules.v4
sudo dpkg-reconfigure iptables-persistent #保存iptables设置
2. 修改模块的路由规则
通过串口登陆模块,默认情况下模块是配置有静态IP,例如第一组第一个模块的IP是:192.168.105.1,如果没有手动配置
添加路由规则,让通往目的网段(172.18.3.0/24)的报文都走网关192.168.105.100出去。
sudo ifconfig eth0 192.168.105.1/24 upsudo route add -net 172.18.3.0/24 gw 192.168.105.100
3. 配置目标主机IP
假定目标主机是你的另外一台PC或者是另外一台AES100,网口名称为eth0,IP地址是:172.18.3.200
sudo ifconfig eth0 172.18.3.200/24 up
4. 测试网络
从第一组的第一个atlas模块 ping 主机 172.18.3.200, 可以正常ping通。然后在主机上抓包,可以看到 src ip是172.18.3.100, 而不是 192.168.105.*,这是由于NAT规则生效,将源地址进行修改。
13:33:51.805607 IP 172.18.3.100 > localhost.localdomain: ICMP echo request, id 1, seq 371, length 4013:33:51.805639 IP localhost.localdomain >172.18.3.100: ICMP echo reply, id 1, seq 371, length 4013:33:52.806714 IP 172.18.3.100 > localhost.localdomain: ICMP echo request, id 1, seq 372, length 40
5. 如果需要相互ping,怎么处理?
如果在主机上添加到192.168.105.0/24网段的路由,主机也可以ping 通模块。
sudo route add -net 192.168.105.0/24 gw 172.18.3.200 #所有走192.168.105网段的报文都通过172.18.3.200所在的网卡转发
但是,没有经过NAT转换, 抓包看到的src ip是自己网口的IP。