蝴蝶谷娱乐

你的位置:蝴蝶谷娱乐 > 原神 足交 >
李月 反差 搭建 PXE 做事器(基于 Ubuntu 22.04,辅助 IPv4/6 及 Legacy/UEFI)
发布日期:2024-12-18 14:01    点击次数:189

李月 反差 搭建 PXE 做事器(基于 Ubuntu 22.04,辅助 IPv4/6 及 Legacy/UEFI)

基于 Ubuntu 22.04 搭建 PXE 做事器李月 反差,辅助 IPv4, IPv6 收集,辅助 Legacy, UEFI 启动形式。

著作目次 一、PXE 启动历程二、设立清单三、设立规范3.1 搭建 HTTP 做事器3.2 搭建 TFTP 做事器3.2.1 设立 Legacy PXE 启动项3.2.2 设立 UEFI PXE 启动项 3.3 搭建 DHCP 做事器3.3.1 设立静态 IP3.3.2 设立 dhcpd3.3.3 (IPv6)设立 dhcpd6 3.4 (IPv6)搭建 RA 做事器 一、PXE 启动历程

PXE 启动约莫历程如下:

h游戏在线玩 PXE Client(客户端)通过 DHCP 苦求获取 IP,DHCP 做事器在反映苦求时同期提供收集启动指引规范(Boot File)的地址(使用 TFTP 契约)。PXE Client 得到 IP 后,造访 Boot File 地址获取并加载指引规范(Legacy 和 UEFI 的折柳在于指引规范不同)偏捏设立文献。指引规范左证设立文献通过 HTTP/FTP/NFS 契约获取完竣的系统镜像进行启动。 二、设立清单

必要条款:

闲居的 Internet 收集Ubuntu 22.04 操作系统Ubuntu 22.04 系统 ISO 镜像文献

中枢软件:

DHCP 做事器: isc-dhcp-serverTFTP 做事器: tftp-hpaHTTP 做事器: apache2RA 做事器: radvd(IPv6)

收集地址:

IPv4: 192.168.9.1/24

IPv6: (先获取一个 ULA 前缀(点我) )

前缀:fdb0:d7fa:87bd::/64

选拔一个 IP 当作设立使用:fdb0:d7fa:87bd::1/64

三、设立规范

提议在设立前关闭防火墙。

sudo ufw disable
3.1 搭建 HTTP 做事器

装配 apache2。

sudo apt install apache2

拷贝镜像。

sudo cp <你的镜像文献地点旅途>/ubuntu-22.04.2-desktop-amd64.iso /var/www/html/

挂载镜像(解压也行)。

sudo mkdir /var/www/html/Ubuntu_22.04_Desktop/
sudo mount /var/www/html/ubuntu-22.04.2-desktop-amd64.iso /var/www/html/Ubuntu_22.04_Desktop/
3.2 搭建 TFTP 做事器

装配 tftp-hpa。

sudo apt install tftpd-hpa
3.2.1 设立 Legacy PXE 启动项

装配 syslinux, pxelinux 并拷贝需要的文献。

# 确立 Legacy 目次
sudo mkdir /srv/tftp/Legacy

# 装配 syslinux pxelinux
sudo apt install syslinux pxelinux

# 拷贝文献
sudo cp /var/www/html/Ubuntu_22.04_Desktop/casper/{vmlinuz,initrd} /srv/tftp/Legacy/

sudo cp /usr/lib/syslinux/modules/bios/{ldlinux.c32,libutil.c32,menu.c32,vesamenu.c32} /srv/tftp/Legacy/

sudo cp /usr/lib/PXELINUX/{lpxelinux.0,pxelinux.0} /srv/tftp/Legacy/

创建 pxelinux 的设立文献。

cd /srv/tftp/Legacy

sudo mkdir pxelinux.cfg

vim pxelinux.cfg/default

裁剪设立文献:

DEFAULT menu.c32
MENU TITLE ULTIMATE PXE SERVER - By Griffon - Ver 1.0
PROMPT 0
TIMEOUT 0

