精华内容
下载资源
问答
  • 1、网关就是你路由器接口的地址一般会设这个网段开头或结尾IP,如192.168.0.1或192.168.0.254.2、如果你是一个路由器的两个口去分别接两个交换机一个交换机一个网段,那就是给接这个网段的路由器口设置一个IP地址,...

    1、网关就是你路由器接口的地址一般会设这个网段开头或结尾IP,如192.168.0.1或192.168.0.254.
    2、如果你是一个路由器的两个口去分别接两个交换机一个交换机一个网段,那就是给接这个网段的路由器口设置一个IP地址,这个IP就是你那个网段的网关。
    3、如果你是一个路由器接口接两个网段,那就在这个口上做单臂路由,你查一下怎么设吧不是很难。
    4、不可能两个网段设一个网关,一个IP不可能同时属于互斥的两个网段呀!要不你就把两个网段划成一个大网段就得了。

    转载于:https://www.cnblogs.com/bdqczhl/p/11450880.html

    展开全文
  • 要判断IP和网关或者两个IP地址是否在同一个网段,将它们的IP地址分别与子网掩码与运算,得到的结果为网络号,如果网络号相同,就在同一子网,否则,不在同一子网。 java代码: import java.util.regex.Pattern; ...

    要判断IP和网关或者两个IP地址是否在同一个网段,将它们的IP地址分别与子网掩码做与运算,得到的结果为网络号,如果网络号相同,就在同一子网,否则,不在同一子网。

    js代码:

    /**
        * [isEqualIPAddress 判断两个IP地址是否在同一个网段]
        * @param {[String]} addr1 [地址一]
        * @param {[String]} addr2 [地址二]
        * @param {[String]} mask [子网掩码]
        * @return {Boolean} [true or false]
        */
        function isEqualIPAddress (addr1,addr2,mask){
    	    if(!addr1 || !addr2 || !mask){
    		    // 各参数不能为空
    		    return false;
    	    }
    	    var
    	    res1 = [],
    	    res2 = [];
    	    addr1 = addr1.split(".");
    	    addr2 = addr2.split(".");
    	    mask = mask.split(".");
    	    for(var i = 0,ilen = addr1.length; i < ilen ; i += 1){
    		    res1.push(parseInt(addr1[i]) & parseInt(mask[i]));
    		    res2.push(parseInt(addr2[i]) & parseInt(mask[i]));
    	    }
    	    if(res1.join(".") == res2.join(".")){
    		    // 在同一个网段
    		    return true;
    	    }else{
    		    // 不在同一个网段
    		    return false;
    	    }
        }
    

    java代码:

     
    import java.util.regex.Pattern;
     
    /**
    * <pre>
    * IP地址范围:
    * 0.0.0.0~255.255.255.255,包括了mask地址。
    *
    * IP地址划分:
    * A类地址:1.0.0.1~126.255.255.254
    * B类地址:128.0.0.1~191.255.255.254
    * C类地址:192.168.0.0~192.168.255.255
    * D类地址:224.0.0.1~239.255.255.254
    * E类地址:240.0.0.1~255.255.255.254
    *
    * 如何判断两个IP地址是否是同一个网段中:
    * 要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果一网络号,如果网络号相同,就在同一子网,否则,不在同一子网。
    * 例:假定选择了子网掩码255.255.254.0,现在分别将上述两个IP地址分别与掩码做与运算,如下图所示:
    * 211.95.165.24 11010011 01011111 10100101 00011000
    * 255.255.254.0 11111111 11111111 111111110 00000000
    * 与的结果是: 11010011 01011111 10100100 00000000
    *
    * 211.95.164.78 11010011 01011111 10100100 01001110
    * 255.255.254.0 11111111 11111111 111111110 00000000
    * 与的结果是: 11010011 01011111 10100100 00000000
    * 可以看出,得到的结果(这个结果就是网络地址)都是一样的,因此可以判断这两个IP地址在同一个子网。
    *
    * 如果没有进行子网划分,A类网络的子网掩码为255.0.0.0,B类网络的子网掩码为255.255.0.0,C类网络的子网掩码为255.255.255.0,缺省情况子网掩码为255.255.255.0
    *
    * @author Slive
    */
    public class IpV4Util{
         // IpV4的正则表达式,用于判断IpV4地址是否合法
         private static final String IPV4_REGEX = "((\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})";
        
         /**
         * 比较两个ip地址是否在同一个网段中,如果两个都是合法地址,两个都是非法地址时,可以正常比较;
         * 如果有其一不是合法地址则返回false;
         * 注意此处的ip地址指的是如“192.168.1.1”地址
         * @return
         */
         public static boolean checkSameSegment(String ip1,String ip2, String mask){
        	 int maskInt = getIpV4Value(mask);
              // 判断IPV4是否合法
              if(!ipV4Validate(ip1)){
                   return false;
              }
              if(!ipV4Validate(ip2)){
                   return false;
              }
              int ipValue1 = getIpV4Value(ip1);
              int ipValue2 = getIpV4Value(ip2);
              return (maskInt & ipValue1) == (maskInt & ipValue2);
         }
       
         /**
         * 判断ipV4或者mask地址是否合法,通过正则表达式方式进行判断
         * @param ipv4
         */
        public static boolean ipV4Validate(String ipv4){
             return ipv4Validate(ipv4,IPV4_REGEX);
        }
       
        private static boolean ipv4Validate(String addr,String regex){
              if(addr == null)
              {
                  return false;
             }
             else
             {
                  return Pattern.matches(regex, addr.trim());
             }
         }
     
         public static int getIpV4Value(String ipOrMask){
              byte[] addr = getIpV4Bytes(ipOrMask);
              int address1  = addr[3] & 0xFF;
              address1 |= ((addr[2] << 8) & 0xFF00);
              address1 |= ((addr[1] << 16) & 0xFF0000);
              address1 |= ((addr[0] << 24) & 0xFF000000);
              return address1;
         }
     
         public static byte[] getIpV4Bytes(String ipOrMask){
              try{
                   String[] addrs = ipOrMask.split("\\.");
                   int length = addrs.length;
                   byte[] addr = new byte[length];
                   for (int index = 0; index < length; index++){
                        addr[index] = (byte) (Integer.parseInt(addrs[index]) & 0xff);
                   }
                   return addr;
              }
              catch (Exception e)
              {
              }
              return new byte[4];
         }
         public static void main(String[] args) {
        	 String ip1 = "168.1.1.11";
        	 String ip2 = "168.1.2.254";
        	 String mask1 = "255.255.255.0";
        	 boolean b = checkSameSegment(ip1, ip2, mask1);
        	 System.out.println(b);
    	}
    }
    
    
    

    参考地址:
    1.https://www.jb51.net/article/44430.htm
    2.https://blog.csdn.net/lipslive/article/details/10776381#

    展开全文
  • 我想到了种办法,第种就是在R3和R4上首跳冗余,将PC的网关地址设置成VRRP的虚拟地址,但是这样的话需要更改R3的E0/1接口的地址,起来比较麻烦。那么还有没有更简单的办法呢?有,就是第二种办法,就是在PC上...

    某一天在群里看到有人问,下面这个拓扑中的PC如何同时访问20.1.1.0/24网段和10.1.1.0/24网段。

    6d1b1ef46b03d8d1f98d4f71ba7ba7c7.png

    我想到了两种办法,第一种就是在R3和R4上做首跳冗余,将PC的网关地址设置成VRRP的虚拟地址,但是这样的话需要更改R3的E0/1接口的地址,做起来比较麻烦。那么还有没有更简单的办法呢?有,就是第二种办法,就是在PC上添加一条路由,估计有人就要问了,PC上还能添加路由吗?为什么我要这么说呢?因为群里就有很多人这样问的,哈哈哈。答案当然是肯定的,具体的办法请看下面的内容。

    我们先来查看一下PC当前的IP信息,如下图。

    5ea0003ebf44299a7ea9b668eb404c51.png

    IP地址是192.168.1.1,网关是192.168.1.254,就是R3的E0/1接口,当前的配置下,PC只能够访问R3连接的10.1.1.0/24网段。

    8c12568b17bdd897d77de3a11231621e.png

    因为PC的网关为R3的E0/1,所有PC要访问其他网段的时候都会将数据包发送给R3的E0/1,然后自己啥也不管了,其他的事情交给网关处理。

    此时如果要访问20.1.1.0/24网段,我们可以在PC上使用route add这条命令临时添加下一跳一条指向R4的E0/1的路由,为什么说临时添加呢,因为在PC关机之后这条指向R4的E0/1的路由就会消失不见了。添加之后就可以访问20.1.1.0/24网段了。在当前的实验拓扑里面添加临时路由的命令是route add 20.1.1.0 mask 255.255.255.0 192.168.1.253。

    aacc6f64102b28d36142087b12ca9df6.png

    我们可以使用route print来查看PC上的路由表。

    795025e984ff4e93a8b4e232180b59b1.png
    展开全文
  • 要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码与运算,得到的结果一网络号,如果网络号相同,就在同一子网,否则,不在同一子网。例:假定选择了子网掩码255.255.254.0,现在分别将上述...

    要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果一网络号,如果网络号相同,就在同一子网,否则,不在同一子网。

    例:假定选择了子网掩码255.255.254.0,现在分别将上述两个IP地址分别与掩码做与运算,如下所示:

    211.95.165.24 11010011 01011111 10100101 00011000

    255.255.254.0 11111111 11111111 111111110 00000000

    与的结果是: 11010011 01011111 10100100 00000000

    211.95.164.78 11010011 01011111 10100100 01001110

    255.255.254.0 11111111 11111111 111111110 00000000

    与的结果是: 11010011 01011111 10100100 00000000

    可以看出,得到的结果(这个结果就是网络地址)都是一样的,因此可以判断这两个IP地址在同一个子网。

    就可以把ip跟网关分别和子网掩码做与运算,判断是否相等即可。

    简单的代码如下,不考虑输入数据的正确性,即认为int.Parse 不会出现异常,3个.Split全是分为4段数字

    private bool CheckIPMaskGateway(string mask, string gateway, stringip)

    {string[] maskList = mask.Split('.');string[] gatewayList = gateway.Split('.');string[] ipList = ip.Split('.');for (int j = 0; j < maskList.Length; j++)

    {if ((int.Parse(gatewayList[j]) & int.Parse(maskList[j])) != (int.Parse(ipList[j]) & int.Parse(maskList[j])))

    {return false;

    }

    }return true;

    }

    在C#中可以对整型运算对象按位进行逻辑运算。按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位。C#支持的位逻辑运算符如表所示。

    运算符号

    意义

    运算对象类型

    运算结果类型

    对象数

    实例

    ~

    位逻辑非运算

    整型,字符型

    整型

    1

    ~a

    &

    位逻辑与运算

    2

    a & b

    |

    位逻辑或运算

    2

    a | b

    ^

    位逻辑异或运算

    2

    a ^ b

    <<

    位左移运算

    2

    a<<4

    >>

    位右移运算

    2

    a>>2

    1、位逻辑非运算

    位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1;如果某一位等于1,就将其转变为0。

    比如,对二进制的10010001进行位逻辑非运算,结果等于01101110,用十进制表示就是:

    ~145等于110;对二进制的01010101进行位逻辑非运算,结果等于10101010。用十进制表示就是~85等于176。

    2、位逻辑与运算

    位逻辑与运算将两个运算对象按位进行与运算。与运算的规则:1与1等于1,1与0等于0,0与0等于0。

    比如:10010001(二进制)&11110000等于10010000(二进制)。

    3、位逻辑或运算

    位逻辑或运算将两个运算对象按位进行或运算。或运算的规则是:1或1等1,1或0等于1,

    0或0等于0。比如10010001(二进制)| 11110000(二进制)等于11110001(二进制)。

    4、位逻辑异或运算

    位逻辑异或运算将两个运算对象按位进行异或运算。异或运算的规则是:1异或1等于0,

    1异或0等于1,0异或0等于0。即:相同得0,相异得1。

    比如:10010001(二进制)^11110000(二进制)等于01100001(二进制)。

    5、位左移运算

    位左移运算将整个数按位左移若干位,左移后空出的部分0。比如:8位的byte型变量

    byte a=0x65(即二进制的01100101),将其左移3位:a<<3的结果是0x27(即二进制的00101000)。

    6、位右移运算

    位右移运算将整个数按位右移若干位,右移后空出的部分填0。比如:8位的byte型变量

    Byte a=0x65(既(二进制的01100101))将其右移3位:a>>3的结果是0x0c(二进制00001100)。

    在进行位与、或、异或运算时,如果两个运算对象的类型一致,则运算结果的类型就是运算对象的类型。比如对两个int变量a和b做与运算,运算结果的类型还是int型。如果两个运算

    对象的类型不一致,则C#要对不一致的类型进行类型转换,变成一致的类型,然后进行运算。

    类型转换的规则同算术运算中整型量的转换则一致。

    由位运算符连接整型量而成的表达式就是位运算表达式。

    参考:http://www.2cto.com/net/201208/151298.html

    http://www.cnblogs.com/zgqys1980/archive/2010/05/31/1748404.html

    展开全文
  • 要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码与运算,得到的结果一网络号,如果网络号相同,就在同一子网,否则,不在同一子网。 例:假定选择了子网掩码255.255.254.0,现在分别将上述...
  • 如何设置Ubuntu做网关

    千次阅读 2007-08-11 22:19:00
    Linux服务器没什么好说的,好用就一个字。硬件需求: 一台安装Ubuntu的PC。 块网卡。配置很简单,假设有两个网段的网络:0和1,分别是192.168.0.0和192.168.1.0。其中eth0接在0号网络,eth1接在1号网络。现在...
  • 问题:话说台电脑在一个局域网内,把它们的IP地址都设成不同的网段,请问,它们可不可以通讯?如果能,请问应该怎么?(1)其实不论怎么设置,目的都是为了添加路由网关只是间接添加了0.0.0.0的默认路由要通,...
  • 网关 与 DNS

    2010-04-20 22:44:00
    网关 //当要访问的地址不在本机网段时,才会通过网关去访问 DNS //域名解析,指定一个IP,当访问一个域名时,会通过这个IP把域名解析成IP去访问 今日实验1.设置WINROUTE代理2.设置台虚拟机,一台服务器,...
  • 网关这种设备它主要是...简单来说,网关它就是为了管理不同网段的IP,我们一般在交换机上VLAN的时候,就需要在默认的VLAN接口之下做一个IP,而这个IP它就是我们所说的网关。 工业路由器它是属于网络层设备,通...
  • 一些服务器虚拟化软件可实现在台虚拟化的物理服务器之间对虚拟机动态迁移,迁移至另中心的虚拟机不仅保留原有IP地址,而且还保持迁移前的运行状态(如TCP会话状态),所以必须将涉及虚拟机,迁移的物理服务器接...
  • 使用VMware搭建环境, 注:网关服务器,需要开启路由转发功能,开启方式有种,一个临时,一个永久 总结:
  • 在LVS上实现SNAT网关

    千次阅读 2014-08-05 20:28:31
    研究目的: 使用LVS4层反向代理负载均衡 在网关做SNAT,为内网机器提供访问外网的功能 ... 后端机器跟LVS内网IP处于同一个内网网段,每台后端机器都只有一个内网地址,他们的网关都指向LVS机器
  • 自己的Linux虚拟机已经分配了固定的IP地址(使用无线路由,用的是192.168.1.XX网段),公司的无线网络...1.使用自己的手机为热点,形成一个局域网,电脑连接此局域网上网桥接. 结果:倒是可以形成一个局域网,但是手机(...
  • 客户现有拓扑: 需求说明: ...个人觉得难点是,同条线路,2个网段,2个网关,怎么在同条链路静态nat 解决办法: 1、 定义需要静态nat的服务器及映射端口(创建server) slb ser...
  • 在要求不太高的情况,我们可以用其它设备作为网关来...但要注意的是:使用块网卡来连接两个网段的方法在这里是不行的,那样这台机器虽然可以被任何网段访问到,但以它为网关来访问其它不同网段的机器是无法做到的。
  • 体验Ubuntu服务器

    2008-01-05 21:34:37
    硬件 首先当然是要有台可以安装Ubuntu的机器(一般不是忒新的机器都可以安装),并且有两个网卡,作为两个网段网关。 安装配置直接安装Ubuntu7.04,安装很顺利,很快安装完了。然后配置网络,...
  • 目前只有一个网段,突然发生环路将整楼上不了网络,影响公司的运作,并且老板安排的视频会议也不能开导致老板把IT的经理骂了一顿(这个是开玩笑的我们继续往下看)、为了彻底解决这个问题,IT经理突然想可不可以每...
  • SW7,SW8上针对两个VLAN分别VRRP,同时运行STP R1为路由器,在R1上NAT,R2模拟外网 VRRP VRRP虚拟出一个网关设备,主机填写虚拟网关地址(vrid),主机的所有流量发送到虚拟网关设备,再由虚拟网关设备,发送给...
  • centos配置网络防火墙

    2020-11-28 11:20:05
    第一个网卡ens33与外网ip在同一个网段 ,这里我们取ip192.168.3.135网关配置为和192.168.3.132相同的192.168.3.2 网卡模式NAT 第二个网卡ens37与内网C在同一网段,ip我们设置为192.168.4.13 网卡模式为仅主机 仅主机...
  • 目的,模拟一个内网和外网,内网机器访问外网,并进行 地址转换。 采用Linux主机做网关,在其上配置两个网段、iptables的转发规则,并作为内网 DHCP 服务器。
  •  网关实质上是一个网络通向其他网络的IP地址。  要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关...
  • 个实验:验证一下在一个局域网中是不是得配同一网段才能通信 IP地址详解 一、简单局域网构成 局域网:一般称为内网 简单局域网的构成:交换机、网线、PC(其他IT终端) 交换机:用来组建内网的局域网最...
  • 2020-12-09

    2020-12-09 19:46:46
    路由器的简单讲解 路由器是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个...产生直连的条件—接口存在ip地址,同时接口双up,默认路由器以一个网段作为路由目标记录; 所有非直连网段路由为未
  • 华为链路聚合实验

    千次阅读 2018-07-07 01:40:50
    下面我仅仅使用了一个链路聚合,我曾过这样的实验,如果主机在相同网段相同网段。则不需要在交换机上配置IP地址,如果主机在不同网段且不同vlan下的时候,则需要在交换机上配置IP地址 实验如下: 确保pc1...
  • 、实验环境: 主备方案: 在备份的路由器上通过修改local-preference和MED属性来干涉选路 负载分担: 思路:把原有网段拆分成两个网段,分别走不同的...例:把源网段为10.1.1.0/24,掩码加一位拆成两个...

空空如也

空空如也

1 2 3
收藏数 58
精华内容 23
关键字:

一个网段做两个网关