现在的IP网络使用32位地址,以点分十进制表示,如172.16.0.0。地址格式为:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址。
IP地址类型 --IPV4
最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址
A类地址:网络地址的最高位必须是“0”, 1.0.0.0 ---126.255.255.255。可用的A类网络有126个,每个网络能容纳1亿多个主机 ---1个字节8位 网络地址
B类地址:网络地址的最高位必须是“10”,128.0.0.0---191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 ---2个字节的网络地址
C类地址:网络地址的最高位必须是“110”。192.0.0.0---223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。2^8-2(全0和全1的主机地址)
D类地址 :用于多点广播(Multicast)。D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
E类IP地址 :以“llll0”开始,为将来使用保留。
全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0~172.31.255.255
C类地址:192.168.0.0~192.168.255.255
A类地址的第一组数字为1~126。注意,数字0和 127不作为A类地址,数字127保留给内部回送函数,而数字0则表示该地址是本地宿主机,不能传送。
子网掩码:
为了在某个网络里,将网段分开,隔离不同的小区域,划分多个子网。 子网的划分主要依赖子网掩码来实现:
172开头属于B类网络,所以前两个字节172.16是网络,即172.16.0.0 ,这里子网掩码是255.255.255.192,即预留了10位给子网,可以这样表示172.16.2.160/26
那么后面的6位给子网,即每个子网最多可以有2^6-2=30个主机地址。。(可以划分2^16 /32=2^10个子网)
172.16.2.128 为子网网络地址
3. IPV6地址
IPv6地址类似X:X:X:X:X:X:X:X的格式,它是128位的,用\":\"分 成8段,用16进制表示;可见,IPv6地址空间相对于IPv4地址有了极大的扩充。
一个完整的IPv6地址的表示法:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
例如: 2001:0000: 1F 1F :0000:0000:0100: 11A 0:ADDF
为了简化其表示法, rfc2373提出每段中前面的0可以省略,连续的0可省略为\"::\",但只能出现一次。例如:
1080:0:0:0:8:800: 200C : 417A 可简写为 1080::8:800: 200C : 417A
FF01:0:0:0:0:0:0:101 可简写为 FF01::101
0:0:0:0:0:0:0:1 可简写为 ::1
0:0:0:0:0:0:0:0 可简写为 ::
类似于 IPv4中的CDIR表示法,IPv6用前缀来表示网络地址空间,比如:
2001:251:e000::/48 表示前缀为48位的地址空间,其后的80位可分配给网络中的主机,共有2的80次方个地址。
常见的IPv6地址及其前缀
• ::/128 即0:0:0:0:0:0:0:0,只能作为尚未获得正式地址的主机的源地址,不能作为目的地址,不能分配给真实的网络接口。
• ::1/128 即0:0:0:0:0:0:0:1,回环地址,相当于IPv4中的localhost(127.0.0.1),ping locahost可得到此地址。
• 2001::/16 全球可聚合地址,由 IANA 按地域和ISP进行分配,是最常用的IPv6地址,属于单播地址。
• 2002::/16 6 to 4 地址,用于6to4自动构造隧道技术的地址,属于单播地址。
• 3ffe::/16 早期开始的IPv6 6bone试验网 地址,属于单播地址。
• fe80::/10 本地链路地址,用于单一链路,适用于自动配置、邻机发现等,路由器不转发以fe80开头的地址。
• ff00::/8 组播地址。
• ::A.B.C.D 兼容IPv4的IPv6地址,其中<A.B.C.D>代表IPv4地址。自动将IPv6包以隧道方式在IPv4网络中传送的IPv4/IPv6节点将使用这些地址。
• ::FFFF:A.B.C.D 是IPv4映射过来的IPv6地址,其中<A.B.C.D>代表IPv4地址,例如 ::ffff:202.120.2.30 ,它是在不支持IPv6的网上用于表示IPv4节点。
Linux是所有操作系统中最先支持IPv6的,这里介绍一下Linux下的IPv6的地址、路由设定、防火墙配置、安全工具,使大家可以在Linux网络环境下从IPv4快速过渡到IPv6
1、加载IPv6模块
和Windows系统相比Linux对Ipv6的支持更好,一般基于2.4内核的Linux发行版本都可以直接使用Ipv6,使用前要看系统IPv6模块是否被加载,如果没有的话可以使用命令手工加载,这需要超级用户的权限。然后使用命令检测,图1中第五行处显示IPv6地址(inet6 addr:fe80::200:e8ff:fea0:2586/64)证明IPv6已经加载。
# modprobe IPv6
#ifconfig -a 显示ipv6地址
2、使用Ping命令检测网卡的IPv6地址是否有效
和IPv4不一样使用Ping6命令时必须指定一个网卡界面,否则系统将不知道将数据包发送到那个网络设备,I表示Interface、eth0 是第一个网卡、c表示回路,3表示Ping6操作三次。结果见图2:
#ping6 -I eth0 -c 1 fe80::200:e8ff:fea0:2586
3、使用IP命令
IP命令是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具。如:ifconfig、route等。
(1)使用"ip"命令查看IPv6的路由表:
#/sbin/ip -6 route show dev eth0
(2)使用"IP"命令添加一个路由表:
#/sbin/ip -A inet6 add 2000::/3 gw 3ffe:ffff:0:f101::1
(3)用IP命令设定IPv6的多点传播Neighbor Solicitation
IPv6的Neighbor Discovery继承了IPv4的ARP(Address Resolution Protocol地址解析协议),可以重新得到网络邻居的信息,并且可以编辑/删除它.使用IP命令可以知道网络邻居的设定(其中,00:01:24:45:67:89是网络设备的数据链路层的 MAC地址):
#ip -6 neigh show fe80::201:23ff:fe45:6789 dev eth0 ll addr 00:01:24:45:67:89
router nud reachable
4.配置ipv6防火墙
(1)下载Ipv6版本的iptables
(2) 安装防火墙:
#rpm -ivh iptables-ipv6-1.2.7a-1ark.i586.rpm
(3)配置iptables
netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。