وان سرور

هدفـمـند انتخـاب کنید

تضمین کیفیت

وانسرور با بیش از 10 سال سابقه در عرصه سرور و هاستینگ، سرویس و خدماتی با تجربه کاری بالاتر و با پشتیبانی تیمی متخصص خدمت شما ارائه میدهد.

تنوع سرویس

ارائه سرویس و خدمات متنوع، زیرساخت کسب و کار شما را راحتتر میکند.

ابتکارهای جدید

تنوع سرویس و کانفیگ با تیم متخصص و خلاق

نظرات مشتریان

برخی از نظرات مشتریان وان سرور

نـیـاز بــه راهنـمایـی داریـد؟

میتوانید با همکاران وان سرور سوالتان را مطرح کنید تا بهترین پیشنهادها را خدمتتان ارائه دهند..

وان سرور در رسانه ها

جزیره آموزشی

برخی از پستهای آموزشی پیشنهادی
آموزش راه اندازی K3S , GlusterFS , Load balancer

آموزش راه اندازی K3S , GlusterFS , Load balancer

آموزش راه اندازی K3S , GlusterFS , Load balancerدر این آموزش ما نحوه ی کوبرنتیس کلاستر با استفاده از K3S می پردازیم. K3S یک توزیع کوبرنتیس سبک و کم حجم است که برای سرور های دیتاسنتری هتزنر نظیر CX11 که مجموعه ی وان سرور ارائه می دهد، است. علاوه بر این، ما در این آموزش ، راه اندازی لود بالانسر ابری که بارگیری SSL و ارسال ترافیک به سیستم کوبرنتیس ما را انجام می دهد، را فرا خواهیم گرفت. ما یاد خواهید گرفت که چگونه با استفاده از GlusterFS یک فایل سیستم توزیع شده و تکراری راه اندازی کنیم.موارد مورد نیاز و پیش نیاز هاما در این آموزش فرض می کنیم، که شما از طریق شرکت وان سرور یک سرور دیتاسنتری هتزنر تهیه نمودید و از طریق سایت ما به این سرور مورد نظر دسترسی دارید.در این آموزش از اصطلاحات و موارد پیشفرض زیر استفاده شده است:دامنه : <example.com>کلید SSH (یا همان SSH Key): <your_ssh_key>توکن مخفی تصادفی(Random secret token): <your_secret_token>توکن API سرور دیتاسنتری: <hetzner_api_token>آدرس های IP (IPV4) :K3S Master: 10.0.0.2K3S Node 1: 10.0.0.3K3S Node 2: 10.0.0.4Hetzner Cloud Load Balancer: 10.0.0.254قدم اول - ایجاد شبکه پرایوتاول، ما یک شبکه پرایوت ایجاد می کنیم؛ همچنین که از نود های کوبرنتیس ما برای ارتباط با یکدیگر تشکیل شده اند استفاده می کنیم. ما از شبکه ی 10.0.0.0/16 برای سابنت استفاده می کنیم.hcloud network create --name network-kubernetes --ip-range 10.0.0.0/16hcloud network add-subnet network-kubernetes --network-zone eu-central --type server --ip-range 10.0.0.0/16قدم دوم - ایجاد گروه تعیین سطح و سرورهادر ادامه، یک گروه قرارگیری "گسترش" یا "spread" برای سرورهای خود و سپس ماشین های مجازی ایجاد می کنیم.قدم دوم بخش اول - ایجاد گروه قرار گیری spread (اختیاری)گروه تعیین سطح برای تضمین این است که ماشین های مجازی ما (VMs) بر روی هاست های مختلف ایجاد شوند، پس در این مورد، اگر هاست خراب شود و یا از دسترس خارج شود، هیچ کدام از ماشین های مجازی دیگر را تحت تاثیر خود قرار نمی دهد.hcloud placement-group create --name group-spread --type spreadقدم دوم بخش دوم - ایجاد ماشین های مجازیدر این جا ما از دبیان 10 استفاده می کنیم.hcloud server create --datacenter nbg1-dc3 --type cx11 --name master-1 --image debian-10 --ssh-key <your_ssh_key> --network network-kubernetes --placement-group group-spreadhcloud server create --datacenter nbg1-dc3 --type cx11 --name node-1 --image debian-10 --ssh-key <your_ssh_key> --network network-kubernetes --placement-group group-spreadhcloud server create --datacenter nbg1-dc3 --type cx11 --name node-2 --image debian-10 --ssh-key <your_ssh_key> --network network-kubernetes --placement-group group-spreadقدم سوم - ایجاد و اعلام فایروالخب، حالا که سرور های ما ایجاد شده اند و همچنین فعال هستند، با هم یک فایروال را ایجاد و آن را در ترافیک ورودی و خروجی محدود می کینم(به نوعی به تنظیم آن میپردازیم). ممکن ما فایروال را با توجه به نیاز های خودمان (نیاز باشد که) کمی کاستومایز کنیم.ایجاد فایروال:hcloud firewall create --name firewall-kubernetesاجازه یا Allow دادن ورودی SSH و ICMP :hcloud firewall add-rule firewall-kubernetes --description "Allow SSH In" --direction in --port 22 --protocol tcp --source-ips 0.0.0.0/0 --source-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow ICMP In" --direction in --protocol icmp --source-ips 0.0.0.0/0 --source-ips ::/0اجازه یا Allow دادن خروجی ICMP، DNS، HTTP، HTTPS و NTP:hcloud firewall add-rule firewall-kubernetes --description "Allow ICMP Out" --direction out --protocol icmp --destination-ips 0.0.0.0/0 --destination-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow DNS TCP Out" --direction out --port 53 --protocol tcp --destination-ips 0.0.0.0/0 --destination-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow DNS UDP Out" --direction out --port 53 --protocol udp --destination-ips 0.0.0.0/0 --destination-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow HTTP Out" --direction out --port 80 --protocol tcp --destination-ips 0.0.0.0/0 --destination-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow HTTPS Out" --direction out --port 443 --protocol tcp --destination-ips 0.0.0.0/0 --destination-ips ::/0hcloud firewall add-rule firewall-kubernetes --description "Allow NTP UDP Out" --direction out --port 123 --protocol udp --destination-ips 0.0.0.0/0 --destination-ips ::/0اعمال رول های فایروال بر روی هر سه سرورها:hcloud firewall apply-to-resource firewall-kubernetes --type server --server master-1hcloud firewall apply-to-resource firewall-kubernetes --type server --server node-1hcloud firewall apply-to-resource firewall-kubernetes --type server --server node-2قدم چهارم - نصب K3Sخب خب! الان زمان K3S رسیده. قبل از این که نود اصلی و نود های عامل را آماده کنیم، اول سیستم را آپگرید کرده و AppArmor را نصب می کنیم. به سرور مجازی های ایجاد شده SSH کرده و سپس دستور های زیر را بر روی همه ی آن ها اجرا می کنیم:apt updateapt upgrade -yapt install apparmor apparmor-utils -yقدم چهارم بخش اول - نصب K3S بر روی نود اصلیبه نود اصلی (یا مستر نود) SSH می کنیم، و دستورات زیر را برای نصب و اجرا K3S سرور اجرا می کنیم:curl -sfL https://get.k3s.io | sh -s - server \ --disable-cloud-controller \ --disable metrics-server \ --write-kubeconfig-mode=644 \ --disable local-storage \ --node-name="$(hostname -f)" \ --cluster-cidr="10.244.0.0/16" \ --kube-controller-manager-arg="address=0.0.0.0" \ --kube-controller-manager-arg="bind-address=0.0.0.0" \ --kube-proxy-arg="metrics-bind-address=0.0.0.0" \ --kube-scheduler-arg="address=0.0.0.0" \ --kube-scheduler-arg="bind-address=0.0.0.0" \ --kubelet-arg="cloud-provider=external" \ --token="<your_secret_token>" \ --tls-san="$(hostname -I | awk '{print $2}')" \ --flannel-iface=ens10برای اطلاعات بیشتر در باره ی K3S می توانید، به اسناد ارائه شده یا همان داکیومنشن آن (در این لینک) مراجعه کنید. اما به طور خلاصه :ما برای ذخیره ی بیشتر مقداری از حافظه؛ metrics server را غیر فعال می کنیم.ما ذخیره سازی لوکال را غیر فعال می کنیم چون قرار است از GlusterFS استفاده کنیم.ما CIDR کلاستر را بر روی 10.244.0.0/16 تنظیم می کنیم.ما سه مورد یعنی : Kube Controller ، همچنین Kube Proxy ، و Kube Scheduler را بر روی هر آدرسی به حالت پذیرا قرار می دهیم(با توجه به فایروال)ما رمز توکن شیر شده را به مورد فوق تنظیم کرده ایم، یعنی : <your_secret_token>قدم چهارم بخش دوم - نصب Hetzner Cloud Controller Managerهنوز بر روی نود اصلی قرار داریم، برای نصب این مورد از دستور زیر استفاده می کنیم:kubectl -n kube-system create secret generic hcloud --from-literal=token=<hetzner_api_token> --from-literal=network=network-kuberneteskubectl apply -f https://github.com/hetznercloud/hcloud-cloud-controller-manager/releases/latest/download/ccm-networks.yamlقدم چهارم بخش سوم - نصب کنترل کننده ی ارتقا سیستم (اختیاری)دستور زیر آپگرید کننده ی K3S را ارائه می دهد:kubectl apply -f https://github.com/rancher/system-upgrade-controller/releases/latest/download/system-upgrade-controller.yamlقدم چهارم بخش چهارم - نصب K3S بر روی نود عاملاکنون که سرور K3S ما راه اندازی شده است، به دو نود عامل SSH کرده و دستورات زیر را برای نصب K3S و ارتباط آن با سرور اجرا می کنیم:curl -sfL https://get.k3s.io | K3S_URL=https://10.0.0.2:6443 K3S_TOKEN=<your_secret_token> sh -s - agent \ --node-name="$(hostname -f)" \ --kubelet-arg="cloud-provider=external" \ --flannel-iface=ens10قدم پنجم - نصب GlusterFS (اختیاری)GlusterFS یک نرم افزار رایگان و اوپن سورس (منبع باز) سیستم فایل شبکه به صورت مقیاس پذیر است. می‌توان از آن برای تکثیر فایل‌ها در تمام ماشین‌های مجازی خود استفاده کنیم تا pod های ما بدون توجه به اینکه در کدام نود در حال اجرا هستند، به ذخیره‌سازی دائمی خود دسترسی داشته باشند.قدم پنجم بخش اول - آماده کردن تمام نود هابه هر 3 سرور SSH کرده و دستورات زیر را برای نصب، فعال نمودن و اجرا کردن، سرور Gluster بر روی همه ی ماشین ها اجرا می کنیم:wget -O - https://download.gluster.org/pub/gluster/glusterfs/9/rsa.pub | apt-key add -echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/9/LATEST/Debian/buster/amd64/apt buster main > /etc/apt/sources.list.d/gluster.listapt update && apt install -y glusterfs-serversystemctl enable glusterd && systemctl start glusterdفایل سیستم کنترلی Gluster در پوشه ای به نام brick قرار دارد. همچنین توسط GlusterFS نصب شده است. با دستورات زیر دایرکتوری های لازم را ایجاد کنیم:mkdir -p /data/glusterfs/k8s/brick1mkdir -p /mnt/gluster-k8sقدم پنجم بخش دوم - تنظیم کلاسترفقط بر روی نود اصلی، 2 نود دیگر را به عنوان همتا اضافه می کنیم:gluster peer probe 10.0.0.3gluster peer probe 10.0.0.4تایید کردن وضعیت بر روی نود اصلی و نود های فرعی:gluster peer statusقدم پنجم بخش سوم - ایجاد volumeدر نود اصلی خودمان، دستور زیر را برای ایجاد و شروع یک volume تکراری اجرا می کنیم:gluster volume create k8s replica 3 \ 10.0.0.2:/data/glusterfs/k8s/brick1/brick \ 10.0.0.3:/data/glusterfs/k8s/brick1/brick \ 10.0.0.4:/data/glusterfs/k8s/brick1/brick \ forcegluster volume start k8sgluster volume infoقدم پنجم بخش چهارم - اجرا کردن GlusterFS volumeبر روی هر سه نود GlusterFS volume جدید اجرا شده را مونت می کنیم:echo "127.0.0.1:/k8s /mnt/gluster-k8s glusterfs defaults,_netdev 0 0" >> /etc/fstabmount /mnt/gluster-k8sقدم ششم - تنظیم لود بالانس (load balancing)در اینجا ما به طور مثال از لود بالانسر هتزنر SSL offloading و برای مسیریابی رکوئست های HTTP به راه اندازی K3S استفاده می کینم.قدم ششم بخش اول - فعال کردن پروتکل پراکسی در Traefikبا استفاده از دستورات زیر این عمل را انجام می دهیم:cat <<EOF > /var/lib/rancher/k3s/server/manifests/traefik-config.yamlapiVersion: helm.cattle.io/v1kind: HelmChartConfigmetadata: name: traefik namespace: kube-systemspec: valuesContent: |- additionalArguments: - "--entryPoints.web.proxyProtocol.trustedIPs=10.0.0.254" - "--entryPoints.web.forwardedHeaders.trustedIPs=10.0.0.254"EOFقدم ششم بخش دوم - ایجاد load balancer (متعادل کننده بار)متعادل کننده بار یا همان لود بالانسر را ایجاد کنیم و با استفاده از IP پرایوت ثابت 10.0.0.254 آن را به شبکه پرایوت یا خصوصی متصل می کنیم:hcloud load-balancer create --type lb11 --location nbg1 --name lb-kuberneteshcloud load-balancer attach-to-network --network network-kubernetes --ip 10.0.0.254 lb-kubernetesسه ماشین مجازی خودمان را به عنوان تارگت ها اضافه می کنیم و مطمئن می شویم که ترافیک با استفاده از شبکه پرایوت هدایت می شود:hcloud load-balancer add-target lb-kubernetes --server master-1 --use-private-iphcloud load-balancer add-target lb-kubernetes --server node-1 --use-private-iphcloud load-balancer add-target lb-kubernetes --server node-2 --use-private-ipبا استفاده از Let's Encrypt یک گواهی یا همان سرتیفیکیت برای <example.com> ایجاد می کنیم و <certificate_id> را می گیریم:hcloud certificate create --domain <example.com> --type managed --name cert-t1hcloud certificate listبا استفاده از پروتکل پروکسی، سرویس HTTP را برای <example.com> اضافه می کنیم و بررسی سلامت را فعال می کنیم:hcloud load-balancer add-service lb-kubernetes --protocol https --http-redirect-http --proxy-protocol --http-certificates <certificate_id>hcloud load-balancer update-service lb-kubernetes --listen-port 443 --health-check-http-domain <example.com> قدم هفتم - تست نمودن setup انجام شدهتنظیمات و برپایی و ست آپ ما که مربوط به K3S است به اتمام رسیده است. خب وقت این رسیده که از nginx و سرویس HTTP توسط K3S استفاده کنیم.قدم هفتم بخش اول - نوشتن در GlusterFS volumeیک index.html ایجاد می کنیم:mkdir /mnt/gluster-k8s/webtest1echo "Hello World!" > /mnt/gluster-k8s/webtest1/index.htmlقدم هفتم بخش دوم - اسقرار یک وب سرورnginx را مستقر و ایجاد کنید، GlusterFS volume را برای محتوای ثابت نصب می کنیم، پورت HTTP 80 را با استفاده از یک سرویس در معرض دید (انتشار) قرار می دهیم و یک مسیر ورودی Traefik برای دامنه خود ایجاد می کینم :cat <<"EOF" | kubectl apply -f -apiVersion: apps/v1kind: Deploymentmetadata: name: webtest1spec: replicas: 1 selector: matchLabels: app: webtest1 template: metadata: labels: app: webtest1 spec: volumes: - name: volume-webtest1 hostPath: path: "/mnt/gluster-k8s/webtest1" containers: - image: nginx name: nginx ports: - name: port-nginx containerPort: 80 volumeMounts: - mountPath: "/usr/share/nginx/html" name: volume-webtest1 readOnly: false---apiVersion: v1kind: Servicemetadata: name: webtest1spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: webtest1 type: ClusterIP---apiVersion: traefik.containo.us/v1alpha1kind: IngressRoutemetadata: name: webtest1spec: entryPoints: - web routes: - match: Host(`<example.com>`) kind: Rule services: - name: webtest1 port: 80EOFقدم هفتم بخش سوم - دسترسی به وب سایتاتمام کار، همچنین ما باید به وب سایت مان https://<example.com> دسترسی داشته باشیم.جمع بندیما با موفقیت یک کلاستر K3S Kubernetes را با یک نود سرور و دو نود عامل راه اندازی کردیم. متعادل کننده بار یا همان لود بالانسر ترافیک را به سیستم ما ارائه می دهد و بارگذاری HTTPS را نیز انجام داده و ما آماده هستیم تا مقداری حجم کار را روی K3S خود قرار دهیم.خب، دوستان وان سروری اگر سوال ، پیشنهاد و انتقادی هست در خدمتیم. میتونید سوال ها تون رو در قسمت نظرات بپرسین تا خدمتتون پاسخ بدیم.

