网络号
IP地址分类:
1.0.0.0 到 126.255.255.255为A类 主要分配给具有大量主机而局域网络数量较少的大型网络
128.0.0.0 到 191.255.255.255为B类 一般用于国际性大公司和政府机构
192.0.0.0 到 223.255.255.255为C类 用于一般小公司 校园网 研究机构等
224.0.0.0 到 239.255.255.255为D类 用于特殊用途. 又称做广播地址
240.0.0.0 到 247.255.255.255为E类. 暂时保留
IP地址是辨明网络中一台主机身份的编码,是网卡MAC地址对应在IP层用于寻找路由的地址:
root@ubuntu:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0c:29:8f:26:37
inet addr:192.168.154.128 Bcast:192.168.154.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8f:2637/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:859 errors:0 dropped:0 overruns:0 frame:0
TX packets:286 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:78285 (78.2 KB) TX bytes:36531 (36.5 KB)
Interrupt:19 Base address:0x2000
子网掩码是在网内进一步划分子网或者划分主机而使用的一种码,习惯上是由二进制的一串1加上一串0组成,所以我们经常看见的子网掩码都是255.255..等等。这个可以根据需要自己划分。
子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。这对于采用TCP/IP协议的网络来说非常重要,只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
子网掩码有数百种,这里只介绍最常用的两种子网掩码:
- 子网掩码是“255.255.255.0”的网络:最后面一个数字可以在0~255范围内任意变化,因此可以提供256个IP地址。但是实际可用的IP地址数量是256-2,即254个,因为主机号不能全是“0”或全是“1”。
- 子网掩码是“255.255.0.0”的网络:后面两个数字可以在0~255范围内任意变化,可以提供2552个IP地址。但是实际可用的IP地址数量是2552-2,即65023个。
网关
网关是你所在的子网的一个路由器,就如同一个看门的,把属于该子网的消息包接收过来,不属于的就过滤掉。
网关地址就是分配给路由器对应接口的IP地址。对于网关来说,只要是除了网络地址,广播地址以外的可用主机地址都可以分配给它。比方说,在192.168.1.0/24 的网络里面,网络地址是192.168.1.0 广播地址是192.168.1.255,那么除了以上两个地址以外的192.168.1.1-192.168.1.254 都是可以分配给网关的
举例说明:IP是192.168.154.128 ,子网掩码是24位的,那么网络号就是192.168.154.0,我在给他指定一个网关是192.168.154.2 。
这个时候,我的这台电脑想要和同网的192.168.154.129通信,那么他就不用网关了,直接发到局域网上就可以了。但是如果我想要发给远程的主机,比方说IP是192.168.2.1 同样24位的,它的网络号就是192.168.2.0 这时网关就起作用了,我的电脑就会把数据发给网关,由网关再转发一直到达目的地也就是IP 是192.168.2.1的主机上。
路由
名词含义:数据包从源地址到目的地址的所有路径,由一系列路由节点组成。
动词含义:某个路由节点为数据报选择投递方向的选路过程。
路由条目:路由表中的一行,主要由目的网络地址,子网掩码,下一条地址,发送接口 四部分组成。如果数据报的目的网络地址匹配到哪一行,就按规定的接口发送到下一跳地址。
路由表:由很多路由条目组成,每个条目指明去往某个网络的数据包应该从哪个接口发送。当都不匹配时,按缺省路由条目(default 0.0.0.0)发送
假设某主机路由表如下:
root@ubuntu:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
192.168.10.0 * 255.255.255.0 U 1 0 0 eth0
192.168.56.0 * 255.255.255.0 U 1 0 0 eth1
127.0.0.0 * 255.0.0.0 U 1 0 0 lo
10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0
参数 | 含义 |
---|---|
Destination | 目标网络或目标主机。为 default(0.0.0.0)时,表示这个是默认网关,所有数据都发到这个网关 |
Gateway | 网关地址,*(0.0.0.0)表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关 |
Genmask | 网络掩码,Destination 是主机时需要设置为 255.255.255.255,是默认路由时会设置为 0.0.0.0 |
Flags | 标记,含义参考表格后面的解释 |
Metric | 路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的 (不在Linux内核中使用) |
Ref | 路由项引用次数 (不在Linux内核中使用。) |
Use | 此路由项被路由软件查找的次数 |
Iface | 发送网卡名字 |
Flags 含义:
- U 路由是活动的
- H 目标是个主机
- G 需要经过网关
- R 恢复动态路由产生的表项
- D 由路由的后台程序动态地安装
- M 由路由的后台程序修改
假设该主机的网络接口配置如下:
root@ubuntu:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0c:29:8f:26:37
inet addr:192.168.10.223 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8f:2637/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:859 errors:0 dropped:0 overruns:0 frame:0
TX packets:286 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:78285 (78.2 KB) TX bytes:36531 (36.5 KB)
Interrupt:19 Base address:0x2000
eth1 Link encap:Ethernet HWaddr 00:0c:29:8f:26:37
inet addr:192.168.56.136 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8f:2638/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:859 errors:0 dropped:0 overruns:0 frame:0
TX packets:286 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:78285 (78.2 KB) TX bytes:36531 (36.5 KB)
Interrupt:19 Base address:0x2000
假设要发送的数据包目的地址是192.168.56.3,与子码掩码做运算得192.168.56.0,正是第4行的目的网络地址因此从eth1口发送出去。由于192.169.56.0/24是与eth1直连的网络,因此可以直接发到主机,不要经过路由器转发。
假设要发送的数据包目的地址是202.10.12.3,那么就按默认路由,从eth0口发送出去。首先发送到192.168.10.1的路由器,再让路由器根据它的路由表决定下一跳地址。
相关操作:
添加网关
route add default gw 192.168.10.1
添加路由
route add -net 192.168.20.0 netmask 255.255.255.0 gw 192.168.10.1
查看路由状态
route -n
ip route show
删除路由
route del -net 192.168.20.0 netmask 255.255.255.0