ย้ายเครื่อง VM Guest Proxmox ข้าม Server
Server ต้นทาง

Server ปลายทาง

ที่ Server ต้นทางเช็คเครื่องที่จะย้ายก่อนว่าเครื่องไหน

root@server2:~# qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
100 TableAU running 25480 250.00 1374 <– ย้ายเครื่อง VMID 100
101 Tableau stopped 25480 250.00 0
STEP 1: Backup
root@server2:~# vzdump 100 –mode stop –compress zstd
กันพลาด ใส่ storage ให้ชัดเจน:
root@server2:~# vzdump 100 –mode stop –compress zstd –storage local
จะเก็บไว้ที่ local แน่นอน
มันทำอะไรบ้าง
⛔ หยุด VM 100 ชั่วคราว
💾 backup disk ทั้งหมด (รวม EFI + TPM)
📦 บีบอัดเป็นไฟล์ .vma.zst
▶️ เสร็จแล้ว VM จะ กลับมารันต่อ
root@server2:~# vzdump 100 –mode stop –compress zstd –storage local
INFO: starting new backup job: vzdump 100 –storage local –mode stop –compress zstd
INFO: Starting Backup of VM 100 (qemu)
INFO: Backup started at 2026-04-27 10:03:56
INFO: status = stopped
INFO: backup mode: stop
INFO: ionice priority: 7
INFO: VM Name: TableAU
INFO: include disk ‘ide0’ ‘Disk1:100/vm-100-disk-1.qcow2’ 250G
INFO: include disk ‘efidisk0’ ‘Disk1:100/vm-100-disk-0.qcow2’ 528K
INFO: include disk ‘tpmstate0’ ‘Disk1:100/vm-100-disk-2.qcow2’ 4M
INFO: creating vzdump archive ‘/var/lib/vz/dump/vzdump-qemu-100-2026_04_27-10_03_56.vma.zst’
INFO: starting kvm to execute backup task
swtpm_setup: Not overwriting existing state file.
INFO: attaching TPM drive to QEMU for backup
INFO: started backup task ‘7e9bf25f-9c27-4947-97bc-2f9c950569e1’
INFO: 0% (147.2 MiB of 250.0 GiB) in 3s, read: 49.1 MiB/s, write: 16.9 MiB/s
INFO: 1% (2.5 GiB of 250.0 GiB) in 1m 58s, read: 21.2 MiB/s, write: 20.4 MiB/s
INFO: 2% (5.0 GiB of 250.0 GiB) in 3m 56s, read: 21.6 MiB/s, write: 21.5 MiB/s
INFO: 3% (7.5 GiB of 250.0 GiB) in 5m 24s, read: 29.2 MiB/s, write: 29.1 MiB/s
INFO: 4% (10.0 GiB of 250.0 GiB) in 6m 41s, read: 33.3 MiB/s, write: 33.2 MiB/s
INFO: 5% (12.6 GiB of 250.0 GiB) in 8m 23s, read: 25.7 MiB/s, write: 24.8 MiB/s
……..
INFO: 73% (183.0 GiB of 250.0 GiB) in 1h 12m 44s, read: 8.8 GiB/s, write: 0 B/s
INFO: 84% (210.0 GiB of 250.0 GiB) in 1h 12m 47s, read: 9.0 GiB/s, write: 0 B/s
INFO: 94% (237.0 GiB of 250.0 GiB) in 1h 12m 50s, read: 9.0 GiB/s, write: 0 B/s
INFO: 99% (249.6 GiB of 250.0 GiB) in 1h 12m 53s, read: 4.2 GiB/s, write: 44.2 MiB/s
INFO: 100% (250.0 GiB of 250.0 GiB) in 1h 13m 5s, read: 34.1 MiB/s, write: 27.7 MiB/s
INFO: backup is sparse: 163.40 GiB (65%) total zero data
INFO: transferred 250.00 GiB in 4385 seconds (58.4 MiB/s)
INFO: stopping kvm after backup task
INFO: archive file size: 36.49GB
INFO: Finished Backup of VM 100 (01:13:06)
INFO: Backup finished at 2026-04-27 11:17:02
INFO: Backup job finished successfully
INFO: notified via target `mail-to-root`
ไฟล์ที่ได้
จะอยู่ที่: /var/lib/vz/dump/
root@server2:~# cd /var/lib/vz/dump/
root@server2:/var/lib/vz/dump# ls -l
total 46025300
-rw-r–r– 1 root root 2132 Apr 27 09:36 vzdump-qemu-100-2026_04_27-09_19_05.log
-rw-r–r– 1 root root 743 Apr 27 09:57 vzdump-qemu-100-2026_04_27-09_47_41.log
-rw-r–r– 1 root root 5863 Apr 27 11:17 vzdump-qemu-100-2026_04_27-10_03_56.log
-rw-r–r– 1 root root 39180988248 Apr 27 11:17 vzdump-qemu-100-2026_04_27-10_03_56.vma.zst
⏱️ หมายเหตุ
VM จะ ดับระหว่าง backup (ระยะเวลาขึ้นกับขนาด disk)
ของคุณ 250GB → ประมาณ 20–60 นาที (แล้วแต่ disk)
STEP 2: ส่งไฟล์ไปเครื่องปลายทาง
บนเครื่องต้นทาง (server2) รัน:
root@server2:/var/lib/vz/dump# scp /var/lib/vz/dump/vzdump-qemu-100-*.vma.zst root@192.168.100.11:/var/lib/vz/dump/
The authenticity of host ‘192.168.100.11 (192.168.100.11)’ can’t be established.
👉 จะให้ใส่ password ของ root ฝั่งปลายทาง
root@192.168.100.11’s password:
vzdump-qemu-100-2026_04_27-10_03_56.vma.zst 100% 36GB 112.0MB/s 05:33
STEP 3: Restore ที่เครื่อง 192.168.100.11
SSH เข้าเครื่องปลายทาง:
ssh root@192.168.100.11
แล้วรัน:
root@world2:/var/lib/vz/dump# ls -l
total 38262688
-rw-r–r– 1 root root 39180988248 Apr 27 11:26 vzdump-qemu-100-2026_04_27-10_03_56.vma.zst
root@world2:/var/lib/vz/dump# qmrestore /var/lib/vz/dump/vzdump-qemu-100-*.vma.zst 100 –storage local-lvm
unable to restore VM 100 – VM 100 already exists on node ‘world2’. <–VMID (จากที่ Copy มาจากเครื่องเก่าหมายเลข 100 มีอยู่แล้วต้องเปลี่ยนชื่อใหม่เพื่อ Restore)
root@world2:/var/lib/vz/dump# qmrestore /var/lib/vz/dump/vzdump-qemu-100-*.vma.zst 200 –storage local-lvm
restore vma archive: zstd -q -d -c /var/lib/vz/dump/vzdump-qemu-100-2026_04_27-10_03_56.vma.zst | vma extract -v -r /var/tmp/vzdumptmp649754.fifo – /var/tmp/vzdumptmp649754
CFG: size: 745 name: qemu-server.conf
DEV: dev_id=1 size: 540672 devname: drive-efidisk0
DEV: dev_id=2 size: 268435456000 devname: drive-ide0
DEV: dev_id=3 size: 4194304 devname: drive-tpmstate0-backup
CTIME: Mon Apr 27 10:03:57 2026
Rounding up size to full physical extent 4.00 MiB
Logical volume “vm-200-disk-0” created.
Logical volume pve/vm-200-disk-0 changed.
new volume ID is ‘local-lvm:vm-200-disk-0’
Logical volume “vm-200-disk-1” created.
Logical volume pve/vm-200-disk-1 changed.
new volume ID is ‘local-lvm:vm-200-disk-1’
Logical volume “vm-200-disk-2” created.
Logical volume pve/vm-200-disk-2 changed.
new volume ID is ‘local-lvm:vm-200-disk-2’
map ‘drive-efidisk0’ to ‘/dev/pve/vm-200-disk-0’ (write zeros = 0)
map ‘drive-ide0’ to ‘/dev/pve/vm-200-disk-1’ (write zeros = 0)
map ‘drive-tpmstate0-backup’ to ‘/dev/pve/vm-200-disk-2’ (write zeros = 0)
progress 1% (read 2684420096 bytes, duration 2 sec)
progress 2% (read 5368840192 bytes, duration 4 sec)
progress 3% (read 8053260288 bytes, duration 6 sec)
………………………………………………
progress 98% (read 263071399936 bytes, duration 73 sec)
progress 99% (read 265755820032 bytes, duration 73 sec)
progress 100% (read 268440174592 bytes, duration 74 sec)
total bytes read 268440240128, sparse bytes 175452459008 (65.4%)
space reduction due to 4K zero blocks 0.864%
rescan volumes…
VM 200 (efidisk0): size of disk ‘local-lvm:vm-200-disk-0’ updated from 528K to 4M
ความหมาย:
restore VM จาก backup
สร้างเป็น VMID 200 (ไม่ชนของเดิม)
disk จะไปอยู่ที่ local-lvm (pve-data)
หลัง restore เสร็จ ทำต่อเลย
ต้องเห็น:
200 TableAU stopped
root@world2:/var/lib/vz/dump# qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
100 VM 100 stopped 512 0.00 0
200 TableAU stopped 25480 250.00 0
root@world2:/var/lib/vz/dump# qm config 200
bios: ovmf
boot: order=ide0;ide2;net0
cores: 8
cpu: host
efidisk0: local-lvm:vm-200-disk-0,efitype=4m,ms-cert=2023,pre-enrolled-keys=1,size=4M
ide0: local-lvm:vm-200-disk-1,size=250G
ide2: none,media=cdrom
machine: pc-q35-10.1
memory: 25480
meta: creation-qemu=10.1.2,ctime=1771858213
name: TableAU
net0: e1000e=BC:24:11:43:6C:83,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: win11
scsihw: virtio-scsi-single
smbios1: uuid=14f129dc-b684-49fd-a31c-46e3d9b4e4c8
sockets: 1
tpmstate0: local-lvm:vm-200-disk-2,size=4M,version=v2.0
vmgenid: 4d63fc51-7113-4f7b-b63d-b925295f4ef3
เปิด VM
qm start 200
⚠️ ถ้าเปิดแล้วมีปัญหา
❌ Boot ไม่ขึ้น
ลอง:
qm set 200 –cpu x86-64-v2-AES
❌ เน็ตไม่ออก
เช็ค:
ip a
👉 ต้องมี vmbr0
ถ้าไม่ตรง:
qm set 200 –net0 e1000e,bridge=vmbr0
🔥 สรุป
✔️ คำสั่งคุณถูกต้อง 100%
✔️ ใช้ ID 200 กันชน
✔️ Restore เสร็จ = เปิดใช้งานได้เลย
Reset Password กรณีลืม Password Cisco Router
1. เข้า Rommon ให้ได้
1.1 ปิด Router (ถอดไฟ)
1.2 เปิดใหม่ แล้ว กด Ctrl + Break ทันที
บน Mac + screen บางทีต้องใช้:
• Ctrl + A แล้วกด B
หรือ
• Ctrl + A → Ctrl + B
SecureCRT ( Menu –Edit -> SendBreak)
rommon 1 >
จากนั้นพิมพ์ Code ตามตัวอย่าง
rommon 1 > confreg 0x2142
2.เข้า Router โดยไม่ต้องใช้รหัสผ่าน
หลังจาก Router รีบู๊ตเสร็จจะถามว่าให้ใช้ค่าเริ่มต้นคอนฟิคไหม ตอบ NO