MENU COLOR TABMSG  37;40  #ffffffff #00000000
MENU COLOR TITLE   37;40  #ffffffff #00000000
MENU COLOR SEL      7     #ffffffff #00000000
MENU COLOR UNSEL    37;40 #ffffffff #00000000
MENU COLOR BORDER   37;40 #ffffffff #00000000

LABEL Ubuntu Desktop 22.04 ISO IPv4
    kernel /vmlinuz
    initrd /initrd
    append root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://192.168.9.1/ubuntu-22.04.2-desktop-amd64.iso

LABEL Ubuntu Desktop 22.04 ISO IPv6
    kernel /vmlinuz
    initrd /initrd
    append root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://[fdb0:d7fa:87bd::1]/ubuntu-22.04.2-desktop-amd64.iso

图片

3.2.2 设立 UEFI PXE 启动项

下载并拷贝需要的文献。

# 确立 UEFI 目次
mkdir /srv/tftp/UEFI

# 拷贝文献
sudo cp /var/www/html/Ubuntu_22.04_Desktop/casper/{vmlinuz,initrd} /srv/tftp/UEFI/

# 下载并拷贝必要的文献
cd ~

# shim-signed
apt download shim-signed
dpkg -x shim-signed*deb shim
sudo cp shim/usr/lib/shim/shimx64.efi.signed.latest /srv/tftp/UEFI/bootx64.efi

# grub-efi-amd64-signed
apt download grub-efi-amd64-signed
dpkg -x grub-efi-amd64-signed*deb grub
sudo cp grub/usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed /srv/tftp/UEFI/grubx64.efi

# grub-common
apt download grub-common
dpkg -x grub-common*deb grub-common
sudo cp grub-common/usr/share/grub/unicode.pf2 /srv/tftp/UEFI/

图片

创建设立文献。

sudo mkdir /srv/tftp/grub
sudo vim /srv/tftp/grub/grub.cfg

裁剪设立文献:

        set default="0"
        set timeout=-1
       
        if loadfont unicode ; then
          set gfxmode=auto
          set locale_dir=$prefix/locale
          set lang=en_US
        fi
        terminal_output gfxterm

        set menu_color_normal=white/black
        set menu_color_highlight=black/light-gray
        if background_color 44,0,30; then
          clear
        fi

        function gfxmode {
                set gfxpayload="${1}"
                if [ "${1}" = "keep" ]; then
                        set vt_handoff=vt.handoff=7
                else
                        set vt_handoff=
                fi
        }

        set linux_gfx_mode=keep

        export linux_gfx_mode


        menuentry 'Ubuntu 22.04 IPv4' {
                gfxmode $linux_gfx_mode
                linux /UEFI/vmlinuz root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://192.168.9.1/ubuntu-22.04.2-desktop-amd64.iso
                initrd /UEFI/initrd
        }

        menuentry 'Ubuntu 22.04 IPv6' {
                gfxmode $linux_gfx_mode
                linux /UEFI/vmlinuz root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://[fdb0:d7fa:87bd::1]/ubuntu-22.04.2-desktop-amd64.iso
                initrd /UEFI/initrd
        }

图片

3.3 搭建 DHCP 做事器

装配 isc-dhcp-server

sudo apt install isc-dhcp-server

使用 ip a 稽查收集接口

vboxuser@Ubuntu-22:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:02:fa:39 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
       valid_lft 84432sec preferred_lft 84432sec
    inet6 fe80::cd67:89ac:208:e978/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:3d:0d:a4 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::51b:be51:b6c2:43ee/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

图片

不错看到我这台机器上有两张网卡 enp0s3 和 enp0s8,前者用来上网,后者用来相连局域网提供 PXE 做事。

先给方针网卡 enp0s8 设立静态 IP。

3.3.1 设立静态 IP

使用 netplan 设立静态 IP,翻开设立文献。

sudo vim /etc/netplan/01-network-manager-all.yaml

翻开后的默许设立文献如下:

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

