linux跨网段间互通

1.简介
在这里插入图片描述

TCP协议规定只有处于同一个网段的IP才能实现互通,如果处于不同网段,则需要借助于所属的网关,即我们可以配置一台双网卡机器作为网关,然后指定路由线路实现跨网段访问。

实现思路:将双网卡服务器作为一个代理服务器,实现双向网关的一个功能
如上图所示,Proxy作为双向网关
Client如果要实现Server的互通,如果Client和Server在同一个子网段可以直接ping同,但是如果不在同一个网段,Client就会先去找其网关,再由其网关寻找Server,对于Server也是这样。
2.实现方案
2.1 代理
1.开启数据包的转发功能

代理服务器打开终端执行如下命令

echo 1 >/proc/sys/net/ipv4/ip_forward

默认值0是禁止数据包转发,修改为1即开启数据包转发功能。如果提示无权限,可以使用vi或者gedit工具打开ip_forward文件直接修改。

2.2 设置路由表
用到的几个命令如下所示

新增静态路由sudo route add -net ip dev 网卡
删除静态路由sudo route del-net ip dev 网卡

具体配置方法:

  1. 代理服务器中新增发往Server端的路由表

    sudo route add -net 10.168.9.0 netmask 255.255.255.0 dev eth1 
    

    这条路由表的含义就是发往10.168.9.0/24网段的数据包都由eth1网卡发出

  2. 代理服务器中新增发往Client端的路由表

    sudo route add -net 192.168.1.0/24 netmask 255.255.255.0 dev eth0
    

    这条路由表的含义就是发往192.168.1.0/24网段的数据包都由eth0网卡发出

  3. Client服务器中设置网关为192.168.1.1

    sudo route add default gw 192.168.1.1
    

    设置之后就表示当Client端连接其他网段(非Client子网)时,就会找到192.168.1.1,进而使用192.168.1.1进行连接

    注意:

    网关只能设置为同一网段的其他IP;
    如果只是设置了网关但是没有在代理服务器中指定路由表(即步骤1,2),则Client端可以ping通代理上面的两张网卡,但是不能ping通10.168.1.xx的其他子网,即不能ping通Server端

  4. Server端设置网关为10.168.9.1

    sudo route add defaultgw 10.168.9.1
    

    以上步骤执行之后则可以互相ping通

3 永久配置方案
上面的步骤只能在终端中有效,平时测试没有问题,但是如果是工程实际应用中则需要进行永久配置

  1. 代理服务器需首先配置允许转发

    sudo vim /etc/sysctl.conf 
    net.ipv4.ip_forward=1
    

    在这里插入图片描述

  2. 代理服务器配置静态路由

    # vi /etc/rc.local
    

    然后将上一步的路由命令写入到该文件。

    sudo route add -net 10.168.9.0 netmask 255.255.255.0 dev eth1 
    sudo route add -net 192.168.1.0/24 netmask 255.255.255.0 dev eth0
    
  3. client、server端分别配置静态路由规则
    client:

    # vi /etc/rc.local
    

    然后将上一步的路由命令写入到该文件。

    sudo route add default gw 192.168.1.1
    

    server:

    # vi /etc/rc.local
    

    然后将上一步的路由命令写入到该文件。

    sudo route add default gw 10.168.9.1
    

    重启后即生效。

  • 3
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值