เสร็จแล้วรอสักครู่ เข้า Router แล้ว
#enable
Router#copy startup-config running-config <- Copy Config เดิมกลับมาก่อน กด Enter ไปเลย

ทีนี้ตั้งค่าใหม่ตามที่เราต้องการ
#conf t
enable secret NEWPASSWORD
line console 0
password NEWPASSWORD
login
line vty 0 4
password NEWPASSWORD
login
ตั้งค่า config-register กลับเป็นปกติ (สำคัญมาก)
configure terminal
config-register 0x2102
end
show version
จะเห็นบรรทัด:
Configuration register is 0x2102
เสร็จแล้ว Reload ก็จะรีบู๊ตเร้าเตอร์เข้าสู่ Mode ปกติ ตรวจเช็คหลังจากที่เปลี่ยนรหัสผ่านใหม่แล้ว
วิธีทำ DDNS ไว้ใช้งานเอง
สืบเนื่องจากว่าอยากจะลองทำ ddns ไว้ใช้งานเองไม่อยากจะสมัครใช้งานของ noip,dyndns หรืออื่นๆ ซึ่งลิมิตใช้งานต้องเสียตังค์ ก็เลยคิดว่าอยากจะทำเอง อีกทั้งมี domain ที่มีอยู่แล้ว อยากให้มีชื่อ domain ของเราเองต่อท้ายแบบโก้ๆ เลยไปหาวิธีทำมา ถามวิธีการจาก ChatGPT
มันเวิร์กดีก็เลยอยากจะเอามาแชร์ มีวิธีการดังนี้
1. จดโดเมน (khun-teee.com) ซึ่งเราจะไม่เข้าไปยุ่ง nameserver หลัก อยากจะทำ subdomain ย่อยขึ้นมาโดย delegation ไปที่อีก server โดยตั้งชื่อ domain ย่อยว่า ddns.khun-teee.com. และเวลาใช้งานจริงจะมีรูปแบบ url แบบนี้ (server).ddns.khun-teee.com:(สามารถระบุพอร์ทได้ด้วย)
2. มี server dns เอง โดยติดตั้ง bind server
3. ที่เครื่อง Client มี Script เช็ค Public IP ของตัวเองแล้วส่งไปอัพเดทที่ bind ได้ใช้ ddns-key