سه‌شنبه, 25 آبان 1400

ادامه مطلب
نحوه ی تغییر یا تنظیم منطقه ی زمانی (Timezone) در CentOS 7

نحوه ی تغییر یا تنظیم منطقه ی زمانی (Timezone) در CentOS 7

در CentOS ، منطقه ی زمانی در هنگام نصب تنظیم می شوند. اما به آسانی هم می توان در زمان دیگری هم تغییرات مورد نظر را انجام داد.استفاده ی صحیح از تایم زون یا منطقه ی زمانی برای بسیاری از وظایف ، عملکرد ها و پردازش های سیستم حیاتی است. برای مثال ، cron daemon از تایم زون یا منطقه ی زمانی سیستم برای اجرای کرون جاب ها (cron job) استفاده می کند، و در بررسی لاگ های سیستم (گزارش ها) مسئله ی یا منطقه ی زمانی بسیار حائز اهمیت است چرا که بر اساس همان تایم زون دسته بندی و بررسی می شوند.در این آموزش ما به بررسی نحوه ی تغییر یا تنظیم منطقه ی زمانی (Timezone) در CentOS 7 می پردازیم.پیش نیاز هابرای این که بتوانیم timezone سیستم را تغییر دهیم باید حتما با یوزری که دارای سطح دسترسی روت یا sudo است به سیستم لاگین یا ورود کنیم.بررسی منطقهی زمانی فعلیدر CentOS و همچنین بیشتر توزیع های لینوکس امروزی ، ما می توانیم با دستور timedatectl هم منطقه ی زمانی و هم زمان را مشاهده و هم آن را تغییر دهیم.timedatectlبا توجه به خروجی زیر می توانیم مشاهده کنیم که منطقه زمانی سیستم بر روی UTC تنظیم شده است : Local time: Wed 2019-02-06 22:43:42 UTC Universal time: Wed 2019-02-06 22:43:42 UTC RTC time: Wed 2019-02-06 22:43:42 Time zone: Etc/UTC (UTC, +0000) NTP enabled: noNTP synchronized: yes RTC in local TZ: no DST active: n/aمنطقه زمانی سیستم با پیوند نمادین /etc/localtime به یک شناسه منطقه زمانی باینری در پوشه /usr/share/zoneinfo پیکربندی می‌شود. بنابراین، همچنین می توان برای بررسی تایم زون مسیری که همان پیوند نمادین به آن اشاره می کند را با دستور ls نمایش داد:ls -l /etc/localtimeخروجی :lrwxrwxrwx. 1 root root 29 Dec 11 09:25 /etc/localtime -> ../usr/share/zoneinfo/Etc/UTCتغییر Timezone در CentOS 7 :قبل از تغییر منطقه ی زمانی ، ما باید نام اصلی و طولانی آن را پیدا کنیم. قرار داد نام گذاری تایم زون معمولا در فرمت "Region/City" یا "منطقه/شهر" است.برای لیست کردن تمامی تایم-زون های در دسترس ، ما می توانیم یا لیست تمامی فایل های پوشه ی /usr/share/zoneinfo را مشاهده کنیم و یا مجددا از دستور timedatectl استفاده کنیم:timedatectl list-timezonesخروجی :...America/TijuanaAmerica/TorontoAmerica/TortolaAmerica/VancouverAmerica/WhitehorseAmerica/Winnipeg...هنگامی که تشخیص دادیم کدام تایم زون برای مکان و منطقه ی ما دقیق است، دستور زیر را در حالت کاربر sudo اجرا می کنیم:sudo timedatectl set-timezone your_time_zoneبرای مثال، زمانی که میخواهیم منطقه ی زمانی سیستم را به America/Toronto تغییر بدهیم از دستور زیر استفاده می کنیم:sudo timedatectl set-timezone America/Torontoسپس، برای تایید تغییرات، باید دستور timedatectl را وارد کنیم:timedatectl Local time: Wed 2019-02-06 17:47:10 EST Universal time: Wed 2019-02-06 22:47:10 UTC RTC time: Wed 2019-02-06 22:47:10 Time zone: America/Toronto (EST, -0500) NTP enabled: noNTP synchronized: yes RTC in local TZ: no DST active: no Last DST change: DST ended at Sun 2018-11-04 01:59:59 EDT Sun 2018-11-04 01:00:00 EST Next DST change: DST begins (the clock jumps one hour forward) at Sun 2019-03-10 01:59:59 EST Sun 2019-03-10 03:00:00 EDTتغییر تایم زون با استفاده از یک پیوند نمادین یا (Symlink)اگر از نسخه قدیمی‌تری از CentOS استفاده می‌ کنیم و دستور timedatectl روی سیستم مورد نظر وجود نداشته باشد، می‌توان با پیوند نمادین /etc/localtime به فایل تایم زون در پوشه ی /usr/share/zoneinfo، منطقه زمانی را تغییر داد.فایل یا پیوند نمادین فعلی مورد نظر یعنی /etc/localtime را با دستور زیر پاک می کنیم:sudo rm -rf /etc/localtimeتایم زون یا منطقه ی زمانی مورد نظز را که در نظر داریم پیکربندی کنیم شناسایی کرده و یک پیوند نمادین ایجاد می کنیم:sudo ln -s /usr/share/zoneinfo/America/Toronto /etc/localtimeدر مرحله ی بعدی می توانیم یا با لیست کردن فایل /etc/localtime و یا با استفاده از دستور date این کار را تایید کنیم:dateخروجی :Wed Feb 6 17:52:58 EST 2019جمع بندی:خب ، ما در این آموزش به بررسی چگونگی تغییر تایم زون یا همان منطقه ی زمانی در سیستم CentOS پرداختیم.درصورت هرگونه سوال یا مشکل از طریق کامنت با ما در ارتباط باشید.

