Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 将IP从服务器A路由到服务器B.大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我尝试将137.74.9.193从服务器A路由到服务器B(Ubuntu 16.04). 如果我尝试从服务器A ping 137.74.9.193它按预期工作,但当我尝试从我的个人计算机ping它时,它不起作用. 服务器A: Public IP (ens3): 213.32.69.16 Public IP: 137.74.9.193 Local Tunnel IP: 10.0.0.1 服务器B: P
我尝试将137.74.9.193从服务器A路由到服务器B(Ubuntu 16.04).

如果我尝试从服务器A ping 137.74.9.193它按预期工作,但当我尝试从我的个人计算机ping它时,它不起作用.

服务器A:

Public IP (ens3): 213.32.69.16
Public IP: 137.74.9.193
Local Tunnel IP: 10.0.0.1

服务器B:

Public IP (eth0): 139.59.131.76
Local Tunnel IP: 10.0.0.2

服务器A上的配置:

auto lo
iface lo inet loopBACk

auto ens3
iface ens3 inet dhcp

auto tun1
iface tun1 inet static
    address 10.0.0.1
    netmask 255.255.255.252
    pre-up iptunnel add tun1 mode gre local 213.32.69.16 remote 139.59.131.76 ttl 255
    up ifconfig tun1 multicast
    up ifconfig tun1 arp
    up ifconfig tun1 broadcast
    pointopoint 10.0.0.2
    post-up ip route add 137.74.9.193 via 10.0.0.2 dev tun1
    post-down iptunnel del tun1

执行的命令:

# enable ip for@R_262_10225@
$echo 1 > /proc/sys/net/ipv4/ip_for@R_262_10225@
$echo 1 > /proc/sys/net/ipv4/conf/ens3/proxy_arp

# Add ip to arp to complete the loop.
$arp -s 137.74.9.193 fa:16:3e:76:31:ea -i ens3 pub

结果内核IP路由表:

DesTination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         213.32.64.1     0.0.0.0         UG    0      0        0 ens3
10.0.0.2        *               255.255.255.255 UH    0      0        0 tun1
ip193.ip-137-74 10.0.0.2        255.255.255.255 UGH   0      0        0 tun1
213.32.64.1     *               255.255.255.255 UH    0      0        0 ens3

服务器B上的配置:

auto eth0
iface eth0 inet static
        address 139.59.131.76
        netmask 255.255.240.0
        gateway 139.59.128.1
iface eth0:0 inet static
        address 137.74.9.193
        netmask 255.255.255.255
        broadcast 137.74.9.193

auto tun1
iface tun1 inet static
        address 10.0.0.2
        netmask 255.255.255.252
        pre-up iptunnel add tun1 mode gre local 139.59.131.76 remote 213.32.69.16 ttl 255
        up ifconfig tun1 multicast
        up ifconfig tun1 arp
        up ifconfig tun1 broadcast
        pointopoint 10.0.0.1
        post-down iptunnel del tun1

执行的命令:

# enable ip for@R_262_10225@
$echo 1 > /proc/sys/net/ipv4/ip_for@R_262_10225@

# Route to tun1
ip route add 10.0.0.1 dev tun1

内核IP路由表:

DesTination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 eth0
10.0.0.1        *               255.255.255.255 UH    0      0        0 tun1
10.19.0.0       *               255.255.0.0     U     0      0        0 eth0
139.59.128.0    *               255.255.240.0   U     0      0        0 eth0

谢谢你的帮助 :)

updatE(14.11.2016):在服务器B上添加路由命令

解决方法

据我所知,你问题中的信息就是问题所在
arp -s 137.74.9.193 fa:16:3e:76:31:ea -i ens3 pub

不会做你认为它做的事情.此命令在您的服务器上创建一个新的ARP表条目,这样如果您的服务器要通过ens3发送数据包到137.74.9.193,它将不会执行任何ARP请求,因为您已经指定了目标MAC地址.

但是您还需要确保路由器知道将数据包发送到您的服务器.路由器将发送137.74.9.193的ARP请求.但由于该IP地址未分配给服务器上的任何接口,因此您的服务器不会响应这些ARP请求.

要完成这项工作,您需要启用代理ARP,您可以使用此命令执行此操作:

echo 1 > /proc/sys/net/ipv4/conf/ens3/proxy_arp

如果你使用该命令而不是arp命令,我认为它会起作用. (我知道一个事实,这适用于点对点接口的对等IP.我没有测试相同的设置,路由表条目通过隧道接口发送流量,我不确定是否需要额外的步骤.)

如果托管服务器B的ISP根据源IP地址过滤流量,则可能无法使用137.74.9.193作为源地址从那里发送数据包.如果从外部ping 137.74.9.193并在服务器B上的eth0上捕获ICMP数据包,您应该看到是否在该接口上发送了ICMP回应响应.

如果您发现服务器B正在发送ICMP回应响应但它们从未到达目的地,则最可能的解释是ISP正在根据源IP地址进行过滤.

在这种情况下,您有两种选择.您可以联系ISP并说明您需要使用此源IP发起数据包,以便他们可以更新其过滤器.或者您可以通过服务器A隧道传输返回流量.

隧道通过A返回流量的最简单方法是在B上创建一个如下所示的路由表:

DesTination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         *               0.0.0.0         UG    0      0        0 tun1
213.32.69.16    gateway         255.255.255.255 UG    0      0        0 eth0
10.0.0.1        *               255.255.255.255 UH    0      0        0 tun1
10.19.0.0       *               255.255.0.0     U     0      0        0 eth0
139.59.128.0    *               255.255.240.0   U     0      0        0 eth0

然而,这将使得从互联网的其余部分无法访问139.59.131.76.如果希望B同时通过两个IP地址可达,则需要创建两个不同的认路由和一个路由策略,以根据数据包源IP进行选择.

大佬总结

以上是大佬教程为你收集整理的linux – 将IP从服务器A路由到服务器B.全部内容,希望文章能够帮你解决linux – 将IP从服务器A路由到服务器B.所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。