aboutsummaryrefslogtreecommitdiffstats
path: root/fdio.infra.pxe/docker-nginx
diff options
context:
space:
mode:
Diffstat (limited to 'fdio.infra.pxe/docker-nginx')
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:b4/meta-data)0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:d4/meta-data)0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6b:08/meta-data)0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d9:2e/meta-data)0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:b4/user-data)6
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:d4/user-data)6
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6b:08/user-data)6
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d9:2e/user-data)6
22 files changed, 593 insertions, 12 deletions
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:b4/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:b4/meta-data
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/meta-data
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/user-data
new file mode 100644
index 0000000000..0b9c7552ad
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s21-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enp9s0f0:
+ addresses: [ 10.30.51.21/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:d4/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:d4/meta-data
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/meta-data
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/user-data
new file mode 100644
index 0000000000..4f4d35826f
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s22-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enp9s0f0:
+ addresses: [ 10.30.51.22/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6b:08/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6b:08/meta-data
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/meta-data
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/user-data
new file mode 100644
index 0000000000..831dff83f3
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s20-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enp8s0f0:
+ addresses: [ 10.30.51.20/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d9:2e/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d9:2e/meta-data
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/meta-data
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/user-data
new file mode 100644
index 0000000000..d3fa450d20
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s18-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enp16s0f0:
+ addresses: [ 10.30.51.18/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/meta-data
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/user-data
new file mode 100644
index 0000000000..55d01b402b
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s16-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enp16s0f0:
+ addresses: [ 10.30.51.16/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/meta-data
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/user-data
new file mode 100644
index 0000000000..992ac00e6d
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s17-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enp8s0f0:
+ addresses: [ 10.30.51.17/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/meta-data
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/user-data
new file mode 100644
index 0000000000..44e8e41777
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s19-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enp16s0f0:
+ addresses: [ 10.30.51.19/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/meta-data
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:b4/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/user-data
index 574207c48d..f1377ea653 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:b4/user-data
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/user-data
@@ -10,7 +10,7 @@ autoinstall:
- arches: [default]
uri: http://ports.ubuntu.com/ubuntu-ports
identity:
- hostname: s47-nomad
+ hostname: s24-nomad
password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
realname: localadmin
username: localadmin
@@ -22,9 +22,9 @@ autoinstall:
network:
ethernets:
eno1:
- addresses: [ 10.32.8.15/24 ]
+ addresses: [ 10.30.51.24/24 ]
dhcp4: false
- gateway4: 10.32.8.1
+ gateway4: 10.30.51.1
nameservers:
addresses: [ 1.1.1.1, 8.8.8.8 ]
version: 2
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/meta-data
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:d4/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/user-data
index d0bf9a08db..f44fd70dc0 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6a:d4/user-data
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/user-data
@@ -10,7 +10,7 @@ autoinstall:
- arches: [default]
uri: http://ports.ubuntu.com/ubuntu-ports
identity:
- hostname: s46-nomad
+ hostname: s23-nomad
password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
realname: localadmin
username: localadmin
@@ -22,9 +22,9 @@ autoinstall:
network:
ethernets:
eno1:
- addresses: [ 10.32.8.14/24 ]
+ addresses: [ 10.30.51.23/24 ]
dhcp4: false
- gateway4: 10.32.8.1
+ gateway4: 10.30.51.1
nameservers:
addresses: [ 1.1.1.1, 8.8.8.8 ]
version: 2
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/meta-data
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6b:08/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/user-data
index c2350becb0..f1ebe8eb0d 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:5a:6b:08/user-data
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/user-data
@@ -10,7 +10,7 @@ autoinstall:
- arches: [default]
uri: http://ports.ubuntu.com/ubuntu-ports
identity:
- hostname: s48-nomad
+ hostname: s25-nomad
password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
realname: localadmin
username: localadmin
@@ -22,9 +22,9 @@ autoinstall:
network:
ethernets:
eno1:
- addresses: [ 10.32.8.16/24 ]
+ addresses: [ 10.30.51.25/24 ]
dhcp4: false
- gateway4: 10.32.8.1
+ gateway4: 10.30.51.1
nameservers:
addresses: [ 1.1.1.1, 8.8.8.8 ]
version: 2
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/meta-data
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d9:2e/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/user-data
index dc603bebfc..f70804134b 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d9:2e/user-data
+++ b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/user-data
@@ -10,7 +10,7 @@ autoinstall:
- arches: [default]
uri: http://ports.ubuntu.com/ubuntu-ports
identity:
- hostname: s57-nomad
+ hostname: s26-nomad
password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
realname: localadmin
username: localadmin
@@ -22,9 +22,9 @@ autoinstall:
network:
ethernets:
eno1:
- addresses: [ 10.32.8.17/24 ]
+ addresses: [ 10.30.51.26/24 ]
dhcp4: false
- gateway4: 10.32.8.1
+ gateway4: 10.30.51.1
nameservers:
addresses: [ 1.1.1.1, 8.8.8.8 ]
version: 2
s="n">dst=out_if.local_mac, src=out_if.remote_mac) / IP(src=out_if.remote_ip4, dst=dst_ip, ttl=ttl) / ICMP(id=self.icmp_external_id, type='echo-reply')) pkts.append(p) return pkts def verify_capture_out(self, capture, nat_ip=None): """ Verify captured packets on outside network :param capture: Captured packets :param nat_ip: Translated IP address (Default use global NAT address) :param same_port: Source port number is not translated (Default False) """ if nat_ip is None: nat_ip = self.nat_addr for packet in capture: try: self.assertEqual(packet[IP].src, nat_ip) if packet.haslayer(TCP): self.tcp_port_out = packet[TCP].sport elif packet.haslayer(UDP): self.udp_port_out = packet[UDP].sport else: self.icmp_external_id = packet[ICMP].id except: self.logger.error(ppp("Unexpected or invalid packet " "(outside network):", packet)) raise def test_deterministic_mode(self): """ NAT plugin run deterministic mode """ in_addr = '172.16.255.0' out_addr = '172.17.255.50' in_addr_t = '172.16.255.20' in_plen = 24 out_plen = 32 self.vapi.det44_add_del_map(is_add=1, in_addr=in_addr, in_plen=in_plen, out_addr=out_addr, out_plen=out_plen) rep1 = self.vapi.det44_forward(in_addr_t) self.assertEqual(str(rep1.out_addr), out_addr) rep2 = self.vapi.det44_reverse(rep1.out_port_hi, out_addr) self.assertEqual(str(rep2.in_addr), in_addr_t) deterministic_mappings = self.vapi.det44_map_dump() self.assertEqual(len(deterministic_mappings), 1) dsm = deterministic_mappings[0] self.assertEqual(in_addr, str(dsm.in_addr)) self.assertEqual(in_plen, dsm.in_plen) self.assertEqual(out_addr, str(dsm.out_addr)) self.assertEqual(out_plen, dsm.out_plen) def test_set_timeouts(self): """ Set deterministic NAT timeouts """ timeouts_before = self.vapi.det44_get_timeouts() self.vapi.det44_set_timeouts( udp=timeouts_before.udp + 10, tcp_established=timeouts_before.tcp_established + 10, tcp_transitory=timeouts_before.tcp_transitory + 10, icmp=timeouts_before.icmp + 10) timeouts_after = self.vapi.det44_get_timeouts() self.assertNotEqual(timeouts_before.udp, timeouts_after.udp) self.assertNotEqual(timeouts_before.icmp, timeouts_after.icmp) self.assertNotEqual(timeouts_before.tcp_established, timeouts_after.tcp_established) self.assertNotEqual(timeouts_before.tcp_transitory, timeouts_after.tcp_transitory) def test_in(self): """ DET44 translation test (TCP, UDP, ICMP) """ nat_ip = "10.0.0.10" self.vapi.det44_add_del_map(is_add=1, in_addr=self.pg0.remote_ip4, in_plen=32, out_addr=socket.inet_aton(nat_ip), out_plen=32) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg0.sw_if_index, is_add=1, is_inside=1) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg1.sw_if_index, is_add=1, is_inside=0) # in2out pkts = self.create_stream_in(self.pg0, self.pg1) self.pg0.add_stream(pkts) self.pg_enable_capture(self.pg_interfaces) self.pg_start() capture = self.pg1.get_capture(len(pkts)) self.verify_capture_out(capture, nat_ip) # out2in pkts = self.create_stream_out(self.pg1, nat_ip) self.pg1.add_stream(pkts) self.pg_enable_capture(self.pg_interfaces) self.pg_start() capture = self.pg0.get_capture(len(pkts)) self.verify_capture_in(capture, self.pg0) # session dump test sessions = self.vapi.det44_session_dump(self.pg0.remote_ip4) self.assertEqual(len(sessions), 3) # TCP session s = sessions[0] self.assertEqual(str(s.ext_addr), self.pg1.remote_ip4) self.assertEqual(s.in_port, self.tcp_port_in) self.assertEqual(s.out_port, self.tcp_port_out) self.assertEqual(s.ext_port, self.tcp_external_port) # UDP session s = sessions[1] self.assertEqual(str(s.ext_addr), self.pg1.remote_ip4) self.assertEqual(s.in_port, self.udp_port_in) self.assertEqual(s.out_port, self.udp_port_out) self.assertEqual(s.ext_port, self.udp_external_port) # ICMP session s = sessions[2] self.assertEqual(str(s.ext_addr), self.pg1.remote_ip4) self.assertEqual(s.in_port, self.icmp_id_in) self.assertEqual(s.out_port, self.icmp_external_id) def test_multiple_users(self): """ Deterministic NAT multiple users """ nat_ip = "10.0.0.10" port_in = 80 external_port = 6303 host0 = self.pg0.remote_hosts[0] host1 = self.pg0.remote_hosts[1] self.vapi.det44_add_del_map(is_add=1, in_addr=host0.ip4, in_plen=24, out_addr=socket.inet_aton(nat_ip), out_plen=32) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg0.sw_if_index, is_add=1, is_inside=1) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg1.sw_if_index, is_add=1, is_inside=0) # host0 to out p = (Ether(src=host0.mac, dst=self.pg0.local_mac) / IP(src=host0.ip4, dst=self.pg1.remote_ip4) / TCP(sport=port_in, dport=external_port)) self.pg0.add_stream(p) self.pg_enable_capture(self.pg_interfaces) self.pg_start() capture = self.pg1.get_capture(1) p = capture[0] try: ip = p[IP] tcp = p[TCP] self.assertEqual(ip.src, nat_ip) self.assertEqual(ip.dst, self.pg1.remote_ip4) self.assertEqual(tcp.dport, external_port) port_out0 = tcp.sport except: self.logger.error(ppp("Unexpected or invalid packet:", p)) raise # host1 to out p = (Ether(src=host1.mac, dst=self.pg0.local_mac) / IP(src=host1.ip4, dst=self.pg1.remote_ip4) / TCP(sport=port_in, dport=external_port)) self.pg0.add_stream(p) self.pg_enable_capture(self.pg_interfaces) self.pg_start() capture = self.pg1.get_capture(1) p = capture[0] try: ip = p[IP] tcp = p[TCP] self.assertEqual(ip.src, nat_ip) self.assertEqual(ip.dst, self.pg1.remote_ip4) self.assertEqual(tcp.dport, external_port) port_out1 = tcp.sport except: self.logger.error(ppp("Unexpected or invalid packet:", p)) raise dms = self.vapi.det44_map_dump() self.assertEqual(1, len(dms)) self.assertEqual(2, dms[0].ses_num) # out to host0 p = (Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) / IP(src=self.pg1.remote_ip4, dst=nat_ip) / TCP(sport=external_port, dport=port_out0)) self.pg1.add_stream(p) self.pg_enable_capture(self.pg_interfaces) self.pg_start() capture = self.pg0.get_capture(1) p = capture[0] try: ip = p[IP] tcp = p[TCP] self.assertEqual(ip.src, self.pg1.remote_ip4) self.assertEqual(ip.dst, host0.ip4) self.assertEqual(tcp.dport, port_in) self.assertEqual(tcp.sport, external_port) except: self.logger.error(ppp("Unexpected or invalid packet:", p)) raise # out to host1 p = (Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) / IP(src=self.pg1.remote_ip4, dst=nat_ip) / TCP(sport=external_port, dport=port_out1)) self.pg1.add_stream(p) self.pg_enable_capture(self.pg_interfaces) self.pg_start() capture = self.pg0.get_capture(1) p = capture[0] try: ip = p[IP] tcp = p[TCP] self.assertEqual(ip.src, self.pg1.remote_ip4) self.assertEqual(ip.dst, host1.ip4) self.assertEqual(tcp.dport, port_in) self.assertEqual(tcp.sport, external_port) except: self.logger.error(ppp("Unexpected or invalid packet", p)) raise # session close api test self.vapi.det44_close_session_out(socket.inet_aton(nat_ip), port_out1, self.pg1.remote_ip4, external_port) dms = self.vapi.det44_map_dump() self.assertEqual(dms[0].ses_num, 1) self.vapi.det44_close_session_in(host0.ip4, port_in, self.pg1.remote_ip4, external_port) dms = self.vapi.det44_map_dump() self.assertEqual(dms[0].ses_num, 0) def test_tcp_session_close_detection_in(self): """ DET44 TCP session close from inside network """ self.vapi.det44_add_del_map(is_add=1, in_addr=self.pg0.remote_ip4, in_plen=32, out_addr=socket.inet_aton(self.nat_addr), out_plen=32) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg0.sw_if_index, is_add=1, is_inside=1) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg1.sw_if_index, is_add=1, is_inside=0) self.initiate_tcp_session(self.pg0, self.pg1) # close the session from inside try: # FIN packet in -> out p = (Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac) / IP(src=self.pg0.remote_ip4, dst=self.pg1.remote_ip4) / TCP(sport=self.tcp_port_in, dport=self.tcp_external_port, flags="F")) self.pg0.add_stream(p) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.pg1.get_capture(1) pkts = [] # ACK packet out -> in p = (Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) / IP(src=self.pg1.remote_ip4, dst=self.nat_addr) / TCP(sport=self.tcp_external_port, dport=self.tcp_port_out, flags="A")) pkts.append(p) # FIN packet out -> in p = (Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) / IP(src=self.pg1.remote_ip4, dst=self.nat_addr) / TCP(sport=self.tcp_external_port, dport=self.tcp_port_out, flags="F")) pkts.append(p) self.pg1.add_stream(pkts) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.pg0.get_capture(2) # ACK packet in -> out p = (Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac) / IP(src=self.pg0.remote_ip4, dst=self.pg1.remote_ip4) / TCP(sport=self.tcp_port_in, dport=self.tcp_external_port, flags="A")) self.pg0.add_stream(p) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.pg1.get_capture(1) # Check if deterministic NAT44 closed the session dms = self.vapi.det44_map_dump() self.assertEqual(0, dms[0].ses_num) except: self.logger.error("TCP session termination failed") raise def test_tcp_session_close_detection_out(self): """ Deterministic NAT TCP session close from outside network """ self.vapi.det44_add_del_map(is_add=1, in_addr=self.pg0.remote_ip4, in_plen=32, out_addr=socket.inet_aton(self.nat_addr), out_plen=32) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg0.sw_if_index, is_add=1, is_inside=1) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg1.sw_if_index, is_add=1, is_inside=0) self.initiate_tcp_session(self.pg0, self.pg1) # close the session from outside try: # FIN packet out -> in p = (Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) / IP(src=self.pg1.remote_ip4, dst=self.nat_addr) / TCP(sport=self.tcp_external_port, dport=self.tcp_port_out, flags="F")) self.pg1.add_stream(p) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.pg0.get_capture(1) pkts = [] # ACK packet in -> out p = (Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac) / IP(src=self.pg0.remote_ip4, dst=self.pg1.remote_ip4) / TCP(sport=self.tcp_port_in, dport=self.tcp_external_port, flags="A")) pkts.append(p) # ACK packet in -> out p = (Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac) / IP(src=self.pg0.remote_ip4, dst=self.pg1.remote_ip4) / TCP(sport=self.tcp_port_in, dport=self.tcp_external_port, flags="F")) pkts.append(p) self.pg0.add_stream(pkts) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.pg1.get_capture(2) # ACK packet out -> in p = (Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac) / IP(src=self.pg1.remote_ip4, dst=self.nat_addr) / TCP(sport=self.tcp_external_port, dport=self.tcp_port_out, flags="A")) self.pg1.add_stream(p) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.pg0.get_capture(1) # Check if deterministic NAT44 closed the session dms = self.vapi.det44_map_dump() self.assertEqual(0, dms[0].ses_num) except: self.logger.error("TCP session termination failed") raise def test_session_timeout(self): """ Deterministic NAT session timeouts """ self.vapi.det44_add_del_map(is_add=1, in_addr=self.pg0.remote_ip4, in_plen=32, out_addr=socket.inet_aton(self.nat_addr), out_plen=32) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg0.sw_if_index, is_add=1, is_inside=1) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg1.sw_if_index, is_add=1, is_inside=0) self.initiate_tcp_session(self.pg0, self.pg1) self.vapi.det44_set_timeouts(udp=5, tcp_established=5, tcp_transitory=5, icmp=5) pkts = self.create_stream_in(self.pg0, self.pg1) self.pg0.add_stream(pkts) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.pg1.get_capture(len(pkts)) self.virtual_sleep(15) dms = self.vapi.det44_map_dump() self.assertEqual(0, dms[0].ses_num) # TODO: ipfix needs to be separated from NAT base plugin @unittest.skipUnless(running_extended_tests, "part of extended tests") def test_session_limit_per_user(self): """ Deterministic NAT maximum sessions per user limit """ self.vapi.det44_add_del_map(is_add=1, in_addr=self.pg0.remote_ip4, in_plen=32, out_addr=socket.inet_aton(self.nat_addr), out_plen=32) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg0.sw_if_index, is_add=1, is_inside=1) self.vapi.det44_interface_add_del_feature( sw_if_index=self.pg1.sw_if_index, is_add=1, is_inside=0) self.vapi.set_ipfix_exporter(collector_address=self.pg2.remote_ip4, src_address=self.pg2.local_ip4, path_mtu=512, template_interval=10) self.vapi.nat_ipfix_enable_disable(domain_id=1, src_port=4739, enable=1) pkts = [] for port in range(1025, 2025): p = (Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac) / IP(src=self.pg0.remote_ip4, dst=self.pg1.remote_ip4) / UDP(sport=port, dport=port)) pkts.append(p) self.pg0.add_stream(pkts) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.pg1.get_capture(len(pkts)) p = (Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac) / IP(src=self.pg0.remote_ip4, dst=self.pg1.remote_ip4) / UDP(sport=3001, dport=3002)) self.pg0.add_stream(p) self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.pg1.assert_nothing_captured() # verify ICMP error packet capture = self.pg0.get_capture(1) p = capture[0] self.assertTrue(p.haslayer(ICMP)) icmp = p[ICMP] self.assertEqual(icmp.type, 3) self.assertEqual(icmp.code, 1) self.assertTrue(icmp.haslayer(IPerror)) inner_ip = icmp[IPerror] self.assertEqual(inner_ip[UDPerror].sport, 3001) self.assertEqual(inner_ip[UDPerror].dport, 3002) dms = self.vapi.det44_map_dump() self.assertEqual(1000, dms[0].ses_num) # verify IPFIX logging self.vapi.ipfix_flush() capture = self.pg2.get_capture(2) ipfix = IPFIXDecoder() # first load template for p in capture: self.assertTrue(p.haslayer(IPFIX)) if p.haslayer(Template): ipfix.add_template(p.getlayer(Template)) # verify events in data set for p in capture: if p.haslayer(Data): data = ipfix.decode_data_set(p.getlayer(Set)) self.verify_ipfix_max_entries_per_user(data, 1000, self.pg0.remote_ip4) self.vapi.nat_ipfix_enable_disable(domain_id=1, src_port=4739, enable=0)