یکشنبه, 28 آذر 1400

ادامه مطلب
آموزش استفاده از TCP traceroute

آموزش استفاده از TCP traceroute

آموزش استفاده از TCP traceroutetrace route چیست ؟فرض کنید اتصال شما به یک سرور از دست میره. اولین احتمالی که هست خاموش شدن یا مشکل کانفیگ سرور هستش. ولی زمانی که اینترنت خودتون رو تغییر بدید، مثلا به جای ایرانسل از همراه اول استفاده می کنید اتصال برقرار میشه.! اولین احتمالی که هست مشکل در مسیر ارسال پکت هاست. برای چک کردن مسیر ارسال از tracet route استفاده میکنن. trace route چطوری کار میکنه ؟ زمان ارسال پکت های چیزی بهشون اضافه میشه به نام TTL که مخفف Time to Live هستش. یعنی مدت زمان زنده ماندن پکت شما و یک عددی رو داخل خودش نگاه میداره، این عدد میتونه 1 تا 255 باشه ( این محدودیت به دلیل مقدار حافظه ای هست که برای این عدد در نظر گرفته شده ). البته معیارش زمان نیست معیار تعداد روتر هایی داخل مسیر هستش خب این یعنی چی ؟ فرض میکنیم شما پکتی رو ارسال میکنید با TTL = 50 و ip =1.1.1.1 زمانی که پکت از مودم شما عبور میکنه. TTL تغییر میکنه به 49 ، وقتی از روتر بالا دستی مودم شما عبور میکنه TTL میشه 48 و این روند ادامه پیدا میکنه تا زمانی که برسه به مقصد که 1.1.1.1 هست.پس TLL بعد از گذاشت از هر روتر یکی ازش کم میشه حالا بیایم فرض کنیم قبل از این که پکت به مقصد ما برسه TTL پکت ما داخل یکی از روتر ها 0 بشه ، حالا چه اتفاقی می افته ؟پکت حذف میشه ولی این آخر کار نیست. روتری که پکت ما رو حذف کرده یک پیام برای ما ارسال میکنه این پیام با پروتکل ICMP که ازش برای عیب یابی در شبکه استفاده میکنن ارسال میشه این پروتکل در لایه network کار میکنه این قسمت رو دقت کنید ! هر نوع پکتی ارسال کنید با هر پروتکلی ( icmp،udp،tcp) زمانی که TTL =0 بشه پیامی که از سمت روتر برای ما ارسال میشه icmp هستش داخل این پیام آدرس ip روتر نوشته شده البته اطلاعات دیگه ای هم به ما میده حالا اگر ما بخوایم آدرس تمام روتر های مسیر رو پیدا کنیم میتونیم یک پکت درست کنیم با TTL که خودمون مشخص کردیم به این صورت که اگر بخوایم ip روتر اول رو پیدا کنیم پکتی ارسال میکنیم با TTL = 1 و زمانی که به روتر اول میرسه TTL میشه 0 و روتر برای ما یک پیام ارسال میکنه ، حالا اگه بخوایم ip روتر دوم رو پیدا کنیم پکتی ارسال میکنیم با TTL = 2 چطوری از trace route استفاده کنیم ؟ ویندوز : در ویندوز باید وارد cmd بشید و از دستور tracert استفاده کنید به این صورت tracert 1.1.1.1این دستور با پروتکل icmp کار میکنه لینوکس :در لینوکس از دو دستور traceroute و tracepath میتونید استفاده کنید tracepath داخل سیستم عامل موجوده ولی برای traceroute باید برنامه نصب بشه دستور نصب :ubuntu : apt install traceroutecentos : yum install tracerouteهر دو دستور از پورتکل udp برای trace استفاده میکنن. با سویچ -T در traceroute میتونید از پروتکل tcp هم استفاده کنید.آموزش استفاده از TCP traceroute در ویندوزبرای استفاده از tracetcp در ویندوز به دو نرم افزار WinPcap و tracetcp نیاز دارید (لینک دانلود نرم افزار ها )ابتدا نرم افزار WinPcap را نصب کنید سپس نرم افزار tracetcp را داخل مسیر C:\Windows\System32 قرار بدینبعد از نصب وارد cmd بشید و دستور tracetcp را با ip مدنظرتون وارد کنید آموزش ویدیویی استفاده از TCP traceroute:.h_iframe-aparat_embed_frame{position:relative;} .h_iframe-aparat_embed_frame .ratio {display:block;width:100%;height:auto;} .h_iframe-aparat_embed_frame iframe {position:absolute;top:0;left:0;width:100%; height:100%;}

سه‌شنبه, 30 آذر 1400

ادامه مطلب