IPv6

初识awk-获取当前机器的global ipv6地址

LC 2015-10-19 IPv6 Networking

获取当前机器的global ipv6地址 awk使用方法 awk 'pattern {action}' {filenames} 首先,用ifconfig命令可以查看当前机器的所有ip地址 [root@lc ~]# ifconfig eth0      Link encap:Ethernet  HWaddr 38:83:45:F1:33:33           inet addr:192.168.1.13  Bcast:192.168.1.255  Mask:255.255.255.0           inet6 addr: fc00:0:190::13/64 Scope:Global           inet6 addr: fe80::3a83:45ff:fef1:3333/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:3097 errors:0 dropped:0 overruns:0 frame:0           TX packets:3404 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000           RX bytes:380337 (371.4 KiB)  TX bytes:400481 (391.0 KiB)           Interrupt:10 Base address:0xe000 eth1      Link encap:Ethernet  HWaddr 50:E5:49:CF:97:BE            inet addr:192.168.106.239  Bcast:192.168.106.255  Mask:255.255.255.0           inet6 addr: fc00:0:190::221/64 Scope:Global           inet6 addr: fe80::52e5:49ff:fecf:97be/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:74167 errors:0 dropped:0 overruns:0 frame:0           TX packets:25655 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000           RX bytes:8107031 (7.7 MiB)  TX bytes:25823486...

Linux网卡配置多个IPv6地址

LC 2015-10-12 IPv6

前面一篇文章介绍了<a target="_blank" href="http://manager.blog.useasp.net/archive/2015/10/11/Multiple-ip-address-bind-on-one-card-in-linux.aspx">如何给linux网卡配置多个ipv4地址</a>,这里将介绍Linux网卡配置多个IPv6地址 (这里以绑定IP到eth1为例,其它网卡的话修改相应的文件名即可) /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 //绑定IP段的网卡名称 BOOTPROTO=static //协议为静态,用none也可以 ONBOOT=yes //开机启用此网卡 HWADDR=00:1c:49:18:32:6a //MAC地址 NETMASK=255.255.255.0 IPADDR=192.168.1.14 TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=yes IPV6ADDR=fc00:502::c0a8:10e //IPv6 address IPV6ADDR_SECONDARIES=fc00:502::c0a8:10f //second ipv6 address IPV6PREFIX=64 //the prefix is 64 IPV6_DEFAULTGW=fc00:502::ca8:13 //default gateway 保存退出,然后重启网络: [root@lc /]# service network restart 用ifconfig查看是否配置成功: eth1      Link encap:Ethernet  HWaddr 00:1C:49:18:32:6A            inet addr:10.15.1.14  Bcast:10.15.1.255  Mask:255.255.255.0           inet6 addr: fe80::021c:49ff:fe18:326a/64 Scope:Link           inet6 addr: fc00:502::a0f:10e/64 Scope:Global           inet6 addr: fc00:502::a0f:10f/64 Scope:Global           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:75150 errors:0 dropped:0 overruns:0 frame:0           TX packets:47345 errors:0 dropped:0 overruns:0 carrier:1           collisions:0 txqueuelen:1000           RX bytes:7195527 (6.8 MiB)  TX bytes:4920915 (4.6 MiB)           Interrupt:66    

A sample of DHCPv6 server

LC 2015-10-10 IPv6

# for Server authoritative; ddns-updates on; ddns-update-style interim; do-forward-updates on; #preferred-lifetime 86400; #default-lease-time 86400;-valid-time-should-not-less-than-preferred; preferred-lifetime 86400; default-lease-time 86400; #valid-lifetime 720; #default-lease-time 86400; #option 58 3600; #option 59 4800; #    server-preference 255; #    renew-time 60; #    rebind-time 90; #    prefer-life-time 130; #    valid-life-time 200; #    allow rapid-commit; #    option dns_servers 2000::2 ibm.com; # T1, the delay before Renew #  (default is 1/2 preferred lifetime) #  (set to 1 hour) #option dhcp-renewal-time 3600; #option dhcp-renewal-time 50; # T2, the delay before Rebind (if Renews failed) #  (default is 3/4 preferred lifetime) #  (set to 2 hours) #option dhcp-rebinding-time 7200; #option dhcp-rebinding-time 80; <global>   # custom Option Definition <option-def>   # Global Options <global-options> # Classes and groups <sub-classes>   # local subnet - must declaration #PACTINST_DHCP6_NETDETAILS subnet6 fe80::/64 { } #subnet6 2006:200:2:2::100/128 { subnet6 2006:200:2:2::0/64 { #subnet6 2006:200:2::0/49 {         range6 2006:200:2:2::10 2006:200:2:2::fff0; #       Prefix6 2012:150:15:: 2012:150:15:fff0:: /64; #      ...

DHCPv6 clients get the same IPv6 addresses

LC 2015-10-09 IPv6