1) ขั้นแรกให้ไปที่ DNS Provider ที่เราจดทะเบียนอยู่ ที่ Record ของ DNS ให้ทำการเพิ่ม Record ดังนี้
1. name (ddns) type(ns) Variable (ns1.ddns.khun-teee.com)
2. name (ns1.ddns.khun-teee.com.). type (A) Variable (Your Public IP Address)
2) ขั้นที่สองติดตั้ง bind server
apt update
apt install bind9 bind9-utils bind9-dnsutils -y
อย่าลืมติดตั้ง webmin ด้วยเพื่อที่จะสามารถเข้าไปแก้ไข Record และสามารถเช็คจากหน้าเว็บได้ (ลองหาวิธีติดตั้งจากในเว็บ)
จาก Webmin ไปสร้าง New Master Zone. ddns.khun-teee.com
$ORIGIN .
$TTL 3600 ; 1 hour
ddns.khun-teee.com IN SOA ns1.ddns.khun-teee.com (your servername) (
2026022515 ; serial
3600 ; refresh (1 hour)
600 ; retry (10 minutes)
1209600 ; expire (2 weeks)
3600 ; minimum (1 hour)
)
NS ns1.ddns.khun-teee.com.
A xxx.xxx.xxx.xxx (แทน xxx ด้วย public ip)
$ORIGIN ddns.khun-teee.com.
$TTL 300 ; 5 minutes
สร้าง ddns-key วิธีสร้าง ddns-key (TSIG) สำหรับ BIND บน Linux
#tsig-keygen -a hmac-sha256 ddns-key
จะได้ผลลัพธ์ประมาณนี้:
key “ddns-key” {
algorithm hmac-sha256;
secret “AbCdEfGhIjKlMnOpQrStUvWxYz1234567890=”;
};
จากนั้น บันทีกลงในไฟล์
#nano /etc/bind/ddns.key
วางเนื้อหาผลลัพธ์จากข้างบนที่ได้ลงไป กดเซฟ
#nano /etc/bind/named.conf.local
จะได้ประมาณนี้
zone “ddns.khun-teee.com” {
type master;
file “/var/lib/bind/ddns.khun-teee.com.hosts”;
allow-update {
key “ddns-key.”;
};
allow-transfer { none; };
};
เช็คความถูกต้องของ named config และ Restart
#named-checkconf
#systemctl restart bind9
#netstat -lntup (ตรวจดูด้วยว่ามีพอร์ท 53 รันอยู่ไหม)
จากนั้นให้เข้าไปหน้า webmin และลองสร้าง Record เพื่อทดสอบ
เลือก zone > ddns.khun-teee.com ที่ได้สร้างไว้

