linux服务器开启IPv6-新人一个-51CTO博客,
在国家网信办推行IPv6的大前提下,进行IPv6改造工作,需要对服务器进行配置IPv6地址。
配置过程大致写一下哈:
#cat?ipv6.sh#!?/bin/bash
Ipv6=$1
Ipv4=$(dig?+short?$(hostname))?#用于获取对应的网卡,根据需求更改
Time=$(date??+%Y%m%d%H%M%S)
[[?$Ipv6?]]?||?echo?"ipv6?get?fail!,Usage:?sh??ipv6.sh?X:X:X::ipv6地址"
[[?$Ipv4?]]?||?echo?"ipv4?get?fail!"
echo?"变更模块包括:grub配置?sysctl配置?IP配置"
Grub(){
????#grub修改
????cp?/etc/default/grub?/etc/default/grub.$Time
????cp?/boot/grub2/grub.cfg?/boot/grub2/grub.cfg.$Time
????sed?-i?'s#ipv6.disable=1#ipv6.disable=0#'??/etc/default/grub??||?grep?'ipv6.disable'?/etc/default/grub
????grub2-mkconfig?-o?/boot/grub2/grub.cfg?&>/dev/null
????grep?'ipv6.disable=0'?/boot/grub2/grub.cfg?&>/dev/null?&&?\
????echo?"###grub?ok?###"?||?echo?-e?"\033[31m"grub?fail?!!!!!!!!!!!"\033[0m"?
????}????
Systcl(){
????#配置sysctl.conf
????cp?/etc/sysctl.conf?/etc/sysctl.conf.$Time
????sed?-i?'/net.ipv6.conf.all.disable_ipv6/d'?/etc/sysctl.conf
????sed?-i?'/net.ipv6.conf.default.disable_ipv6/d'?/etc/sysctl.conf
????sysctl?-p?&>/dev/null
????
????grep?ipv6?/etc/sysctl.conf?&>/dev/null?&&\
????echo?-e?"\033[31m?sysctl?fail?!!!!!!!!!!!?\033[0m"??||?echo?"###sysctl?ok?###"
????}
Ip(){
????#IP?配置:
????cp?/etc/sysconfig/network?/etc/sysconfig/network.$Time
????grep?"NETWORKING=yes"?/etc/sysconfig/network?&>/dev/null?||?echo?"NETWORKING=yes"?>>?/etc/sysconfig/network
????grep?"NETWORKING_IPV6=yes"?/etc/sysconfig/network?&>/dev/null?||?echo?"NETWORKING_IPV6=yes"?>>?/etc/sysconfig/network
????FileName=$(grep?$Ipv4?/etc/sysconfig/network-scripts/*?|?awk?-F':'?'{print?$1}')
????[[?$FileName?]]?||?cp?$FileName?$FileName.$Time
????[[?$FileName?]]?||?echo?-e?"\033[31m?get?network?file?fail?!!!!!!!!!!!?\033[0m"?
????
????grep?"IPV6INIT=yes"??$FileName?&>/dev/null?||?echo?"IPV6INIT=yes"?>>?$FileName
????grep?"IPV6_AUTOCONF=no"??$FileName?&>/dev/null?||?echo?"IPV6_AUTOCONF=no"?>>?$FileName
????grep?"IPV6ADDR="??$FileName?&>/dev/null?||?[[?$FileName?]]?&&?[[?$Ipv6?]]?&&?\
????echo?"IPV6ADDR=$Ipv6"?>>?$FileName
????
????grep?'IPV6'?$FileName?&>/dev/null?&&?\
????echo?"###IPconfig?ok?###"?||?echo?-e?"\033[31m?IPconfig?fail?!!!!!!!!!!!?\033[0m"?
????}
Reboot(){
????重启
????sync?&&?sync
????echo?"10s?after?reoot"
????sleep?10
????reboot
????}
Check(){
????echo?
????echo?
????echo?
????echo?"=====================IPv6变更有:==================="
????echo?"=============File?:?/boot/grub2/grub.cfg"
????grep?'ipv6.disable=0'?/boot/grub2/grub.cfg
????echo?
????echo?"=============File?:?/etc/sysctl.conf?"
????grep?"ipv6"?/etc/sysctl.conf?
????echo?
????echo?"=============File?:?/etc/sysconfig/network"
????grep?"NETWORKING_IPV6=yes"?/etc/sysconfig/network
????echo?
????echo?"=============File?:?$FileName"
????grep?'IPV6'?$FileName
????echo?
????}
Grub
Systcl
Ip
Check
#Reboot
具体的配置过程解析参见:
一:grub修改:?
方法一:?
#/boot/grub2/grub.cfg
linux16?行添加:ipv6.disable=0(0:开启IPV6,1:关闭IPV6)?
?
方法二:?
1.编辑/ etc / default / grub并将内核参数ipv6.disable的值从GRUB_CMDLINE_LINUX行中的1更改为0,例如:?
# cat /etc/default/grub
GRUB_CMDLINE_LINUX="ipv6.disable=0 crashkernel=auto rhgb quiet"
注意:ipv6.disable = 0是默认值,因此您可以根据需要从GRUB_CMDLINE_LINUX参数列表中删除此参数ipv6.disable。?
2.使用下面显示的命令重新生成GRUB配置文件并覆盖现有配置文件。?
#grub2-mkconfig -o /boot/grub2/grub.cfg
?
二:配置sysctl.conf
1.为了让ipv6在线运行,请确保/etc/sysctl.conf中的以下行被注释掉或删除。?
#cat?/etc/sysctl.conf?|?grep?ipv6
#net.ipv6.conf.all.disable_ipv6?=?1?###注释/删除此行或将其值从1更改为0
#net.ipv6.conf.default.disable_ipv6?=?1?###注释/删除此行或将其值从1更改为0
2.使用命令'sysctl -p'重新读取配置文件/etc/sysctl.conf。?#sysctl?-p
?
?
三:重启服务器,加载gurb配置:?
验证配置是否生效;?ip?add
? #查看是否有ipv6配置;?
?
centos 6
1.查看服务器是否加载ipv6模块???lsmod?|?grep?ipv6
??如没有任何回显,则说明没有加载?
??加载ipv6模块?modprobe?ipv6
??再次运行lsmod?|?grep?ipv6
,如出现回显,则说明ipv6已经正常加载?
?
2.修改配置文件启用ipv6?
cat?/etc/modprobe.d/ipv6.conf
修改options?ipv6?disable=0
?
?
?
3.开启内核参数支持ipv6?
??执行上述步骤之后,运行如下命令使内核开启ipv6???sysctl?-w?net.ipv6.conf.all.disable_ipv6=0
?
??再次运行sysctl?-a?|?grep?ipv6?|?grep?disable
??若参数全部为0,则说明ipv6已经全部支持?
?
4.在网卡上配置ipv6地址?
??以上配置都完成之后,网卡就可以支持ipv6地址了,启用一个试试吧?
?
?
四?IP配置:?
#/etc/sysconfig/network #添加以下两条内容,网关也可以配置在此处;?
NETWORKING=yes
NETWORKING_IPV6=yes
sed?-i?'/^NETWORKING_IPV6=/d'?/etc/sysconfig/network
echo?"NETWORKING_IPV6=yes"?>>?/etc/sysconfig/network
#ifcfg-eth0
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6ADDR=xxx::xxx
IPV6_DEFAULTGW=fe80::1%eth0(eth0为实际网卡名)
关于配置IPv6后续的问题 欢迎阅读另一篇博文:网络双栈情况下优先级问题
因为配置后可能有一些风险需要知悉。
http://www.dengb.com/ynwt/1389098.htmlwww.dengb.comtruehttp://www.dengb.com/ynwt/1389098.htmlTechArticlelinux服务器开启IPv6-新人一个-51CTO博客, 在国家网信办推行IPv6的大前提下,进行IPv6改造工作,需要对服务器进行配置IPv6地址。 配置过程大...