rpg*_*rpg 10 perl networking network-programming network-protocols
这是我的场景:
A是配置服务器,B是客户端.每当B的设置发生任何变化时,它都会将相应的配置文件上传到A.
我是一名自动化工程师,负责自动化.其中一个方案是断开A与网络的连接或停止服务器A.对B执行一些更改并确保B无法将文件上载到配置服务器A.
要使其自动化,请停止服务器A并执行相应操作的简单方法.
由于A和B也被其他方用于其他目的,因此我无法将A或B与网络断开连接或在A处停止服务器.
所以,我期待任何解决方案,以便我可以模拟主机(配置服务器)无法访问的方案.因此,当B将向A发送更新时,它将失败,但实际上A正在照常运行.
请建议我实现它的一些方法.
我使用Perl作为编程语言,但如果有其他语言的解决方案,我很好.
Jim*_*imB 19
在使用空路由之前我已经完成了这个.这是使用ip命令从shell中完成的.
# blackhole all packets destined for 192.168.2.1
ip route add blackhole 192.168.2.1
# to delete the same route, replace add with del
ip route del blackhole 192.168.2.1
Run Code Online (Sandbox Code Playgroud)
根据您的使用情况,无法访问的路由可能会更好,因为它返回ICMP-unreachable而不是丢弃数据包,尽管它们往往具有相同的效果.
ip route add unreachable 192.168.2.1
Run Code Online (Sandbox Code Playgroud)
而且为了彻底,如果你真的想模拟主机无法访问的情况(相对于网络无法访问),你必须在防火墙级别这样做.
# resond with icmp-host-unreachable for *any* outbound packet to 192.168.2.1
iptables -I OUTPUT -d 192.168.2.1 -j REJECT --reject-with=icmp-host-unreachable
# delete the same rule (without looking up the rule #)
iptables -D OUTPUT -d 192.168.2.1 -j REJECT --reject-with=icmp-host-unreachable
Run Code Online (Sandbox Code Playgroud)