ลองเพิ่ม record ตามนี้ดูก่อน เมื่อสร้างเสร็จจะเห็น record test.ddns.khun-teee.com. ip:0.0.0.0
จากนั้นเราจะลองเทส Update Record ดูจะเครื่อง localhost server ว่า สามารถอัพเดทได้หรือไม่
เขียน script
#nano test-bind.txt
server 127.0.0.1
zone ddns.khun-teee.com
update delete test.ddns.khun-teee.com. A
update add test.ddns.khun-teee.com. 300 A 5.5.5.5
send
(กด Ctrl+x)Y เพื่อ Save
เปิด terminal อีก session เพื่อ monitor แบบ realtime ว่าสามารถอัพเดทได้ไหม
#journalctl -u named -f
#journalctl -u named -p err -f
ทดสอบรันคำสั่งอัพเดท โดยจะลอง Update IP 5.5.5.5 ไปแทนที่ 0.0.0.0 ที่ record test.ddns.khun-teee.com. ip:0.0.0.0
#nsupdate -k /etc/bind/ddns.key test-bind.txt
จะเจอข้อความประมาณนี้ที่หน้า realtime monitor log
Feb 25 13:15:27 xxxx named[648512]: client @0x7f08fad68098 127.0.0.1#36654/key ddns-key: signer “ddns-key” approved
Feb 25 13:20:42 xxxx named[648512]: client @0x7f08fad68098 127.0.0.1#41311/key ddns-key: signer “ddns-key” approved
Feb 25 13:20:42 xxxx named[648512]: client @0x7f08fad68098 127.0.0.1#41311/key ddns-key: updating zone ‘ddns.khun-teee.com/IN’: deleting rrset at ‘test.ddns.khun-teee.com’ A
Feb 25 13:20:42 xxxx named[648512]: client @0x7f08fad68098 127.0.0.1#41311/key ddns-key: updating zone ‘ddns.khun-teee.com/IN’: adding an RR at ‘test.ddns.khun-teee.com’ A 5.5.5.5
Feb 25 13:20:42 xxxx named[648512]: client @0x7f08fad68098 127.0.0.1#38232/key ddns-key: signer “ddns-key” approved
แสดงว่าอัพเดทถูกแล้ว
ลองเช็คจากคำสั่ง
CheckUpdate
root@server# dig NS test.ddns.khun-teee.com
root@server# dig @127.0.0.1 test.ddns.khun-teee.com +norecurse
root@server# dig @8.8.8.8 test.ddns.khun-teee.com
3) จากนั้นไปเขียนสคริปต์ให้อัพเดทที่เครื่อง Client ที่ต้องการใช้งาน
3.1 สร้างไฟล์ TSIG key บนเครื่อง Client
#sudo nano /etc/ddns.key
เป็น Key ตัวเดียวกันที่เราสร้างไว้ฝั่ง Server
key “ddns-key” {
algorithm hmac-sha256;
secret “AbCdEfGhIjKlMnOpQrStUvWxYz1234567890=”;
};
#sudo chmod 600 /etc/ddns.key
3.2) สร้าง script update
#sudo nano ddns-update.sh
#!/bin/bash
#############################################
# Dynamic DNS Update Script (TSIG Secure)
#############################################
DNS_SERVER=”ns1.ddns.khun-teee.com”
ZONE=”ddns.khun-teee.com”
RECORD=”test.ddns.khun-teee.com”
KEYFILE=”/etc/ddns.key”
TTL=”300″
LOGFILE=”/var/log/ddns-client.log”
# ===== Function: Write Log =====
log() {
echo “$(date ‘+%Y-%m-%d %H:%M:%S’) – $1” >> $LOGFILE
}
# ===== Detect Public IP =====
CURRENT_IP=$(curl -4 -s –max-time 10 https://api.ipify.org)
if [[ -z “$CURRENT_IP” ]]; then
log “ERROR: Cannot detect public IP”
exit 1
fi
# ===== Get Current DNS IP =====
DNS_IP=$(dig @$DNS_SERVER +short $RECORD A)
# ===== Compare IP =====
if [[ “$CURRENT_IP” == “$DNS_IP” ]]; then
log “No change. Current IP is still $CURRENT_IP”
exit 0
fi
log “IP changed: $DNS_IP → $CURRENT_IP”
log “Sending update to DNS server…”
# ===== Send Update =====
nsupdate -k $KEYFILE << EOF
server $DNS_SERVER
zone $ZONE
update delete $RECORD A
update add $RECORD $TTL A $CURRENT_IP
send
EOF
# ===== Verify Update =====
sleep 2
NEW_DNS_IP=$(dig @$DNS_SERVER +short $RECORD A)
if [[ “$NEW_DNS_IP” == “$CURRENT_IP” ]]; then
log “SUCCESS: DNS updated to $CURRENT_IP”
else
log “ERROR: DNS update failed (Expected: $CURRENT_IP, Got: $NEW_DNS_IP)”
exit 1
fi
exit 0
เสร็จแล้ว(กด Ctrl+x)Y เพื่อ Save
#sudo chmod +x ddns-update.sh
ทดลองรัน
#./ddns-update.sh
#tail -f /var/log/ddns-client.log
2026-02-25 13:58:37 – IP changed: 5.5.5.5 → (public ip)
2026-02-25 13:58:37 – Sending update to DNS server…
2026-02-25 13:58:41 – SUCCESS: DNS updated to (public ip)
แสดงว่า DNS เราอัพเดทแล้ว ตั้งเวลา cron job ให้เช็ค IP ทุก 5 นาที หรือนานกว่านั้นก็ได้
#crontab -e
*/5 * * * * /home/teee/ddns-update.sh
4) ให้ IP เราออกเข้าจากเน็ทได้

