管理IPv6网络
一、回顾IPv4网络配置
1 测试和验证网络配置
$ ip addr show eth0
$ ip link
$ ip -s link show eth0 <--- -s 输出接口的状态
$ ip route 或 $ route -n
$ ping -c3 172.25.254.254
查看网络连接
$ ss -ta
-t tcp协议的连接
-a 所有状态的连接
-n 数字化输出
-u upd协议的连接
-l 处于listen状态的连接
-p 输出相应进程的名字
2 使用nmcli命令配置网络
NetworkManager是监控和管理网络设定的服务。该服务在GNOME桌面上有一个图形插件可以查看网络状态的。
提供的命令行和图形配置工具对网络进行设定,设定保存的配置文件在/etc/sysconfig/network-scripts目录下。
机器的网卡通信需要配置IP,而IP可以通过DHCP自动获得,或者手工配置指定。
查看所有的连接(连接:NetworkManager定义的概念,由网卡设备和网卡的配置信息组成)
# nmcli con show
查看所有活动的连接
# nmcli con show --active
查看指定ID(name)连接的详细情况
# nmcli con show "System eth0"
查看设备状态
# nmcli dev status
查看指定设备的状态
# nmcli dev show eth0
使用nmcli创建新的连接:
1) 定一个名字为default的连接,该连接会通过DHCP自动配置
# nmcli con add con-name "default" type ethernet ifname eth0
2)定一个名为static的连接,并且手工指定所配置的IP和网关,该连接不会自动激活(默认处于断开状态)
# nmcli con add con-name "static" ifname eth0 autoconnect no type ethernet ip4 172.25.0.10/24 gw4 172.25.0.254
3)激活指定的名字为static的连接
# nmcli con up "static"
4)激活前面定义的default连接
# nmcli con up default
使用nmcli修改已有的网络连接:
1)让连接取消自动激活
# nmcli con mod "static" connection.autoconnect no
2)修改连接的dns
# nmcli con mod "static" ipv4.dns 172.25.0.254
3)给连接再添加一个dns,有些设定值通过+/-可以增加或则移除设定
# nmcli con mod "static" +ipv4.dns 8.8.8.8
4)替换连接的静态IP和默认网关
# nmcli con mod "static" ipv4.addresses "172.25.0.10/24 172.25.0.254"
5)添加一个没有默认网关的IP
# nmcli con mod "static" +ipv4.addresses 10.10.10.10/16
6)修改完毕,nmlci仅仅修改并保存了配置,要激活更改,需要重激活连接
# nmcli con up "static"
其余的一些用法:
# nmcli con del "<ID>"
# nmcli net off 关闭所有管理的接口
# nmcli dev dis <DEV> 关闭某个接口,并临时禁用自动连接
# nmcli con down "<ID>" 断开某个连接
图形工具配置 nm-connection-editor
3 设定主机名和名字解析
在rhel7,静态主机名设定保存在/etc/hostname, 并且建议使用hostnamectl命令修改和查看系统的FQDN主机名
# hostnamectl set-hostname server0.example.com
# hostnamectl status
# cat /etc/hostname
二、IPv6网络配置
1.概念
IPv6所拥有的地址容量是IPv4的约8×10^28倍,达到2^128(算上全零的)个
IPv6地址为128位长,但通常写作8组,每组为四个十六进制数的形式,每个字符表示4bit。例如:
FE80:0000:0000:0000:AAAA:0000:00C2:0002 是一个合法的IPv6地址。
零压缩法:如果几个连续段位的值都是0,那么这些0就可以简单的以::来表示,上述地址就可以写FE80::AAAA:0000:00C2:0002。
这里要注意的是只能简化连续的段位的0,其前后的0都要保留,比如FE80的最后的这个0,不能被简化。还有这个只能用一次,在上例中的AAAA后面的0000就不能再次简化。
2001:0DB8:0000:0000:0000:0000:1428:0000
2001:0DB8:0000:0000:0000::1428:0000
2001:0DB8:0:0:0:0:1428:0000
2001:0DB8:0::0:0:1428:0000
2001:0DB8::1428:0000都是合法的地址,并且他们是等价的。但
2001:0DB8::1428::是非法的。(因为这样会使得搞不清楚每个压缩中有几个全零的分组)
同时前导的零可以省略,因此:
2001:0DB8:02de::0e13等价于2001:DB8:2de::e13
::1/128 localhost 这个地址类似127.0.0.1/8 ,给loopback设备配置
:: 不确定地址,类似于 0.0.0.0 ,能匹配所有ipv6地址
::/0 ipv6的默认路由条目,类似于0.0.0.0/0 一般作为ipv6的默认网关
2000::/3 全局单播地址,用在Ipv6的互联网上。
fd00::/8 ipv6的私有IP地址段,所有组织的设备都可以自由使用,这相当于ipv4的私有IP地址,但掩码必须是从/48为开始
fe80::/64 链接本地地址,它是一种自动分配的IP地址,如果看到接口分配了一个这样的地址,所以网络中的DHCPv6不可用。类似于ipv4的169.254.0.0/16
ff00::/8 组播地址,类似于 224.0.0.0/4
2、给网卡配置ipv6地址
为了完成配置练习,请在server0上操作:
# lab ipv6 setup
命令行配置:
# nmcli con add con-name eno1 type ethernet ifname eno1
# nmcli con show
# nmcli con show eno1 | grep ipv6
修改链接,设定IP位fddb:fe2a:ab1e::c0a8:1/64,网关为fddb:fe2a:ab1e::c0a8:fe
# nmcli con mod eno1 ipv6.address 'fddb:fe2a:ab1e::c0a8:1/64 fddb:fe2a:ab1e::c0a8:fe'
# nmcli con mod eno1 ipv6.method manual
# nmcli con down eno1
# nmcli con up eno1
也可以一次性配置:
# nmcli con add con-name eno1 type ethernet ifname eno1 ip6 fddb:fe2a:ab1e::c0a8:1/64 \> gw6 fddb:fe2a:ab1e::c0a8:fe
# ip addr show eno1
# ip -6 route show
图形界面配置:
# nm-connection-editor
链路验证:
# ss -A inet -n
# netstat -46n
# tracepath6 2001:db8:0:2::451 类似于ipv4的traceroute
# ping6 fe80::5054:ff:fe00:b%eth0
# ping6 fddb:fe2a:ab1e::c0a8:1
# ping6 fddb:fe2a:ab1e::c0a8:fe