Linux 主机配置ipv6地址

Kubernetes容器网络配置:ifconfig与IPv6地址管理
文章讲述了在Kubernetes环境中使用ifconfig命令管理和修改容器网络接口(ens160),包括添加和删除IPv6地址,以及处理`SIOCSIFADDR:文件已存在`错误的过程。

ifconfig

# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:02:db:ce:da  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.200.108.171  netmask 255.255.255.0  broadcast 10.200.108.255
        inet6 fe80::250:56ff:febd:1953  prefixlen 64  scopeid 0x20<link>
        inet6 2409:806a:5af0:2000::f8ab  prefixlen 64  scopeid 0x0<global>
        ether 00:50:56:bd:19:53  txqueuelen 1000  (Ethernet)
        RX packets 1458  bytes 137838 (134.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 999  bytes 124779 (121.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


[root@vga2prdfootk8snew71 ~]# 

我们看到ens160网卡上已经有ipv6dizhi ,

这时直接添加,会报文件已存在

# ifconfig ens160 inet6 add  2409:806a:5af0:2000::f8ab/118
SIOCSIFADDR: 文件已存在

需要先删除

ifconfig ens160 del 2409:806a:5af0:2000::f8ab/64

# ifconfig ens160 del 2409:806a:5af0:2000::f8ab/64
[root@vga2prdfootk8snew71 ~]# 
[root@vga2prdfootk8snew71 ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:02:db:ce:da  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.200.108.171  netmask 255.255.255.0  broadcast 10.200.108.255
        inet6 fe80::250:56ff:febd:1953  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:bd:19:53  txqueuelen 1000  (Ethernet)
        RX packets 1585  bytes 149480 (145.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1077  bytes 135639 (132.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

再添加

ifconfig ens160 inet6 add 2409:806a:5af0:2000::f8ab/118

# ifconfig ens160 inet6 add 2409:806a:5af0:2000::f8ab/118
[root@vga2prdfootk8snew71 ~]# 
[root@vga2prdfootk8snew71 ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:02:db:ce:da  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.200.108.171  netmask 255.255.255.0  broadcast 10.200.108.255
        inet6 fe80::250:56ff:febd:1953  prefixlen 64  scopeid 0x20<link>
        inet6 2409:806a:5af0:2000::f8ab  prefixlen 118  scopeid 0x0<global>
        ether 00:50:56:bd:19:53  txqueuelen 1000  (Ethernet)
        RX packets 1734  bytes 163672 (159.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1146  bytes 146065 (142.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Linux系统中配置IPv6地址可以通过多种方式进行,包括使用命令行工具、修改配置文件等方法。以下是一些常见的方法: ### 使用`ip`命令配置IPv6地址 可以使用`ip`命令来临时设置IPv6地址,适用于测试或调试目的。例如: ```bash sudo ip addr add 2001:db8::1/64 dev eth0 sudo ip link set eth0 up ``` 上述命令将为网络接口`eth0`添加一个IPv6地址`2001:db8::1/64`并启用该接口。 ### 使用`ifconfig`命令配置IPv6地址 虽然`ifconfig`已经被`ip`命令取代,但在某些旧版本的Linux系统中仍然可用。例如: ```bash sudo ifconfig eth0 inet6 add 2001:db8::1/64 sudo ifconfig eth0 up ``` ### 配置静态IPv6地址 为了持久化配置IPv6地址,需要编辑网络配置文件。具体步骤可能因发行版而异,但通常涉及编辑`/etc/network/interfaces`(Debian/Ubuntu)或`/etc/sysconfig/network-scripts/ifcfg-<interface>`(Red Hat/CentOS)文件。 #### Debian/Ubuntu系统 对于Debian或Ubuntu系统,可以在`/etc/network/interfaces`文件中添加以下内容: ```bash auto eth0 iface eth0 inet6 static address 2001:db8::1 netmask 64 gateway 2001:db8::ff ``` #### Red Hat/CentOS系统 对于Red Hat或CentOS系统,可以在`/etc/sysconfig/network-scripts/ifcfg-eth0`文件中添加以下内容: ```bash IPV6INIT=yes IPV6ADDR=2001:db8::1/64 IPV6_DEFAULTGW=2001:db8::ff ``` ### 启用IPv6支持 确保系统的IPv6功能没有被禁用。检查`/etc/sysctl.conf`文件中的设置,并确保以下行存在且未被注释: ```bash net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0 ``` 应用更改后,重启网络服务以使配置生效: ```bash sudo systemctl restart networking # 或者对于Red Hat/CentOS系统 sudo systemctl restart network ``` 通过以上方法之一,可以根据需求在Linux系统中配置IPv6地址[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值