สมมติว่า IP เครื่อง Client เรา 10.10.10.120 อยากจะให้เข้าเว็บระบุพอร์ท http://test.ddns.khun-teee.com:8888
ขั้นแรกให้ไปตั้งค่า Forward port ที่ Router ให้ Forward ไปที่ขานอกของ Fortigate

จากนั้นไป MAP IP ขานอกของ Fortigate -> (server-10.10.10.120)

และกำหนดที่ Firewall

Ok หลังจาก Allow Firewall แล้ว ลอง เข้าจากมือถือ หรือจาก Internet เส้นอื่นๆที่ไม่ใช่เส้นที่ใช้งาน
สำหรับ MAP IP ให้กับ local server IP 10.10.10.120 ดูก็จะสามารถเข้าใช้งานได้เป็นอันสำเร็จ
ทั้งนี้สามารถนำไปประยุกต์ใช้งานกับเครื่องที่เป็น Windows โดยเขียน PowerShell Script เพื่อทำการอัพเดทได้
Fortigate วิธีการทำ IPsec_VPN
วิธีการสร้าง IPsec บน Fortigate
1. ขั้นแรกให้ไปที่เมนู IPsec Wizard ตั้งชื่อการเชื่อมต่อ และเลือกเป็น Remote Access > Client-based > FortiClient

2. ที่ Incoming Interface ให้เลือกขา Wan ที่จะเข้ามาเชื่อมต่อ
และสร้าง Pre-shared Key (อันนี้สำคัญตอนสร้าง Connection จาก Client จดไว้ด้วย)
และเลือก User Group กลุ่มผู้ที่จะเข้ามาใช้งาน ในที่นี้ได้สร้างไว้แล้ว และเพิ่มผู้จะใช้งานเข้ากลุ่มแล้ว
ตัวอย่างการสร้างจาก SSL_VPN

