
在生产系统上使用时,你应该将 radvd 安装在一台单独的路由器上,如果只是测试使用,你可以将它安装在你的网络中的任意 Linux PC 上。在我的小型 KVM 测试实验室中,我使用 apt-get install radvd 命令把它安装在 Ubuntu 上。安装完成之后,我先不启动它,因为它还没有配置文件:
$sudo systemctl status radvd
●radvd.service - LSB: Router Advertising Daemon
Loaded: loaded(/etc/init.d/radvdbadvendor preset: enabled)
Active: active(exited)since Mon2017-12-1120:08:25PST4min59sago
Docs: man:systemd-sysv-generator(8)
Dec1120:08:25ubunut1 systemd[1]: Starting LSB: Router Advertising Daemon...
Dec1120:08:25ubunut1 radvd[3541]: Starting radvd:
Dec1120:08:25ubunut1 radvd[3541]: * /etc/radvd.conf does notexist orisempty.
Dec1120:08:25ubunut1 radvd[3541]: * See /usr/share/doc/radvd/README.Debian
Dec1120:08:25ubunut1 radvd[3541]: * radvd will *not* be started.
Dec1120:08:25ubunut1 systemd[1]: Started LSB: Router Advertising Daemon.
这些所有的消息有点让人困惑,实际上 radvd 并没有运行,你可以使用经典命令 ps | grep radvd 来验证这一点。因此,我们现在需要去创建 /etc/radvd.conf 文件。拷贝这个示例,将第一行的网络接口名替换成你自己的接口名字:
interfaceens7{
AdvSendAdvert on
MinRtrAdvInterval3
MaxRtrAdvInterval10
prefix fd7d:844d:3e17:f3ae::/64
{
AdvOnLink on
AdvAutonomous on
}
}
前缀(prefix)定义了你的网络地址,它是地址的前 64 位。前两个字符必须是 fd,前缀接下来的剩余部分你自己定义它,最后的 64 位留空,因为 radvd 将去分配最后的 64 位。前缀后面的 16 位用来定义子网,剩余的地址定义为主机地址。你的子网必须总是 /64。RFC 4193 要求地址必须随机生成;查看 在 KVM 中测试 IPv6 Networking:第 1 部分 学习创建和管理 ULAs 的更多知识。
IPv6 转发
IPv6 转发必须要启用。下面的命令去启用它,重启后生效:
$sudo sysctl -wnet.ipv6.conf.all.forwarding=1
取消注释或者添加如下的行到 /etc/sysctl.conf 文件中,以使它永久生效:
net.ipv6.conf.all.forwarding = 1
启动 radvd 守护程序:
$sudo systemctl stop radvd
$sudo systemctl start radvd
这个示例在我的 Ubuntu 测试系统中遇到了一个怪事;radvd 总是停止,我查看它的状态却没有任何问题,做任何改变之后都需要重新启动 radvd。
启动成功后没有任何输出,并且失败也是如此,因此,需要运行 sudo systemctl status radvd 去查看它的运行状态。如果有错误,systemctl 会告诉你。一般常见的错误都是 /etc/radvd.conf 中的语法错误。
在 Twitter 上抱怨了上述问题之后,我学到了一件很酷的技巧:当你运行 journalctl -xe --no-pager 去调试 systemctl 错误时,你的输出会被换行,然后,你就可以看到错误信息。
现在检查你的主机,查看它们自动分配的新地址:
$ifconfig
ens7 Link encap:Ethernet HWaddr52:54:00:57:71:50
[...]
inet6 addr: fd7d:844d:3e17:f3ae:9808:98d5:bea9:14d9/64Scope:Global
[...]
配置 静态 ip
配置网络需要的文件 ifcfg-eth0文件 路径:eth/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0文件配置解析:
TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.0.1.27
NETMASK=255.255.255.0
GATEWAY=10.0.1.1
BROADCAST=10.10.1.255
HWADDR=00:0C:29:13:5D:74
PEERDNS=yes
DNS1=10.0.1.41
USERCTL=no
NM_CONTROLLED=no
IPV6INIT=yes
IPV6ADDR=FD55:faaf:e1ab:1B0D:10:14:24:106/64
1. 配置参数说明
注:这些参数值不区分大小写,不区分单引号和双引号,甚至可以不用引号。
TYPE:配置文件接口类型。在/etc/sysconfig/network-scripts/目录有多种网络配置文件,有Ethernet 、IPsec等类型,网络接口类型为Ethernet。
DEVICE:网络接口名称
BOOTPROTO:系统启动地址协议
none:不使用启动地址协议
bootp:BOOTP协议
dhcp:DHCP动态地址协议
static:静态地址协议
ONBOOT:系统启动时是否激活
yes:系统启动时激活该网络接口
no:系统启动时不激活该网络接口
IPADDR:IP地址
NETMASK:子网掩码
GATEWAY:网关地址
BROADCAST:广播地址
HWADDR/MACADDR:MAC地址。只需设置其中一个,同时设置时不能相互冲突。
PEERDNS:是否指定DNS。如果使用DHCP协议,默认为yes。
yes:如果DNS设置,修改/etc/resolv.conf中的DNS
no:不修改/etc/resolv.conf中的DNS
DNS{1, 2}:DNS地址。当PEERDNS为yes时会被写入/etc/resolv.conf中。
NM_CONTROLLED:是否由Network
Manager控制该网络接口。修改保存后立即生效,无需重启。被其坑过几次,建议一般设为no。 yes:由Network Manager控制
no:不由Network Manager控制
USERCTL:用户权限控制
yes:非root用户允许控制该网络接口
no:非root用户不运行控制该网络接口
IPV6INIT:是否执行IPv6
yes:支持IPv6
no:不支持IPv6
IPV6ADDR:IPv6地址/前缀长度
2.配置生效
为了使网络配置永久有效,就需要在/etc/sysconfig/network-scripts/下修改网络接口配置文件。但是,这些文件修改后,并不能立即生效。有两种方式使修改文件的网络配置生效:
(1) 执行service network restart命令,重启网络服务(推荐)
(2) 重启计算机
配置 动态 ip(自动分配)
使用chkconfig命令让网络服务在系统启动级别是2345时默认启动。
chkconfig –level 2345 network on
修改ifcfg-eth0文件,设置ONBOOT的值为yes,让网络服务启动时使用该网卡。设置BOOTPROTO的值为dhcp,让网卡从DHCP服务器自动获取IP地址。
修改ifcfg-eth0文件,设置ONBOOT的值为yes,让网络服务启动时使用该网卡。设置BOOTPROTO的值为dhcp,让网卡从DHCP服务器自动获取IP地址。
使用 命令 修改 vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
BOOTPROTO=dhcp
临时 配置 ip
使用命令来执行 ifconfig eth0 192.168.0.1(自己要设置的IP)这个命令是更改主机IP http://www.iis7.com/b/plc/?1-5.html,回车后你什么都看不到,就表示成功了,但是此命令所做的更改在下次重启后就会失效。
ifconfig eth0 network 255.255.255.0(自己设置的子网掩码)该命令是设置主机的子网掩码,所做的设置也是临时的。
设置自动获取IP地址方法:(1)右键“网络链接”选择“属性”打开网络连接管理界面。
(2)在打开的窗户中找到:Internet协议(TCP/IP) 双击打开或者单击选中,单击属性。
(3)选择自动获取IP地址和选择自动获取DNS服务器地址。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)