Articles of 路由

不能将数据包从一个接口路由到另一个接口

我有一个有2个接口eth0和eth1 。 eth0是192.168.0.250并连接到网关192.168.0.2 。 eth1通过192.123.123.10连接到192.123.123.10 。 我试图将数据包从192.123.123.10路由到网关192.168.0.2 ,这意味着我需要路由192.123.123.x数据包通过eth0接口进入eth1接口。 我将ip_forward文件设置为1 。 我运行这个命令: route add -net 192.123.0.0 netmask 255.255.255.0 dev eth0 route add default gw 192.168.0.2 我可以ping从129.123.123.10到192.168.0.250 ,但我不能ping通到192.168.0.2我认为数据包不被转发到eth0 。 我的路由表看起来像这样: gteway Genmask Flags Ref Iface 192.123.123.0 * 255.255.255.0 U eth1 192.168.0.0 * 255.255.255.0 U eth0 192.123.0.0 * 255.255.255.0 U eth0 default 192.168.0.2 0.0.0.0 UG eth0 谁能告诉我什么是缺less的? 先谢谢你。

我怎样才能find哪个接口连接到给定的主机将通过路由?

我的脚本需要为存在不同networking的许多主机configurationSNMP陷阱目标。 因此,陷阱目的地地址是远程节点可访问的接口的重要部分。 我真的不想parsingLinux内核路由表,因为它可能是脆弱的,容易中断。 有无论如何审问内核,并得到它告诉我一个数据包将路由的方式。 理想情况下,会有一个python解决scheme。 我一直在看libdnet的python绑定,但似乎只能返回地址为0.0.0.0的默认网关。

如何configurationlinux路由,将数据包从一个接口发送出去,通过一个网桥,并进入同一个盒子的另一个接口

我试图testing一个以太网桥接设备。 我有一个Linux机箱上的多个以太网端口。 我希望将数据包从一个接口(例如IP 192.168.1.1的eth0)发送到另一个接口(例如IP为192.168.1.2的eth1)在同一个子网上。 我意识到通常你不要在同一个子网上configuration两个接口,如果你直接把内核路由到每个接口,而不是通过networking。 我怎样才能覆盖这种行为,使stream量到192.168.1.2出去的192.168.1.1接口,反之亦然? 提前致谢!

如何避免在Linux中通过本地堆栈进行路由

我有以下的环境:2个主机,每个主机有2个以太网接口(如下图所示): +———+ +———+ | (1)+—————+(2) | | host1 | | host2 | | | | | | (3)+—————+(4) | +———+ +———+ 我想编写客户端/服务器套接字工具,将打开host1上的客户端和服务器套接字。 我希望客户端通过接口(1)和服务器发送TCP数据包在接口(3)上侦听,数据包将通过主机2。 通常,Linux堆栈将通过本地TCP / IP堆栈路由这些数据包,而不会将这些数据包发送到host2。 我曾尝试使用SO_BINDTODEVICE选项的服务器和客户端,似乎服务器确实是绑定到接口(3),并没有监听本地主机的stream量。 我检查过来自host1的客户端不能被接受,而来自host2的客户端却不能接受。 不幸的是,通过接口(1)到接口(2)不会发送客户端数据包(即使接口(1)上的tcpdump也看不到数据包)。 当然路由是正确的(我可以ping(2)从(1),(4)从(1),(4)从(3)等)。 我的问题是,如果这是可能的,而不使用自定义的TCP / IP协议栈来实现? 也许我应该尝试将目标IP地址(从客户端)更改为从外部networking(然后将使用默认网关从接口(1) – 接口(2))发送,然后在正在改变那些又改为原来的? 这样的解决scheme是可行的吗? 我在Debian下用C写我的应用程序。 添加更多的细节和说明: 当然对(1) – (2)和(3) – (4)是不同的子网 我想要达到的是(1) – >(2) – >(4) – >(3) host2是黑匣子,所以我不能安装任何数据包转发器(这将打开在接口(2)上的侦听套接字,并转发到(3)通过(4)) – 这是我想要避免的 主要问题似乎是本地交付。 […]

