每天一学
<h1>开启包转发功能和修改内核参数</h1>
内核参数修改:br_netfilter模块用于将桥接流量转发至iptables链,br_netflter内核参数需要开启转发
[root@www etc]# modprobe br_netfilter
命令用于自动处理可载入模块。
[root@www etc]# cat > /etc/sysctl.d/docker.conf << EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables=1
> net.ipv4.ip_forward = 1
> EOF
使配置参数生效:
[root@www sysctl.d]# sysctl -p docker.conf {绝对路径}
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
加载模块后可以使用lsmod查看系统内核是否有加载此模块;
[root@www sysctl.d]# lsmod |grep br_net br_netfilter 24576 0 bridge 192512 1 br_netfilter
当写入sysctl.d下重启后就会不做生效如果想--让其永久生效----要在/etc/下创建rc.sysinit文件
rc.sysinit文件是每次重启后会执行
[root@www sysctl.d]# vi /etc/rc.sysinit #!/bin/bash for i in /etc/sysconfig/modules/*.modules ; do [ -x $i ] && $i done
创建对应modules文件下以.modules结尾的shell运行文件并且赋予执行(x)权限
[root@www modules]# cat br_netfilter.modules #!/bin/bash modprobe br_netfilter [root@www modules]# chmod +x br_netfilter.modules -rwxr-xr-x 1 root root 34 Aug 12 20:52 br_netfilter.modules
如果不配置安装后出现报错
WARING:bridge-nf-call-iptables is disabled
将Linux系统作为路由或者VPN服务就必须要开启IP转发功能。当linux主机有多个网卡时一个网卡收到的信息是否能够传递给其他的网卡 ,如果设置成1 的话 可以进行数据包转发,可以实现VxLAN 等功能。不开启会导致docker部署应用无法访问。
最后重新启动docker
[root@www ~]# systemctl restart docker