1.k8s自动化运维十三-国产麒麟操作系统安装minikube
2.nameserver是内核s内什么意思?
3.Linux下针对路由功能配置iptables的方法详解
4.Linuxç³»ç»çç¹ç¹ï¼
5.No rule to make target 'modules'.Stop.
6.学习笔记:搭建 Linux 内核网络调试环境(vscode + gdb + qemu)
k8s自动化运维十三-国产麒麟操作系统安装minikube
为了实现Kubernetes自动化运维,需要在国产麒麟操作系统中安装minikube,源码以下步骤将指导完成这一任务。核源
首先,码调码分需确认系统版本及内核版本,度源确保满足安装条件。内核s内库存管理asp源码查看系统架构确认为华为鲲鹏服务器架构aarch。源码
接着,核源需要修改hosts文件,码调码分以确保DNS解析正确。度源同时,内核s内配置k8s镜像源,源码保证后续操作的核源顺利进行。
为了离线安装Docker,码调码分需先下载Docker安装包并进行安装,度源确保Docker服务在非root权限下运行。
编辑Docker的系统服务文件,设置为非root用户启动Docker服务。弹球游戏源码Python
重启Docker服务,然后通过root用户关闭Docker服务,使用非root用户启动服务,确保minikube与Docker服务协同工作。
安装minikube时,注意避免使用root权限,以确保minikube的正常运行。
了解minikube 1..0版本对应的镜像版本,可以通过查看源码得知版本号。
根据版本号,可以通过脚本下载对应的镜像文件,确保minikube运行所需的镜像正确。
修改配置文件/etc/docker/daemon.json,删除与systemd不兼容的exec-opts配置,然后重启Docker服务确保配置生效。
最后,通过执行命令查看Docker镜像版本号,源码中国网址以及minikube的启动状态,确认整个安装过程的正确性和稳定性。
nameserver是什么意思?
nameserver表示的是域名,既是对外部服务器解释的Ip。所以当你被提示DNS相关问题时,多半是nameserver解析出错,在linux操作系统下,以ubuntu系统为例,修改配置文件: /etc/resolv.conf ,既能实现对域名的设置。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持位和位硬件。Linux继承了Unix以网络为核心的类似微光的源码设计思想,是一个性能稳定的多用户网络操作系统。
扩展资料:
Linux优点:
1、Linux由众多微内核组成,其源代码完全开源;
2、Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、 TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发成出新的协议栈;
3、Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;
百度百科-linux
Linux下针对路由功能配置iptables的方法详解
作为公司上网的路由器需要实现的功能有nat地址转换、dhcp、dns缓存、ads1298源码流量控制、应用程序控制,nat地址转换通过iptables可以直 接实现,dhcp服务需要安装dhcpd,dns缓存功能需要使用bind,流量控制可以使用tc,应用程序控制:例如对qq的封锁可以使用 netfilter-layer7-v2.+-protocols---.tar.gz来实现
1、网络规划
操作系统是centos5.8
2、安装dhcpd
代码如下:
yum install dhcp-3.0.5-.el5
vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet .0.0.0 netmask ...0 {
option routers .0.0.1;
option subnet-mask ...0;
option domain-name-servers .0.0.1;
range dynamic-bootp .0.0. .0.0.;
default-lease-time ;
max-lease-time ;
}
3、安装bind,实现dns缓存
代码如下:
yum install bind.i bind-libs.i bind-utils.i
vim /etc/named.conf
options {
directory "/var/named";
allow-recursion { .0.0.0/; };
recursion yes;
forward first; #将所有请求都进行转发
forwarders { ...; }; #定义转发服务器地址
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-transfer { none; };
};
zone "0.0..in-addr.arpa" IN {
type master;
file "named.loopback";
allow-transfer { none; };
};
创建根域文件,默认有
代码如下:
dig -t NS . /var/named/named.ca
chown :named /var/named/named.ca
创建本地正向解析文件,默认有
代码如下:
vim /var/named/named.localhost
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A .0.0.1
chown :named /var/named/named.localhost
创建本地反向解析文件,默认有
代码如下:
vim /var/named/named.loopback
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A .0.0.1
PTR localhost.
chown :named /var/named/named.loopback
检查主配置文件
代码如下:
named-checkconf
检查根区域配置文件
代码如下:
named-checkzone “.” /var/named/named.ca
检查区域文件
代码如下:
named-checkzone “localhost” /var/named/named.localhost
启动服务
代码如下:
service named start
4、重新编译编译内核和iptables以支持应用层过滤
由于实行防火墙功能的是netfilter内核模块,所以需要重新编译内核,需要下载新的内核源码,并使用netfilter-layer7-v2.作为内核的补丁一起编译到内核中。而控制netfiler的是iptables工具,因此iptables也必须重新编译安装,最后再安装应用程序过滤特征码库-protocols--.tar.gz
1、给内核打补丁,并重新编译内核
2、给iptables源码打补丁,并重新编译iptables
3、安装proto
备份iptables脚本和配置文件
代码如下:
cp /etc/rc.d/init.d/iptables /root/iptables.sysv
cp /etc/sysconfig/iptables-config /root/iptables-config
2.6内核下载地址
/l7-filter/
iptables源码下载地址
/l7-filter/
代码如下:
xz -d linux-2.6...tar.xz
tar -xvf linux-2.6...tar.gz -C /usr/src #新的内核源码,用于重新编译
tar -zxvf netfilter-layer7-v2..tar.gz -C /usr/src #内核补丁和iptables补丁 ,只支持到2.6.
#进入解压目录并创建软连接
pcd /usr/src
ln -sv linux-2.6.. linux
#进入内核目录
pcd /usr/src/linux
#为当前内核打补丁
ppatch -p1 ../netfilter-layer7-v2./kernel-2.6.-2.6.-layer7-2..path
#为了方便编译内核将系统上的内核配置文件复制过来
pcp /boot/config-2.6.-.el5 /usr/src/linux/.config
编译内核
代码如下:
make menuconfig
Networking support - Networking Options - Network packet filtering framework - Core Netfilter Configuration
Netfilter connection tracking support
"lawyer7" match support
"string" match support
"time" match support
"iprange" match support
"connlimit" match support
"state" match support
"conntrack" connection match support
"mac" address match support
"multiport" Multiple port match support
Networking support - Networign options - Network packet filtering framework - IP:Netfiltr Configuration
IPv4 connection tracking support (required for NAT)
Full NAT
MASQUERADE target support
NETMAP target support
REDIRECT target support
在Networking support中选择 Networking options
查找Network packet filtering framework(Netfilter)–Core Netfiler Configrationg–Netfilter connection tracking support(NEW),”layer7″ match support(NEW),”time” match support(NEW),”iprange”
查找IP:Netfilter Configuration–IPv4 connection tracking support,Full NAT(NEW)
代码如下:
make
make modules_install
make install
重启操作系统选择新内核登录
卸载旧的iptables
代码如下:
rpm -e iptables-1.3.5-9.1.el5 iptables-ipv6-1.3.5-9.1.el5 iptstate-1.4-2.el5 --nodeps
安装新的iptables,以支持新的netfiler模块
代码如下:
tar -jsvf iptables-1.4.6.tar.bz2 -C /usr/src
cd /usr/src/netfilter-layer7-v2.
cd iptables-1.4.3forward-for-kernel-2.6.forward
cp * /usr/src/iptables-1.4.6/extensions/
cd /usr/src/iptables-1.4.6/
./configure --prefix=/usr --with-ksource=/usr/src/linux
make
make install
查看安装后的iptables的文件
代码如下:
ls /usr/sbin |grep iptables
ls /usr/libexec/xtables
复制之前备份的配置文件和脚本
代码如下:
cp /root/iptables-config /etc/sysconfig/
cp /root/iptables.sysv /etc/rc.d/init.d/iptables
修改脚本中iptables的路径
代码如下:
vim /etc/rc.d/init.d/iptables
:.,$s@/sbin/$IPTABLES@/usr/sbin/$IPTABLES@g
让iptables服务开机自动启动
代码如下:
chkconfig --add iptables
修改iptables 配置文件
将/etc/sysconfig/iptables-config中的
IPTABLES_MODULES=”ip_conntrack_netbios_ns” 注释掉
安装协议特征码
代码如下:
tar xvf -protocols--.tar.gz
make install
完成后在/etc/l7-protocols会生成文件
支持的协议/etc/l7-protocols/protocols
添加iptables策略,运行内部网络上网,禁止qq和视频
代码如下:
iptables -t nat -A POSTROUTING -s .0.0.0/ -j SNAT --to-soure ..6.
iptables -A FORWARD -m layer7 --l7proto qq -j DROP
iptables -A FORWARD -m layer7 --l7proto å¯ä¸å¯åï¼æ¯æåç§æ åçInternetç½ç»åè®®ï¼å¹¶ä¸å¾å®¹æ移æ¤å°åµå ¥å¼ç³»ç»å½ä¸ãç®åï¼Linuxå ä¹æ¯æææ主æµçç½ç»ç¡¬ä»¶ãç½ç»åè®®åæ件系ç»ï¼å æ¤å®æ¯NFSçä¸ä¸ªå¾å¥½çå¹³å°ã
ããå¦ä¸æ¹é¢ï¼ç±äºLinuxæå¾å¥½çæ件系ç»æ¯æï¼ä¾å¦ï¼å®æ¯æExt2ãFATãromfsçæ件系ç»ï¼ï¼æ¯æ°æ®å份ãåæ¥åå¤å¶çè¯å¥½å¹³å°ï¼è¿äºé½ä¸ºå¼ååµå ¥å¼ç³»ç»åºç¨æä¸äºåå®çåºç¡ã
ãã7ï¼ä¸UNIXå®å ¨å ¼å®¹
ããç®åï¼å¨Linuxä¸æå å«çå·¥å ·åå®ç¨ç¨åºï¼å¯ä»¥å®æUNIXçææ主è¦åè½ã
ããä½ç±äºLinuxä¸æ¯ä¸ºå®æ¶è设计çï¼å èè¿å°±æäºLinuxå¨å®æ¶ç³»ç»ä¸åºç¨çæ大éæ¾ãä¸è¿ï¼ç®åæä¼å¤çèªç±è½¯ä»¶ç±å¥½è æ£å¨ä¸ºæ¤è¿è¡ä¸æçåªåï¼ä¹åå¾äºè¯¸å¤ææã
No rule to make target 'modules'.Stop.
No rule to make target 'modules'.Stop
***没æè§åï¼ä½¿ç®æ '模å' ã Stop. åæ¢ã
é»è®¤çå æ ¸æ¯ä¸æ¯æçï¼ä»ç½ä¸ä¸è½½äºé©±å¨åï¼ç¼è¯é©±å¨æ¶ä¼åºéï¼ä½ çç½å¡æ没æ说æ书åï¼æç §è¯´æ书éç¼è¯äºä¸ä¸ªå æ ¸è¡¥ä¸
ç¶ååéæ°ç¼è¯å æ ¸ï¼å¨make menuconfigéå¯ä»¥éï¼éä¸åéæ°ç¼è¯ï¼ç¶åREBOOTå°±OKå¦
以ä¸ç¼è¯ä½ å¯ä»¥åèä¸
1.æ¥çç³»ç»å¯å¨çæ¶åæ¯å¦å è½½äºç½å¡
dmesg | grep eth0 ï¼å 为æåªæä¸åç½å¡ï¼
å¦ææ¾ç¤ºæä¸è¥¿ï¼é£ä½ å°±ä¸ç¨çäºï¼å ä¸ºä½ çç½å¡å·²ç»è®°è½½äºãå°±æ¯ä½ è¿æ²¡æé ç½®è¿IP以åDNS çåå ã
2 ãç½å¡ç¼è¯çæ¶åéè¦å æ ¸æºä»£ç ï¼è¿æ对åºçGCC ç¼è¯å¨
æ以å¦æ没æå®è£ çè¯å»config æè system-config-network-tui æ¥é ç½®å ·ä½çIPä¿¡æ¯
[root@localhost r-6..]# ifconfig -a
eth0 Link encap ï¼Ethernet HWaddr ï¼E0ï¼4Cï¼ï¼ï¼FF
inet addr ï¼..0. Bcast ï¼..0. Maskï¼...0
UP BROADCAST MULTICAST MTUï¼ Metric ï¼1
RX packetsï¼0 errorsï¼0 dropped ï¼0 overrunsï¼0 frame ï¼0
TX packetsï¼0 errorsï¼0 dropped ï¼0 overrunsï¼0 carrier ï¼0
collisionsï¼0 txqueuelenï¼
RX bytesï¼0 ï¼0.0 b ï¼ TX bytes ï¼0 ï¼0.0 b ï¼
Interrupt ï¼ Base addressï¼0xe
lo Link encap ï¼Local Loopback
inet addr ï¼.0.0.1 Maskï¼.0.0.0
inet6 addrï¼ï¼ï¼1/ Scope ï¼Host
UP LOOPBACK RUNNING MTU ï¼ Metricï¼1
RX packetsï¼ errors ï¼0 dropped ï¼0 overrunsï¼0 frame ï¼0
TX packetsï¼ errors ï¼0 dropped ï¼0 overrunsï¼0 carrier ï¼0
collisionsï¼0 txqueuelenï¼0
RX bytesï¼ ï¼2.6 MiB ï¼ TX bytes ï¼ ï¼2.6 MiB ï¼
sit0 Link encap ï¼IPv6-in-IPv4
NOARP MTU ï¼ Metric ï¼1
RX packetsï¼0 errorsï¼0 dropped ï¼0 overrunsï¼0 frame ï¼0
TX packetsï¼0 errorsï¼0 dropped ï¼0 overrunsï¼0 carrier ï¼0
collisionsï¼0 txqueuelenï¼0
RX bytesï¼0 ï¼0.0 b ï¼ TX bytes ï¼0 ï¼0.0 b ï¼
5 ã让ç½å¡éç³»ç»èªå¨å è½½
[root@localhost src]# vi /etc/modprobe.conf
alias scsi_hostadapter ahci
alias snd-card-0 snd-hda-intel
options snd-card-0 index=0
options snd-hda-intel index=0
remove snd-hda-intel { /usr/sbin/alsactl store 0 >/dev/null 2>&1 ||ï¼ï¼ }ï¼ /sbin/modprobe -rââignore-remove snd-hda-intel
alias eth0 r
å ä¸è¿ä¸å¥ç¶årebootå°±å¯ä»¥äºã
学习笔记:搭建 Linux 内核网络调试环境(vscode + gdb + qemu)
本文主要介绍了如何搭建Linux内核网络调试环境,主要步骤包括: 首先,使用VM(虚拟机)和Ubuntu .,配置dhcp方式的网络,绑定主机网卡,确保获得有效IP地址和DNS配置。 接着,安装和配置内核源码、gdb,进行内核的编译,并测试gdb是否能正确调试内核。 然后,使用qemu模拟器进行测试,特别提到一个关键问题:qemu的bzImage与gdb的vmlinux如何匹配。实际调试中,你需要确保gdb服务器与qemu的vmlinux关联正确。 对于非图形化的gdb,可以借助VSCode进行更便捷的调试。配置步骤包括设置远程连接Ubuntu、内核源码查阅和开启调试功能。 在VSCode中,创建Linux配置,安装相关插件后,可通过“运行”->“添加配置”启动调试。 在调试过程中,qemu需启用调试模式,通过输入's',VSCode可以捕获断点并进行深入调试。 为了实现外网通信,需要在VM中设置网桥,将qemu接口连接到网络。 测试阶段,可以将监听地址从.0.0.1调整为VM所在网段的地址,便于telnet测试。什么是DPDK?DPDK的原理及学习学习路线总结
DPDK,全称为Data Plane Development Kit,是一个旨在提升数据包处理性能的软件库。对于不同角色的用户,它有着多样的应用场景。在多核处理器上,DPDK通过User Space下的应用程序,利用自有的数据面库,避开Linux内核的协议栈,直接处理数据包,从而显著提高数据传输效率。
DPDK的核心原理在于,它针对公有云和NFV等场景,针对通用服务器(COTS)的CPU核心,优化了网络数据包的收发流程。传统网络设备通常采用NP处理器,通过硬件电路高效处理,而DPDK则为CPU密集型系统提供了一种新的解决方案,避免了内核态与用户态切换以及内存拷贝导致的性能瓶颈。
DPDK源码主要包含库、驱动程序、应用程序、配置文件和工具等,涵盖了从基础库到高级功能的方方面面。学习DPDK,可以从理解其PCI原理、测试工具如testpmd和l3fwd,以及实现DNS、高性能网关和半虚拟化加速等实战项目开始。
总的来说,DPDK的学习路线包括理解其基础架构,深入PCI和驱动原理,实践典型应用,以及结合现代技术的优化。获取更详细的资料和教程,可以参考相关链接中的资源。