DHCPv6总是给客户端分配一样的IPv6地址的问题,根据抓包分析,找到问题所在 1. CMTS发给dhcpv6 server的地址里面,relay头里面带的interface-id,填的都是同样的值 00000022 2. 根据itut的文档http://tools.ietf.org/html/draft-ietf-dhc-dhcpv6-ldra-03#page-6          Servers MAY use the Interface-ID for parameter assignment policies.    The format of the Interface-ID is outside the scope of this    contribution.  The Interface-ID SHOULD be considered an opaque value,    i.e. the server SHOULD NOT try to parse the contents of the    Interface-ID option.  The LDRA SHOULD use the same Interface-ID value    for a given interface, and this value SHOULD be retained across    restarts.  This is because, if the Interface-ID changes, a server    will not be able to use it reliably in parameter assignment policies. 3. 通过查看iscdhcpv6-src发现,根据interface-id去找cache的地址。造成客户端总是拿到同样的IPv6地址。     去isc的网站上看到,新版本解决了这个问题。请升级一下   1. cd /PATH/iscdhcpv6-src/ 2. wget http://ftp.isc.org/isc/dhcp/4.2.4-P1/dhcp-4.2.4-P1.tar.gz 3. tar -zxvf dhcp-4.2.4-P1.tar.gz 4. mv /PATH/iscdhcpv6 /PATH/iscdhcpv6.old 5....

IPv6 - DHCPv6方式

Blog Author 2014-01-05 IPv6

从上一篇文章 DHCPv6概述 中介绍我们已经知道DHCPv6有Stateful和Stateless两种方式,这篇文章我们就来详细介绍一下这两种方式。 有状态DHCPv6方式: 客户端通过 DHCPv6 方式获取地址和其他网络配置信息(例如DNS、NIS、SNTP服务器等参数)。有状态DHCPv6方式可以通过DHCPv6四步交互和DHCPv6两步交互来实现。 无状态DHCPv6方式: 客户端通过DHCPv6方式获取网络配置信息(不包括地址)。 以下介绍DHCPv6的各种交互方式: 一、Stateful DHCPv6 - 四步交互 DHCPv6-Client DHCPv6-Server | (1)Solicit | |------------------------->| | (2)Advertise | |<-------------------------| | ...

IPV6 - DHCPv6概述

Blog Author 2014-01-03 IPv6

IPv6协议具有地址空间巨大的特点,但同时长达128比特的 IPv6 地址又要求高效合理的地址自动分配和管理策略。 IPv6无状态(stateless)地址配置协议是目前广泛采用的IPv6地址自动配置方式。配置了该协议的主机只需相邻路由器开启IPv6路由公告(Router Advertisement)功能,即可以根据公告报文包含的前缀信息自动配置本机地址。但无状态地址配置方案中路由器并不记录所连接的IPv6主机的具体地址信息,可管理性差。对于互联网服务提供商(ISP)来说,也没有相关的规范指明如何向路由器自动分配IPv6前缀,所以在部署IPv6网络时,只能采用手动配置的方法为路由交换设备配置IPv6地址。 DHCPv6 是动态主机配置协议(DHCP)的 IPv6 版本,协议基本规范由RFC3315定义。相对于 IPv6 无状态地址自动配置协议,DHCPv6属于一种有状态(stateful)地址自动配置协议。在有状态地址配置过程中, DHCPv6 服务器分配一个完整的 IPv6 地址给主机,并提供DNS服务器地址和域名等其它配置信息,这中间可能通过中继代理转交DHCPv6报文,而且最终服务器能把分配的IPv6地址和客户端的绑定关系记录在案,从而增强了网络的可管理性。 DHCPv6 服务器也能提供无状态DHCPv6服务,即 DHCPv6 服务器不分配IPv6地址,仅需向主机提供DNS服务器地址和域名等其它配置信息,主机IPv6地址仍然通过路由器公告方式自动生成,这样配合使用就弥补了IPv6无状态地址自动配置的缺陷。DHCPv6协议还提供了DHCPv6前缀代理的扩展功能,上游路由器可以自动为下游路由器分派地址前缀,从而实现了层次化网络环境中IPv6地址的自动规划,解决互联网提供商(ISP)的IPv6网络部署问题。

MAC地址转换LinkLocal地址

Blog Author 2013-08-05 IPv6

    前面介绍过 link-local 地址是通过网卡MAC地址转换而来的,这里再提供一个小程序来转换;用C语言写个程序:先获取本机MAC地址,据此得到Link Local地址( IPv6 Address )。 #include #include #include void byte2Hex(unsigned char bData,unsigned char hex[]) { int high=bData/16,low =bData %16; hex[0] = (high <10)?('0'+high):('A'+high-10); hex[1] = (low <10)?('0'+low):('A'+low-10); } int getLocalMac(unsigned char *mac) //获取本机MAC地址 { ULONG ulSize=0; PIP_ADAPTER_INFO pInfo=NULL; int temp=0; temp = GetAdaptersInfo(pInfo,&ulSize);//第一次调用,获取缓冲区大小 pInfo=(PIP_ADAPTER_INFO)malloc(ulSize); temp = GetAdaptersInfo(pInfo,&ulSize); int iCount=0; while(pInfo)//遍历每一张网卡 { // pInfo->Address 是MAC地址 ...

