1
senghoo 2021-11-14 15:13:26 +08:00
本机内部转发直接在 lo 网卡应该就能听到吧。
|
2
xarthur 2021-11-14 16:09:01 +08:00 via iPhone
写路由表?
|
3
ch2 2021-11-14 16:55:16 +08:00
改路由表,route add -host 192.168.3.5 gw 192.168.3.11
这一句是强行让所有目的地是 192.168.3.5 的包都从 192.168.3.11 走一下 如果不生效,再改一下 metric |
4
documentzhangx66 2021-11-14 17:50:21 +08:00
1.如果两张网卡做了 route 路由,那么数据包是直接由 OS 的路由功能进行转发,不会再经过本机程序的 TCP Server 与 UDP Server 的端口监听。
这种情况下,如果要监听数据包,应该使用抓包工具,比如 Wireshark 、TCPDump 等等。这些工具也可以进行记录或转发数据包,相当于旁路复制。 2.如果你的目的,是想自己写程序,进行 TCP Server 或 UDP Server 的监听,然后由你自己写的程序进行转发,那么你这种模式,其实是代理了。两张网卡是不能做 OS 级的路由的。 |
5
adoal 2021-11-14 19:39:32 +08:00 via iPhone
两张网卡插在同一网段配同段 IP ?你确定真要这样做?这可能是一个 X-Y 问题。
|
6
violence123456 OP @ch2 现在我感觉从 3.11 到 3.5 貌似没啥问题,但是 3.5 到 3.11 有问题。体现就是在机器上抓 icmp 报文,只有到 3.5 的 request ,没有 3.5 出来的 response 。(背景是 3.5 的网关设置为 3.11 ,他们写了 raw socket 监听 3.11 的网卡,如果收到给这个网卡的包就做转发处理,之前 3.11 和 3.5 不同机器是没问题的,但是现在同一机器就出问题了)。至于为什么需求这么蛋疼,一时半会讲不清楚。。
|
7
violence123456 OP @documentzhangx66 现在我感觉从 3.11 到 3.5 貌似没啥问题,但是 3.5 到 3.11 有问题。体现就是在机器上抓 icmp 报文,只有到 3.5 的 request ,没有 3.5 出来的 response 。(背景是 3.5 的网关设置为 3.11 ,他们写了 raw socket 监听 3.11 的网卡,如果收到给这个网卡的包就做转发处理,之前 3.11 和 3.5 不同机器是没问题的,但是现在同一机器就出问题了)。至于为什么需求这么蛋疼,一时半会讲不清楚。。
|
8
violence123456 OP @senghoo 这个值得尝试下,谢谢
|
9
violence123456 OP @adoal 需求很蛋疼,一两句话解释不清,可以理解为要在本机做底层协议转换仿真的一些工作
|
10
violence123456 OP @adoal 请教大佬有什么更好的建议
|
11
documentzhangx66 2021-11-15 02:07:48 +08:00
@violence123456
1.既然能看到 icmp 包到 3.5 ,那就继续跟踪下去,到下一个节点去抓包。另外 icmp 以及 udp 抓包都很麻烦,而且有些软硬件还可能有 bug 导致丢包甚至更换端口。 2.底层协议转换仿真?为啥要转换协议?直接现在 OpenVPN 可以在广域网上组建虚拟私网,然后 gRPC 协议直接通信,感觉转换底层协议没啥应用场景。 |
12
xzysaber 2021-11-15 07:44:41 +08:00
必须要抓到以太网帧吗?可以尝试下 TAP 。
|
13
adoal 2021-11-15 20:35:46 +08:00 via iPhone
@violence123456 讲真,我看不懂你的表达。
另外我没做过底层网络开发,只是凭运维人员的经验觉得这样配置很扯淡。 |
14
adoal 2021-11-15 20:40:09 +08:00 via iPhone
你在三个回答里都说需求蛋疼讲不清楚。
所以我怀疑这是个 X-Y 问题。 也许你自己梳理一下原始需求,好好组织一下文字,表达清楚了,也就知道是怎么回事了。 |