pdm*_*pdm 2 networking routing
与此请求类似(我认为),我希望看到绑定到某个端口号的流量通过一个特定接口路由,而特定 IP 的流量通过另一个接口路由。我尝试执行此操作的服务器全新安装了 Ubuntu 14.04.2,因此我拥有大量工具来完成该任务。然而,我对网络没有太多经验,所以我不知道从哪里开始。=)
提前致谢!
编辑:
一些细节,因为它们很重要。
me@server:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 54:9f:35:0a:6a:20 brd ff:ff:ff:ff:ff:ff
inet 10.22.89.50/24 brd 10.22.89.255 scope global em1
valid_lft forever preferred_lft forever
inet6 fe80::569f:35ff:fe0a:6a20/64 scope link
valid_lft forever preferred_lft forever
(...)
6: p1p1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:0f:53:2d:4b:80 brd ff:ff:ff:ff:ff:ff
inet 10.22.52.199/26 brd 10.22.52.192 scope global p1p1
valid_lft forever preferred_lft forever
7: p1p2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:0f:53:2d:4b:81 brd ff:ff:ff:ff:ff:ff
inet 10.22.52.200/26 brd 10.22.52.192 scope global p1p2
valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)
我想路由所有发往74.120.50.7
through的流量p1p2
以及发往端口上任何 IP 的所有流量7047
through p1p1
。
好的:首先,您在同一子网上有两个具有连续 IP 地址的接口\xe2\x80\x94,如果您尝试在它们之间分散负载以获得更高的吞吐量(例如,您想将两个千兆位网卡变成一个 2 千兆位网卡) NIC),还有更好的方法可以做到这一点!一般术语是“结合”。搜索“网络绑定”或“NIC 绑定”来查找一些内容。
\n\n假设这不是您正在做的事情,那么接下来要注意的是,Linux 下的默认设置是将 IP 地址视为绑定到主机,而不是绑定到接口。有一个/proc
条目可以更改此设置:/proc/sys/net/ipv4/conf/\xc2\xabINTERFACE\xc2\xbb/arp_filter
; 将其设置为 1 以禁用此行为。你可能需要这样做。
最后,您可能只是编写了一些连续的私有 IP 地址,并在您的问题中使用它们来编辑您的实际 IP,并且这两个接口不在同一子网上。在这种情况下,请忽略上述内容,但请将来使用不同的私有子网以避免混淆。
\n\n无论如何,在您的情况下,与您链接到\xe2\x80\x94的问题相比,有一些事情看起来有所不同,这些答案中的其他内容应该适用。
\n\n如果这两个端口位于同一以太网网络上(例如,插入同一交换机),则交换机实际上决定将流量发送到哪个端口。除非您有昂贵的交换机,否则它们仅根据目标 MAC 地址执行此操作。我确信有人制作了一个可以查看 TCP 端口号\xe2\x80\x94 的交换机,但我敢打赌它并不便宜。
默认情况下,向服务器发送数据的路由器只关心目标 IP 地址。要让“端口 7047 上到 10.22.52.199 或 10.22.52.200 的所有传入流量都转到 10.22.52.199”,您必须说服您的路由器这样做...这可能并不容易。
传出流量到 74.120.50.7 应该相当容易:ip route add 74.120.50.7/32 via \xc2\xabROUTER\xc2\xbb dev p1p2 src 10.22.52.200
。指定发送数据的设备和源 IP;我很确定它会从那个界面出来。(/32 是 255.255.255.255 网络掩码,即只有一个地址)。您需要填写\xc2\xabROUTER\xc2\xbb 的下一跳路由器。(可能在某处称为“默认网关”)。
同样,对于端口号:在额外的路由表中(来自链接问题的答案)添加dev p1p1 src 10.22.52.199
. 如果上面的方法有效,那么这也应该有效。
您可以确认流量正在正确的接口上流动,例如:tcpdump -p -i INTERFACE