iptables不同网段的ip转发

想用软件模拟延时抖动,发现tc只能对发出的流延时抖动,iptables可以处理发出和收到的流,但对收到的流只能做丢包处理,不能模拟延时抖动。但A机器是arm,用tc命令的话,cpu性能不够(也没有移植tc命令)。因此在中间用B装上ubuntu20.04做ip转发,再用tc命令模拟延时抖动。如下:

三台机器A,B,C
A:100.100…100.8
B:100.100…100.100 192.168.100.76
C:192.168.100.78
现在通过A访问不同网段的C。
方法:
将A与B的LAN1直连,B的LAN2与B直连或在同一个网段就行。在B上做ip转发,用iptables的地址伪装MASQUERADE,它其实就是修改源ip和目的ip的方式,即SNAT,DNAT的便利方式。

首先配置arm板A:
配置ip:
配置转发功能:
如果执行不成功可以放在bash文件里执行这个是临时的,重启后就失效。

echo  "1" > /proc/sys/net/ipv4/ip_forward
ifconfig eth0 100.100.100.8 netmask 255.255.255.0
route add default gw 100.100.100.100  #添加默认网关 100.100.100.100

查看:

[root@Deviser:~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         UG    0      0        0 usb1
0.0.0.0         100.100.100.100 0.0.0.0         UG    0      0        0 eth0
100.100.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.254.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

把背包默认网关配置成100.100.100.100,必须要是第一个,优先级最高,因此需要down掉第一个网关:

ifconfig usb1 down
[root@Deviser:~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         100.100.100.100 0.0.0.0         UG    0      0        0 eth0
100.100.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.254.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

配置工控机B:

配置转发功能:
如果执行不成功可以放在bash文件里执行这个是临时的,重启后就失效。

echo  "1" > /proc/sys/net/ipv4/ip_forward

LAN1配置成:100.100.100.100
LAN2配置成:192.168.100.100
LAN1的网关配置成100.100.100.100
LAN2的网关配置成它本身192.168.100.1
用iptables配置地址伪装MASQUERADE:

sudo iptables -t nat -A POSTROUTING -s 100.100.100.8/255.255.255.0 -o enp1s0 -j MASQUERADE

配置工控机C:
配置转发功能:
如果执行不成功可以放在bash文件里执行这个是临时的,重启后就失效。

echo  "1" > /proc/sys/net/ipv4/ip_forward

配置成192.168.100.78 网关配置成192.168.100.1

此时即可在A上ping通不同网段的C了,由B做中间的路由转发。

修改发出的数据包的目的ip地址

地址伪装参考
对接收的数据包的源ip和目的ip更改

route add default gw 192.168.1.1  #添加默认网关 192.168.1.1
route add -net 192.168.1.0/24 gw 192.168.1.1 eth0 #1.0网段走192.168.1.1网关走 eth0为要走的网卡。
route add -net 192.168.2.0/24 gw 192.168.2.254 eth1 #2.0网段走2.254网关、通过eth1这个网卡走。
route add -net 192.33.0.0/16 gw 192.168.2.254 eth1 #33.0.0网段走 2.254网关、通过eth1网卡走。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

、、、、南山小雨、、、、

分享对你有帮助,打赏一下吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值