3. เลือก Local Interface ในที่นี้เลือกเป็น ขาของ SD-WAN หรือถ้าใช้งาน Internet จากพอร์ทไหนก็เลือกที่พอร์ทนั้น เช่น WAN ส่วน Local Address เลือก All
ในส่วนของ Client Address Range อันนี้เป็นส่วนของ IP ที่ FortiClient จะได้รับแจกตอนที่เชื่อมต่อเข้ามา
ส่วนอื่นๆไม่ต้องแก้ไขอะไรกด Next ต่อไปเลย

4. อันนี้เลือกว่าจะอนุญาตให้ Forticlient เชื่อมต่อเข้ามาสามารถ Save รหัสผ่านได้ไหม กด Next ต่อไปได้เลย
5. ขั้นตอนสรุปภาพรวมของ Config ทั้งหมด กด Create เพื่อสร้าง IPSec Tunnels ได้เลย
6. หลังจากสร้างเสร็จแล้วก็จะมีให้สร้างเพิ่มไหม ในที่นี้ไม่สร้างเพิ่ม กด Show Tunnel List เพื่อแสดง ที่เราสร้างสำเร็จแล้ว
7. หลังจากที่เราสร้างเสร็จก็จะปรากฏ Tunnel ที่เราเพิ่งสร้างไป
8. ที่ Firewall จะปรากฏ Policy ที่ IPSec Wizard สร้างให้ซึ่งสามารถเชื่อมต่อเข้ามาได้แล้ว
9. จาก Firewall Policy ที่ Wizard สร้างให้ ถ้าเราต้องการจะ Allow เพิ่มเติมเพื่อให้สามารถใช้งานได้อย่างสมบูรณ์ เช่น ในที่นี้ต้องการจะ Allow Vlan10 เพื่อให้สามารถ เข้าใช้งาน Fortigate Management ได้ซึ่งจะอนุญาตให้เฉพาะ Vlan10 เท่านั้นเข้าได้ ไม่อนุญาตให้เข้าจาก Public ก็เพิ่ม Firewall Policy นี้เข้าไปด้วย
10. สรุป Firewall Policy ที่เกี่ยวข้องกับ IPSec
11. ที่ฝั่งของ FortiClient การตั้งค่าเชื่อมต่อ เลือกเป็น IPsec VPN

12. ใส่ชื่อ Domain ที่ต้องการจะเชื่อมต่อ

13.ใส่ Pre-sharedKey ที่ตั้งไว้ตามข้อ 2

14.ถ้าต่อจาก Router ก็ไป Forward Port มาที่ Fortigate


15. ทดสอบการเชื่อมต่อ

Fortigate วิธีการทำ SSL-VPN โดยใช้งาน Internet บ้าน (True,AIS,NT)
ปัญหาคือ Internet ที่ใช้งานตามบ้านไม่ได้ทำการ Fix IP ไว้ทำให้ได้รับ Public IP ไม่ซ้ำกันทำให้ยากที่จะ เข้าใช้งานจาก Public Interet
Diagram

ส่วนใหญ่ต้องแก้ปัญหาด้วยการใช้งาน Dynamic DNS ซึ่งต้องสมัครใช้งานเรื่อยๆ เช่น no-ip.com,dyndns.org
แต่ใน fortigate ได้มีบริการ dynamic dns ติดมาด้วย ดังนั้นจะต้องไปเปิดใช้งานเพื่อใช้คุณสมบัตินี้
ให้ไปที่เมนู Network > DNS

เปิดใช้งาน FortiGuard DDNS
เลือก Interface ( internet ที่ใช้งานอยู่)
เลือก Server ที่ ทาง Fortigate เปิดให้ใช้บริการ
Unique location (พิมพ์ชื่อที่ต้องการใช้งานโดยจะไม่ซ้ำกับชื่ออื่นๆที่ใช้งานไปแล้ว)
จากนั้นก็จะได้ ชื่อที่เราตั้ง . ตามด้วย Domain DDNS ที่ Fortigate ให้ใช้งานได้ พร้อมแสดง Public IP ของเราที่ใช้งาน
จากนั้นก็ไป Forward Port บน Router และ กำหนด VPN SSL Port ที่เราต้องการใช้งานในที่นี้จะกำหนดให้เป็นพอร์ท 10443

ไปสร้างกลุ่ม IP Address สำหรับใช้งาน VPN ว่างต้องการ Range IP เท่าไหร่ โดยสามารถใช้งาน Default ที่ระบบ
สร้างให้หรือสร้างเองก็ได้ ในที่นี้จะกำหนดเอง ตามรูป

ไปเพิ่มบน VPN Setting ด้วย

จากนั้นไปสร้างกลุ่มที่จะ VPN เข้ามาใช้งาน และ Account ที่จะใช้งาน Login
ชื่อกลุ่มตั้งเป็นชื่ออะไรก็ได้ และเลือกสมาชิคเข้ากลุ่มที่ต้องการใช้งาน vpn

