IPV6的配置

一、IPv6入门

  1. IPv6地址格式

    A. IPv6地址为128位,首选IPv6标识标识法为x:x:x:x:x:x:x:x,其中每个x是8个16位的十六进制值;

    B. IPv6短格式表示法:

      省略前导零:例如,IPv6 地址 1050:0000:0000:0000:0005:0600:300c:326b 可写作 1050:0:0:0:5:600:300c:326b;     

      双冒号:双冒号是替代一系列零,且双冒号只能使用一次,例如,IPv6地址 ff06:0:0:0:0:0:0:c3 可写作ff06::c3。   

 

二、Linux支持IPv6

   1. 网卡配置IPv6

     vi /etc/sysconfig/network-scripts/ifcfg-ens160,并执行systemctl restart network

IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6ADDR=2001::2/64
IPV6_DEFAULTGW=2001::1

  2. 设置linux内核参数

    vi /etc/sysctl.conf,并执行sysctl -p

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

  3. 网络配置

    vi /etc/sysconfig/network

NETWORKING_IPV6=yes

  4. 检测

    A. 检查网络是否连通:ping -6 2001::2;

    B. 检查端口是否开放:telnet -6 2001::2 443;

    C. 查看端口状态:netstat -ntlp6;

    D. 查看IPV6的路由:route -A inet6;

    E. 相关工具:wget,curl,traceroute等。

curl -k -X "POST" "https://127.0.0.1:3018/api/face/Heartbeat" -H 'Content-Type: application/json' -d '{  "Function": "DS_Heartbeat",  "LoginIdCard": "41140819930941",  "DeviceSn": "1234567890"}' ;

 

三、Docker支持IPv6

   1. docker

    vi /etcdocker/daemon.json,并执行systemctl restart docker

{

   "ipv6": true,
   "fixed-cidr-v6": "2001:db8:1::/64"
}
sysctls:
      - net.ipv6.conf.all.disable_ipv6=0
  docker network create --ipv6 --subnet "2001:db8:1:1::/64" --gateway="2001:db8:1:1::1" -d overlay mp;
  2. nginx同时支持IPV4和IPV6  

    listen 4433; //支持IPV4
    listen [::]:4433; //支持IPV6

  3. ip6tables 防火墙规则

ip6tables -I INPUT -p tcp -m tcp --dport 4433 -j ACCEPT
ip6tables -I INPUT -p udp -m udp --dport 4433 -j ACCEPT

   4. 访问:curl -gv -6 http://[2001:db8:1::6]:4433/gateway/manage/info

 

四、问题

   第一张图是正常的回包过程,第二张图IPV6不回包,需要加放行规则ip6tables -t filter -A INPUT -p ipv6-icmp --icmpv6-type 135 -j ACCEPT;ip6tables -t filter -A INPUT -p ipv6-icmp --icmpv6-type 136 -j ACCEPT。

 

可参考:IPv6基本信息

    Docker容器支持IPV6

 

posted @ 2022-03-17 17:41  如幻行云  阅读(603)  评论(0编辑  收藏  举报