裁剪设立文献践诺。

# Let NetworkManager manage all devices on this system
network:
  ethernets:
    enp0s8:
      dhcp4: no
      dhcp6: no
      addresses:
        - 192.168.9.1/24
        - fdb0:d7fa:87bd::1/64
  version: 2
  renderer: NetworkManager

利用改革。

sudo netplan apply

检查是否设立奏凯。

vboxuser@Ubuntu-22:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:02:fa:39 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
       valid_lft 86356sec preferred_lft 86356sec
    inet6 fe80::cd67:89ac:208:e978/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:3d:0d:a4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.9.1/24 brd 192.168.9.255 scope global noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet6 fdb0:d7fa:87bd::1/64 scope global noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe3d:da4/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

图片

3.3.2 设立 dhcpd

指定 isc-dhcp-server 要监听的网卡。翻开设立文献。

sudo vim /etc/default/isc-dhcp-server

裁剪践诺:

INTERFACESv4="enp0s8"
INTERFACESv6="enp0s8"

裁剪 dhcpd.conf 设立文献。

sudo vim /etc/dhcp/dhcpd.conf 

添加践诺:

option arch code 93 = unsigned integer 16;
  
subnet 192.168.9.0 netmask 255.255.255.0 {
  range  192.168.9.2 192.168.9.254;
  option routers 192.168.9.1;
  next-server 192.168.9.1;
  if option arch = 00:07 {
        filename "/UEFI/bootx64.efi";
  } else {
        filename "/Legacy/pxelinux.0";
  }
}

重启做事。

sudo systemctl restart isc-dhcp-server

检查做事是否启动奏凯。

systemctl status isc-dhcp-server

此时基于 IPv4 的 PXE 做事器已设立完成。

3.3.3 (IPv6)设立 dhcpd6

裁剪 dhcpd6.conf 设立文献。

sudo vim /etc/dhcp/dhcpd6.conf 

裁剪践诺:

option dhcp6.bootfile-url code 59 = string;
option dhcp6.client-arch-type code 61 = array of unsigned integer 16;

option dhcp6.name-servers fdb0:d7fa:87bd::1;

if option dhcp6.client-arch-type = 00:07 {
        option dhcp6.bootfile-url "tftp://[fdb0:d7fa:87bd::1]/UEFI/bootx64.efi";
} else {
        # Support a hypothetical BIOS system that can PXE boot over IPv6
        option dhcp6.bootfile-url "tftp://[fdb0:d7fa:87bd::1]/Legacy/pxelinux.0";
}

subnet6 fdb0:d7fa:87bd::/64 {
        range6 fdb0:d7fa:87bd::3:10 fdb0:d7fa:87bd::3:99;
        range6 fdb0:d7fa:87bd:: temporary;
}

图片

重启做事。

sudo systemctl restart isc-dhcp-server6

检查做事是否启动奏凯。

systemctl status isc-dhcp-server6

堤防:由于 IPv6 的特点,当 dhcpd6 搭建奏凯后,局域网内的机器梗概正确得到 IP,然而却无法连通。因此,还需要连接设立 [radvd](#3.4 搭建 RA 做事器)。

3.4 (IPv6)搭建 RA 做事器

装配 radvd。

sudo apt install radvd

创建设立文献。

vim /etc/radvd.conf

裁剪设立文献:

interface enp0s8
{
    AdvSendAdvert on;
    prefix fdb0:d7fa:87bd::/64 {
        AdvOnLink on;
        AdvAutonomous on;
    };
    #Send DNS Server setting - assumes there is a DNS server setup at the address below
    RDNSS fdb0:d7fa:87bd::1{
    };
};

重启 radvd 做事。

sudo systemctl restart radvd

检查 radvd 做事情状。

systemctl status radvd

若做事闲居驱动李月 反差,则此时 IPv6 收集已设立完成。

本站仅提供存储做事,统统践诺均由用户发布,如发现存害或侵权践诺,请点击举报。

友情链接:

Powered by 蝴蝶谷娱乐 @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024