CentOS IPv6环境下DNS服务器简单配置

Blog Author 2013-06-27 IPv6 Networking

CentOS下搭建DNS server首选Bind软件。这里采用Bind v9做为例子(bind9.x提供IPv6 socket的DNS查询,支持IPv6资源记录。 首先下载及安装: # wget http://ftp.isc.org/isc/bind9/9.3.6/bind-9.3.6.tar.gz # tar -xzf bind-9.3.6.tar.gz # cd bind-9.3.6 # ./configure -enable-ipv6 -with-openssl # make && make install 运行 rpm -qa | grep bind 可查看安装bind的版本。 Bind软件安装后,会产生几个固有文件,分为两类:    一类是配置文件在/etc目录下;    一类是DNS记录文件在/var/named目录下。    加上其他相关文件,共同设置DNS server。    named.conf为默认的主配置文件(须手动建立),设置一般的named参数,指向该服务器使用的域数据库信息的源,这类源可以是本地磁盘文件或远程服务器。   纯粹为了试验,我在lab里建立了一个域名shanghai.myuseasp.net的IPv6 DNS server。   配置文件1 /etc/name.conf // Red Hat BIND Configuration Tool // // Default initial "Caching Only" name server configuration // options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; /* * If there is a firewall between you and nameservers...

Ubuntu配置DHCP&DHCPv6 server

Blog Author 2013-06-26 IPv6 Networking

两台笔记本 A和B A: Ubuntu 11.04 + 有线网卡(eth0) + 无线网卡(eth1) B: Windows 7 + 有线网卡 + 无线网卡 A,B的无线网卡都连接到家庭无线 路由器 ,网关为192.168.0.1,可以上互联网。A,B的有线网卡通过网线直连,A作为DHCP server和网关,为B的有线网卡分配IP地址 实验1:A(Ubuntu)安装DHCP server步骤: 1. 下载安装dhcp server sudo apt-get install dhcp3-server 2.修改dhcpserver绑定的interface接口 vi /etc/default/isc-dhcp-server INTERFACES="eth0" 3. 给eth0配置ipv4静态地址: 192.168.1.1。 vi /etc/network/interfaces, add: auto eth0 iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 DHCP server在启动时自动启动;注意不要用network connection配置静态IP,它不会写/etc/network/interfaces文件,导致 DHCP server 无法自动启动。 4.修改dhcpserver配置文件 vi /etc/dhcp/dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.200; option broadcast-address 192.168.1.255; option routers 192.168.1.1; default-lease-time 6000; max-lease-time 8000000; } 5. 启动dhcp server sudo /etc/init.d/isc-dhcp-server start 如果出错,查看/var/log/syslog的错误提示   A安装完DHCP server后,B的有线网卡可以分配到IP地址。但是B不能上互联网了。 route print 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.99 26 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.10 10 连互联网时都走HOP数小的192.168.1.1路由,导致无法上互联网。   运行下面命令解决问题: route delete 0.0.0.0 route add 0.0.0.0 mask 0.0.0.0 192.168.0.1 route add 192.168.1.0 mask...

MAC-to-EUI-64转换

Blog Author 2013-06-25 IPv6

IEEE EUI-64 地址代表网络接口寻址的新标准。公司ID仍然是24位长度,但扩展ID是40位,从而为网络适配器制造商创建了更大的地址空间。EUI-64地址使用U/L和I/G位的方式与IEEE 802地址相同。 将IEEE 802地址映射到EUI-64 地址。 要从IEEE 802 地址创建EUI-64地址,则16位的11111111 11111110 (0xFFFE) 将被插入到公司 ID 和扩展 ID 之间的IEEE 802地址中。 因为MAC地址是唯一的,所以EUI-64地址一般是唯一的。 如何将48 bits的MAC地址转化为64 bits的接口ID? 转化步骤: 1.在MAC地址的公司ID(高24 bits)和节点ID(低24 bits)中间插入 FFFE 2.将MAC地址的U/L位[“全球/本地”("Universal/Local")](从高位开始的第七位) 求反 (invert) 例: 原MAC 20-CF-30-00-32-1A 1.在MAC地址的公司ID(高24 bits)和节点ID(低24 bits)中间插入FFFE;得到 20-CF-30-FF-FE-00-32-1A. 2.20为十六进制,转化为二进制为0010 0000,将MAC地址的U/L位(从高位开始的第七位)求反(invert); 得到0010 0010,转化为16进制,即为22; 20-CF-30-00-32-1A |公司ID和节点ID之间插入FFFE /\ ...