ไปเพิ่มกลุ่มนี้ใน Authentication/Portal Mapping ด้วย

หลังจากตั้งค่า VPN Setting เสร็จแล้วก็ให้ไปตั้งค่าที่ Firewall Policy เพื่ออนุญาตให้ VPN เข้ามา
Outgoing Interface คือ VLAN ในออฟฟิศ VLAN10-10.10.10.0/24 ตาม Diagram
Destination ก็ใส่เป็น VLAN10

สุดท้ายอย่าลืมไป Forward Port จาก Router เพื่อใช้งาน พอร์ท 10443 ตามที่ตั้งค่า ไว้ใน VPN Setting
LAN Host คือ IP ของ Fortigate ขา WAN ที่ต่อจาก Router เพื่อออก Internet

หลังจาก Forward Port เรียบร้อยแล้วก็ทดสอบการใช้งาน โดยไป Download Fortinet Client มาติดตั้งและลองทดสอบต่อ VPN

สร้าง VPN Connection Name ตามชอบ
Server : ใส่เป็นชื่อที่ได้จองไว้ตอนเปิด FortiGuard DDNS. เสร็จแล้ว Save แล้วลองเขื่อมต่อดู

การ Map External Public IP ไปที่ Internal Server IP
การ Map External Public IP ไปที่ Internal Server IP เพื่อให้ Server
สามารถเข้าใช้งานได้จาก Internet และสามารถนำ IP Public ไป Map DNS เพื่อเข้าใช้งานผ่าน Domain Name ได้ขั้นแรกให้ทำการ Map External Public IP Address กับเครื่อง Server ของเราก่อน

จากนั้นก็นำไปใช้งานโดยไปกำหนด Policy ที่ Firewall
โดยกำหนดให้ Destination เป็น VirtualIPs ที่ได้ Map ไว้จากด้านบน
อย่าลืม Disable NAT ด้วย เพราะเราจะทำให้ได้ Log ที่วิ่งเข้ามาที่เครื่องได้ IP จริงจาก Public

การสร้าง Geo Location ให้เฉพาะ IP ภายในประเทศเข้าได้เท่านั้น
ขั้นแรกให้ไปที่เมนู Policy&Objects > Addresses และเลือก Type เป็น Geography / Thailand

การนำไปใช้ ให้เลือก Source จาก Address ที่ได้สร้างไว้

การตั้งค่า SD-WAN บน Fortigate เพื่อใช้งาน Internet มากกว่า 1 เส้น
เคสตัวอย่าง มี Internet ที่ใช้งาน อยู่ 2 เส้น โดยเป็น ISP คนละค่าย True และ NT
จุดประสงค์ของการตั้งค่าคือต้องการให้ True เป็น Internet เส้นหลัก จะสลับอัตโนมัติไปใช้งาน NT ในกรณีที่
True Fiber มีปัญหาไม่สามารถใช้งานได้ เมื่อ True กลับมาใช้งานได้แล้วก็จะสลับกลับมาใช้งานเป็นเส้นหลักเหมือนเดิม
1. ขั้นแรกตั้งค่า SD-WAN ให้สามารถใช้งาน Internet ได้ก่อน โดยตั้งค่าให้ต่อไปที่พอร์ท WAN1(True), WAN2(NT)
2. เพิ่ม Link ไปที่ SD-WAN ตามด้วย Cost ถ้ายิ่งน้อยคือจะให้ความสำคัญมาก่อนเป็นอันดับแรก
Statc Route ให้ชี้ Destination ไปที่ 0.0.0.0/0.0.0.0 เลือก Interface เป็น virtual-wan-link ตามตัวอย่าง
3. ถ้าจะ Monitor Link ด้วยก็ไห้ไปที่ SD-Wan เปิด SLA-target Ping
4. ข้อนี้สำคัญมากคือต้องการให้ True เป็น Link หลัก ถ้า Fiber ขาด ใช้งานไม่ได้ให้สลับไปใช้งาน NT และเมื่อ
ซ่อม Link กลับมาใช้งานได้แล้ว Fortigate ก็จะสลับกลับมาใช้งาน Link True เหมือนเดิม
Interface selection strategy > Manual
Interface preference > เลือก Interface True เป็น Link แรก เลือก NT เป็น Link ที่ 2 ตามลำดับ
5. สุดท้ายอย่าลืมเช็คหน้า Dash Board ตามสีว่า ใช้งาน Link ไหนอยู่
6. หรือเช็ค Speed test ที่เว็บ https://www.speedtest.net/th จะมีบอกว่า Internet ที่ใช้งานวิ่งออกไปที่ ISP จ้าวไหน
วิธีการเก็บ Log IP ของ Client บน Fortigate โดยไม่ NAT
จุดประสงค์ของการทำคือต้องการเก็บ Log IP Client ที่วิ่งผ่าน Fortigate โดยไม่ NAT

