关于路由直连的问题

[复制链接]
查看11 | 回复3 | 2021-1-27 05:52:31 | 显示全部楼层 |阅读模式
我现在有一台两个网口的服务器,eth0(ip地址192.168.1.2)和eth1(ip地址192.168.2.2),一台两个网口的路由器,FastEthernet0(ip地址192.168.1.1)和FastEthernet1(ip地址192.168.2.1)。现在将eth0连接FastEthernet0,eth1连接FastEthernet1,我现在想实现一个ping的功能,当我在服务器上运行ping192.168.2.2的时候,我希望这个路由的效果是eth0-->FastEthernet0-->FastEthernet1-->eth1,而不是eth0-->eth1,请问各位大神,我该如何实现这个功能呢?
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:52:31 | 显示全部楼层
补充,我的路由器的路由表是
iproute192.168.1.0255.255.255.0192.168.1.2
iproute192.168.2.0255.255.255.0192.168.2.2
我尝试过的方法是在实现ping的时候,将发送icmp包的socket绑定到eth0,让eth0发送数据,但是我现在的效果是ping192.168.2.1走的是eth0-->FastEthernet0-->FastEthernet1,如果ping192.168.2.2走的还是eth0-->eth1的链路,请问有什么方法可以走eth0-->FastEthernet0-->FastEthernet1-->eth1吗?谢谢各位大神了
回复

使用道具 举报

千问 | 2021-1-27 05:52:31 | 显示全部楼层
用路由可能不行吧。
你这个叫环回地址了,走到ip层就直接到环回的了。不会向下层数据链路层走了。
回复

使用道具 举报

千问 | 2021-1-27 05:52:31 | 显示全部楼层
ping本机地址,还不想让本机马上接收,这个不太容易。
因为eth1是服务器的一个网卡,每台设备(不论网关还是主机)都会为自己的网卡建立直连路由。
想绕过直连路由很难,因为直连路由所在的路由表优先级是最高的(我假设了服务器运行的是linux)。
想实现eth0-->FastEthernet0-->FastEthernet1-->eth1这种包的转发路径其实不难,不过要求目的地址不是eth1的ip,也就是说,目的地址不是本机(服务器自己)。这样就可以把报文发到路由器,然后通过路由器上的策略配置,发回eth1了。
进一步向,如果配置成了这种转发规则,就成了路由环路,包会不断在里面转圈圈,直到ttl减少为0被丢弃,要想不让它转圈,就只有在某处收到包的时候,改掉目的ip再发出去,问题更复杂了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行