用于MPLSconfiguration的iproute2命令

试图弄清楚在Linux内核4.1中如何使用iproute2来pipe理静态标签交换MPLS路由。 我知道现在iproute2对MPLS的支持可能不完整[2]。 任何人都可以请说明iproute2-4.1.1目前能做什么? 这是我迄今为止发现的: 文档/networking/ MPLS-sysctl.txt中 / proc / sys / net / mpls / platform_labels / proc / sys / net / mpls / conf //input 加载mpls模块 sudo modprobe mpls_router findsysctl支持 sysctl -a –pattern mpls net.mpls.conf.eth0.input = 0 net.mpls.conf.eth1.input = 0 net.mpls.conf.lo.input = 0 net.mpls.platform_labels = 0 启用mpls支持 sudo sysctl -w net.mpls.conf.eth0.input=1 sudo sysctl […]

在具有多个接口的服务器上接收多播(linux)

要在我的非默认网卡(dvb)上接收多播,请执行以下操作: 打开一个套接字(AF_INET,SOCK_DGRAM) 在dvb接口上join带有IP_ADD_MEMBERSHIP的多播地址 绑定多播地址(注意,一个常见的错误是绑定“0.0.0.0”,然后在该套接字上接收,甚至你不感兴趣的多播)和端口 此时接收所需多播数据包的唯一方法是在路由表中添加一条规则,通过dvb到达发送者所在的networking(另一个networking),就好像dvb需要回复多播发送者; 让我们说一个源发送者多播模式。 任何人都知道发生了什么事? 这个问题对我来说很烦,因为原则上我不知道发件人的IP地址。

使用Linux,如何指定传输哪个以太网接口数据

我正在开发一个基于Linux的服务器系统,其中有两个networking接口,都在同一个子网上(现在,我们只需说他们是172.17.32.10 & 172.17.32.11 )。 当我将数据发送到networking上的主机时,我想指定我的服务器上的数据在哪个接口上传输。 我需要能够通过软件从一个接口切换到另一个接口(或者甚至可以同时传输)(静态路由规则不适用于这个应用程序)。 我在StackOverflow中发现了一个相关的问题,build议使用netlink库来即时修改路由。 这直观上似乎应该工作,但我想知道是否有任何其他选项来完成相同的结果。

我需要使用路由套接字安装什么软件包?

我正在尝试由Richard Stevens在Unix Network Programming中给出的代码。 但我无法获得编译的代码。 这里是源代码。 http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15213-f00/unpv12e/libroute/ 我没有头文件net / if_dl.h和net / route.h头文件不包括代码使用的常量和结构。

Python:在linux中获取本地接口/ IP地址的默认网关

在Linux上,如何使用pythonfind本地ip地址/接口的默认网关? 我看到了“如何获得内部IP,外部IP和默认网关的UPnP”的问题,但接受的解决scheme只显示如何获得Windows上的networking接口的本地IP地址。 谢谢。

如何通过Linux中的特定接口发送组播数据包

尝试了所有可能的方法后,找不到解决此问题的方法。 我有一个有两个接口eth0和eth2的机器。 我希望所有ff38:40:2001:dead:beef:cafe :: / 96数据包继续使用eth2。 我尝试了以下所有,但是当我做ping6 ff38:40:2001:dead:beef:cafe :: 1时,数据包总是在eth0上。 事情我已经尝试过,并没有工作(即数据包仍然在eth0上出去)。 $> route add –inet6 ff38:40:2001:dead:beef:cafe::/96 gw 2003::100 dev eth2 $> route add –inet6 ff38:40:2001:dead:beef:cafe::/96 dev eth2 $> route add –inet6 ff38:40:2001:dead:beef:cafe::/96 metric 1 gw 2003::100 dev eth2 我的路由表是 [root@dev ~]# route –inet6 |grep eth0 fe80::/64 * U 256 0 0 eth0 ff00::/8 * U […]