1. ที่ Router จะต้องทำ Static Route กลับมายังขา External ของ Fortigate ด้วย

2. ที่ Fortigate เอา NAT ออก ให้ NAT ครั้งเดียวที่ Router พอแล้วจะได้ไม่ต้อง NAT ซ้ำซ้อนกันสองรอบ
**ถ้าไม่ได้ทำ Static Route กลับมาที่ Router จะต้อง Enable NAT ด้วย ไม่งั้นออกเน็ทไม่ได้ และ Log ที่เห็นก็จะเจอแค่ IP Interface LAN ของ Fortigate ไม่ได้ระบุว่ามาจากเครื่องไหน **
ตั้งค่า IP Management ให้กับ HPE ArubaOS-CX – LAB
ต้องการเทส LAB สำหรับ HPE Switch Aruba AOS-CX
ขั้นแรกให้สมัครบัญชีของ HPE ก่อน https://networkingsupport.hpe.com/
จากนั้นให้ทำการ Login เข้า HPE Portal

และตรง Global Search ให้ค้นหาคำว่า switch simulator

จากนั้นเลือกดาวโหลดที่เป็น *ova.zip
แตกไฟล์ออกจะได้ ไฟล์ที่นามสกุล *.ova ให้ทำการเปิดกับ virtualbox

จะได้หน้าตาประมาณนี้ Interface เป็น bridge เพื่อที่จะให้สามารถเชื่อมต่อกับเครื่อง host ได้และสามารถต่อออกเน็ทได้
display ให้ตั้งเป็น vmsvga ตามตัวอย่าง

Adapter 1 ใน VirtualBox จะถูกจองไว้เป็น OOBM (Management Port) เสมอ (ใช้จัดการ Switch)
Adapter 2 เป็นต้นไป ถึงจะเป็น Data Port (1/1/1, 1/1/2, …)
การตั้งค่าที่ตัว VirtualBox (Hypervisor)
เพื่อให้ Port ข้อมูลออกอินเทอร์เน็ตได้ จะต้องขยับ Adapter ใน VirtualBox ใหม่:
ปิด VM ก่อน
Adapter 1: ปล่อยไว้เป็น Bridged (สำหรับเข้า SSH/Web UI จากเครื่องจริง)
Adapter 2 (สำคัญมาก): ต้องเปิดใช้งานและเลือกเป็น Bridged Adapter หรือ NAT (เพื่อให้ขา 1/1/1 ของ Switch เชื่อมกับโลกภายนอกได้)
Adapter 3 – 9: ตั้งค่าเป็น Internal Network หรือตามที่ต้องการใช้งาน
จากนั้นให้ทำการ StarVM
หลังจาก start เสร็จจะมีให้ Login โดย default จะชื่อผู้ใช้งาน admin รหัสผ่านไม่มี enter ผ่านได้เลย จากนั้นก็สามารถตั้งค่า อื่นๆได้เลย
# คำสั่งพื้นฐานของ AOS-CX
#conf t
#show interface mgmt
#interface mgmt
#ip (dhcp/static) 10.10.10.111/24
#default-gateway 10.10.10.254
#nameserver 8.8.8.8
#no shutdown
หรือ
#ip dns server-address 8.8.8.8 vrf mgmt
#show ip dns vrf mgmt
#ping 8.8.8.8 vrf mgmt
#username admin password plaintext StrongPassword123! role network-admin
#ssh server vrf mgmt
ถ้าอยากให้ SSH ได้เฉพาะ mgmt (แนะนำ)
ถ้าจะใช้ in-band ให้ใช้ vrf default
#ssh server port (เปลี่ยนจากพอร์ท 22 เป็น พอร์ทอื่นเพื่อความปลอดภัย)
#end
#write memory
#show run
#boot system (สำหรับสั่ง Reboot)
ถ้าอยากจะลบ config ออกทั้งหมดให้เป็น default factory
#erase startup-config
#boot system ถ้ามีข้อความถามว่า save ไหมให้กด n และจะถามอีกครั้งว่า Reboot ไหมให้กด y จะทำการ Reboot ให้
หลังจากได้ทำการ Reboot แล้วจะเข้าสู่ขั้นตอนการตั้งค่าใหม่อีกครั้งโดย default login เข้าจะชื่อ admin / ไม่มีรหัสผ่าน
สามารถดู ip ได้จากที่ login เข้าหน้า console ใช้คำสั่ง
#show interface mgmt เมื่อรู้ IP แล้วก็สามารถ ssh เข้าเพื่อทำการทดสอบ config ใหม่ได้เลยโดยใช้ User admin
ssh admin@ip (ไม่มีรหัสผ่าน)

สามารถเข้าดูการตั้งค่าหน้าเว็บได้ด้วยนะ









