zoukankan      html  css  js  c++  java
  • 服务器网络配置(多出口路由设置)

    作者:邓聪聪

    关于包的原路返回的问题:

      举个例子,比如如果一个linux服务器有三个口接三个不同的网络,假设对应的网络信息是如此

    ens33是电信,ip地址为1.1.1.2/24,电信网关为1.1.1.1
    ens224是联通,ip地址为2.2.2.2/24,联通网关为2.2.2.1
    ens256是移动,ip地址为3.3.3.2/24,移动网关为3.3.3.1
     
      传统情况下,如果是为了从内向外访问获得更好的速度,让访问电信走电信,访问联通走联通,那么配置是网关只能够配置一个,比如以电信为主的,那么网关就只设置电信的1.1.1.1,而针对联通和移动设置不同的路由,路由下一跳指向联通和移动对应的网关。如果这样做的目的只是实现内部访问外面,那么是没问题了,但是如果是为了让外面的用户能够正常访问到服务器上的服务就会出问题。比如电信用户会无法访问联通和移动的ip,联通用户会无法访问电信和移动的ip。要解决这个问题,思路就是由哪个网口进来的流量希望全部就由哪个回去。用lartc里面提到的方法就是来源的口不同,走不同的路由表。在默认的路由表基础上再建立两个路由表。
      用 ip route show 可以看到默认有local,main,default三个路由表,这三个路由表的名称命名来自 /etc/iproute2/rt_tables ,这里先在这个配置文件里面添加两个不同的路由表表名,分别是联通和移动,电信配置有默认网关
      echo ''102 Chinacnc'' >> /etc/iproute2/rt_tables
      echo "103 Chinacmcc" >> /etc/iproute2/rt_tables
    之后建立这两个路由表的内容,因为这两个路由表的只是用来响应来自不同接口的,而不是用来相应从哪个接口出去的,所以只需要路由表里面建立默认网关即可。
      ip route add default via 2.2.2.1 dev eth1 table Chinacnc
      ip route add default via 3.3.3.1 dev eth2 table Chinacmcc
    之后再加上两条规则,使来自不同的口的走不同的路由表
      ip rule add from 2.2.2.2 table Chinacnc
      ip rule add from 3.3.3.2 table Chinacmcc
    至此无论是电信还是联通还是移动用户,访问三个ip的任意一个地址都能够连通了。
    查看路由信息:ip route show / route -n
     
    目的地址选择出口使用静态路由的方式:
    1,手动添加目的地址静态路由的方式
      route add -net x.x.x.x/24 gw x.x.x.x
    2,增加目的地址路由的配置文件,网卡重启立即生效
      vi /etc/sysconfig/network-scripts/route-ens224 #联通,移动方法同理,设置正确的网卡信息
        x.x.x.x via 2.2.2.1
     
     
  • 相关阅读:
    Docker手动搭建sentry错误日志系统
    Flask源码解析:Flask应用执行流程及原理
    django Rest Framework---缓存通过drf-extensions扩展来实现
    Python实现 -- 冒泡排序、选择排序、插入排序
    Python查找算法之 -- 列表查找和二分查找
    java设计模式之单例模式
    中文乱码解决方案
    web应用中Filter过滤器之开发应用
    web应用中的Filter过滤器之基础概述
    会话跟踪技术
  • 原文地址:https://www.cnblogs.com/dengcongcong/p/11594649.html
Copyright © 2011-2022 走看看