Как изменить ttl linux debian

Данные по сети передаются пакетами. При чём эти пакеты, прежде чем попадут адресату, проходят несколько других сетевых узлов чтобы добраться сначала в

Данные по сети передаются пакетами. При чём эти пакеты, прежде чем попадут адресату, проходят несколько других сетевых узлов чтобы добраться сначала в локальную сеть адресата, а потом уже непосредственно к нему. Иногда такие пакеты могут выбирать неверный маршрут и блудить. Чтобы они не блудили по сети вечность создавая ненужную нагрузку, у каждого пакета есть своё время жизни.

За время жизни пакета отвечает параметр TTL. Это количество узлов, которые может пройти пакет, прежде, чем он будет уничтожен. При прохождении каждого узла значение  TTL для пакета уменьшается, пока не будет равным нулю. Таким образом чем больше TTL, тем более запутанные сети может проходить пакет. В этой статье мы рассмотрим как изменить TTL Linux.

Такими низкоуровневыми параметрами сети как TTL в Linux управляет ядро. Поэтому и настраивать его надо с помощью интерфейса настройки ядра. Но давайте сначала посмотрим какой TTL используется сейчас в вашей системе. Для этого можно воспользоваться командой ping:

ping 127.0.0.1

В информации об отправке каждого пакета отображается TTL, с которым он был отправлен. В данном случае используется значение 64. Для Windows применяется значение TTL 128. Обычно этого вполне достаточно, поскольку между большинством узлов сети не больше 20-30 маршрутизаторов, которые необходимо пройти. Вряд-ли вам придется менять TTL чтобы пакеты смогли достигать нужной вам цели, но зато это может понадобится для обхода блокировок сотовых операторов и решения тому подобных задач.

Чтобы изменить TTL надо изменить значение параметра net.ipv4.ip_default_ttl. Для этого можно воспользоваться такой командой:

sudo sysctl -w net.ipv4.ip_default_ttl=65

Для того чтобы изменения сохранились после перезагрузки можно прописать эту строчку настроек в файл /etc/sysctl.conf:

sudo vi /etc/sysctl.conf

net.ipv4.ip_default_ttl=65

После этого ваш TTL будет 65:

Если вы не хотите менять параметры ядра, можно модифицировать TTL в пакеты при его прохождении через сетевой фильтр iptables. Для этого выполните такую команду:

iptables -t mangle -A POSTROUTING -j TTL --ttl-set 65

Это тоже будет работать. Как видите, смена TTL Linux выполняется совсем не сложно. Если у вас остались вопросы, спрашивайте в комментариях!

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

blee

Posts: 3
Joined: 2020-03-29 03:40

nftables mangle to set / change ttl hoplimit on host firewal

#1

Post

by blee » 2020-03-29 03:51

I have been trying and researching how to get the same output for

Code: Select all

iptables -t mangle -A PREROUTING -j TTL --ttl-set 65

for nftables.
The closest i am come to something is flowtables.
Can anyone help or point in direction of changing hoplimit to 65 or any number for that reason?
i have changed the TTL on raspbian host machine but this still does not effect clients coming through.
I have also tried putting this iptables setting as it was once translated but it does nothing.

Thank you.
forgive the messy comments

Code: Select all


## this assumes wwan0 is LAN and eth0 is WAN

flush ruleset

## change these

define wan = wwan0
define lan = eth0

table inet filter {
	chain input {
		type filter hook input priority 0; policy drop;
		
		# established/related connections
		ct state established,related accept

		# loopback interface
		iifname lo accept

		## icmpv6 is a critical part of the protocol, we just
		## accept everything, you can lookin to making this
		## more restrictive but be careful
		ip6 nexthdr icmpv6 accept

		# we are more restrictive for ipv4 icmp
		ip protocol icmp icmp type { destination-unreachable, router-solicitation, router-advertisement, time-exceeded, parameter-problem } accept

		ip protocol igmp accept

		ip protocol icmp meta iifname eth0 accept

		## ntp protocol accept from LAN
		udp dport ntp iifname eth0 accept

		## DHCP accept
		iifname eth0 accept 
		#ip protocol udp udp sport bootpc udp dport bootps log prefix "FIREWALL ACCEPT DHCP: " accept

		## DHCPv6 accept from LAN
		#iifname eth0 udp sport dhcpv6-client udp dport dhcpv6-server accept

		## allow dhcpv6 from router to ISP
		#iifname eth0 udp sport dhcpv6-server udp dport dhcpv6-client accept

		# SSH (port 22), limited to 10 connections per minute,
		# you might prefer to not allow this from WAN for
		# OpenWrt, in which case you should also add an
		# iifname eth0 filter in the front so we're only
		# allowing from LAN
		
		ct state new tcp dport ssh meter ssh-meter4 {ip saddr limit rate 10/minute burst 15 packets} accept
		ct state new ip6 nexthdr tcp tcp dport ssh meter ssh-meter6 {ip6 saddr limit rate 10/minute burst 15 packets} accept 

		## allow access to LUCI from LAN
		iifname eth0 tcp dport {http,https} accept

		## DNS for main LAN, we limit the rates allowed from each LAN host to reduce chance of denial of service
		iifname eth0 udp dport domain meter dommeter4 { ip saddr limit rate 240/minute burst 240 packets} accept
		iifname eth0 udp dport domain meter dommeter6 { ip6 saddr limit rate 240/minute burst 240 packets} accept

		iifname eth0 tcp dport domain meter dommeter4tcp { ip saddr limit rate 240/minute burst 240 packets} accept
		iifname eth0 tcp dport domain meter dommeter6tcp { ip6 saddr limit rate 240/minute burst 240 packets} accept

		## allow remote syslog input? you might want this, or remove this
		
		iifname eth0 udp dport 514 accept

		counter log prefix "FIREWALL INPUT DROP: " drop
	}

	chain forward {
	    type filter hook forward priority 0; policy drop;

	    ct state established,related accept

	    iifname lo accept
	    iifname eth0 oifname wwan0 accept ## allow LAN to forward to WAN

	    counter log prefix "FIREWALL FAIL FORWARDING: " drop
	}
#	chain prerouting {
#           type route hook prerouting priority 0; policy drop;

           ##change ttl to 65
#           iifname eth0 ip ttl 65

            # established/related connections
#            ct state established,related accept

#            counter log prefix "FIREWALL FAIL FORWARDING: " drop
#        }

}

## masquerading for ipv4 output on WAN
table ip masq {
	chain masqout {
	    type nat hook postrouting priority 0; policy accept;
	    oifname wwan0 masquerade
	    
	}

	## this empty table is required to make the kernel do the unmasquerading
	chain masqin {
	    type nat hook prerouting priority 0; policy accept;

	}
	
}


blee

Posts: 3
Joined: 2020-03-29 03:40

Re: nftables mangle to set / change ttl hoplimit on host fir

#2

Post

by blee » 2020-03-29 18:01

So this portion ended up not being needed:

Code: Select all

chain prerouting {
           type route hook prerouting priority 0; policy drop;

           ##change ttl to 65
           iifname eth0 ip ttl set 65    
           }
  

For some estranged reason if I put the ‘iptables’ command in to att mangle, it adds it and starts working. If I restart nftables it is removed.

when I add ‘iptables’ entry then run

I get this table added to my output:

Code: Select all

table ip mangle {
	chain PREROUTING {
		type filter hook prerouting priority -150; policy accept;
		counter packets 93541 bytes 74006031 # TTL set to 65
	}

	chain INPUT {
		type filter hook input priority -150; policy accept;
	}

	chain FORWARD {
		type filter hook forward priority -150; policy accept;
	}

	chain OUTPUT {
		type route hook output priority -150; policy accept;
	}

	chain POSTROUTING {
		type filter hook postrouting priority -150; policy accept;
	}
}

After I restart nftables, this table is removed.
If I try to copy and paste it into the /etc/nftables.conf file it does not work.

It does not show when running iptables -L
Where is this entry saved??

Also, the ‘packets’ and ‘bytes’ values keep increasing as traffic is passed.


I need to change the default TTL of TCP/IP packets sent from my Ubuntu computer. I found the solution for Windows:

  1. To make reg-file:

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservic esTcpipParameters]
    "DefaultTTL"=dword:00000081
    
  2. To execute this commands in console:

    netsh int ipv4 set glob defaultcurhoplimit=129
    netsh int ipv6 set glob defaultcurhoplimit=129
    

The question is how should I translate this solution for Ubuntu?

Eric Carvalho's user avatar

Eric Carvalho

53k102 gold badges134 silver badges161 bronze badges

asked Aug 29, 2015 at 11:31

kostiamol's user avatar

0

To change the default TTL of TCP/IP packets sent from your Linux computer you can run the following command:

sudo sysctl -w net.ipv4.ip_default_ttl=129

Or:

echo 129 | sudo tee /proc/sys/net/ipv4/ip_default_ttl

Or:

sudo bash -c 'echo 129 > /proc/sys/net/ipv4/ip_default_ttl'

But you have to run one of those commands whenever the computer boots. To make this setting persistent across reboots you could append the following line to the file /etc/sysctl.conf:

net.ipv4.ip_default_ttl=129

You should do the same with ipv6 instead of ipv4 if you want to change the settings for ipv6 as well.

Andrey Regentov's user avatar

answered Sep 4, 2015 at 17:26

Eric Carvalho's user avatar

Eric CarvalhoEric Carvalho

53k102 gold badges134 silver badges161 bronze badges

2

for IPv6:

The other answer here says, «You should do the same with ipv6» but this does not work. IPv6 uses net.ipv6.conf.all.hop_limit and net.ipv6.conf.default.hop_limit. However, these values are overwritten by interface-specific names such as net.ipv6.conf.eth0.hop_limit. To change them all, use:

for N in $(sudo sysctl --all 2>/dev/null |grep -Eo "^net.ipv6.conf.[^.]+.hop_limit"); do
    sudo sysctl --write "$N=128"
done

where 128 is the desired new value.

To make this permanent (survive reboot) for IPv4 and IPv6:

sudo sysctl --all 2>/dev/null |grep -E -e "^net.ipv6.conf.[^.]+.hop_limit" -e "net.ipv4.ip_default_ttl" |sudo tee /etc/sysctl.d/11-custom-ttl-hop.conf

answered Jan 20, 2022 at 9:15

bitinerant's user avatar

bitinerantbitinerant

6796 silver badges9 bronze badges

Содержание

  1. Как изменить TTL в Linux
  2. Изменение TTL в Linux
  3. Изменить ttl linux debian
  4. Значение ttl
  5. Как изменить ttl windows
  6. Как изменить ttl Ubuntu, Debian
  7. Как изменить ttl MacOS
  8. Популярные Похожие записи:
  9. 22 Responses to Как по ping узнать операционную систему хоста
  10. Как навсегда изменить TTL в Ubuntu?

Как изменить TTL в Linux

Данные по сети передаются пакетами. При чём эти пакеты, прежде чем попадут адресату, проходят несколько других сетевых узлов чтобы добраться сначала в локальную сеть адресата, а потом уже непосредственно к нему. Иногда такие пакеты могут выбирать неверный маршрут и блудить. Чтобы они не блудили по сети вечность создавая ненужную нагрузку, у каждого пакета есть своё время жизни.

За время жизни пакета отвечает параметр TTL. Это количество узлов, которые может пройти пакет, прежде, чем он будет уничтожен. При прохождении каждого узла значение TTL для пакета уменьшается, пока не будет равным нулю. Таким образом чем больше TTL, тем более запутанные сети может проходить пакет. В этой статье мы рассмотрим как изменить TTL Linux.

Изменение TTL в Linux

Такими низкоуровневыми параметрами сети как TTL в Linux управляет ядро. Поэтому и настраивать его надо с помощью интерфейса настройки ядра. Но давайте сначала посмотрим какой TTL используется сейчас в вашей системе. Для этого можно воспользоваться командой ping:

В информации об отправке каждого пакета отображается TTL, с которым он был отправлен. В данном случае используется значение 64. Для Windows применяется значение TTL 128. Обычно этого вполне достаточно, поскольку между большинством узлов сети не больше 20-30 маршрутизаторов, которые необходимо пройти. Вряд-ли вам придется менять TTL чтобы пакеты смогли достигать нужной вам цели, но зато это может понадобится для обхода блокировок сотовых операторов и решения тому подобных задач.

Чтобы изменить TTL надо изменить значение параметра net.ipv4.ip_default_ttl. Для этого можно воспользоваться такой командой:

sudo sysctl -w net.ipv4.ip_default_ttl=65

Для того чтобы изменения сохранились после перезагрузки можно прописать эту строчку настроек в файл /etc/sysctl.conf:

sudo vi /etc/sysctl.conf

После этого ваш TTL будет 65:

Если вы не хотите менять параметры ядра, можно модифицировать TTL в пакеты при его прохождении через сетевой фильтр iptables. Для этого выполните такую команду:

iptables -t mangle -A POSTROUTING -j TTL —ttl-set 65

Это тоже будет работать. Как видите, смена TTL Linux выполняется совсем не сложно. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Изменить ttl linux debian

Добрый день уважаемые читатели блога, сегодня я хочу вас спросить, а умеете ли вы по команде пинг определить какое устройство или операционная система вам отвечает, если нет, то вы пришли по адресу и я вам расскажу еще одно назначение утилиты ping. Думаю данный материал, будет полезен как новичкам, так и продвинутым пользователям, особенно когда вы ищите причину неисправности в сети или сервисе, встречал много раз, что вы думаете, что вам отвечает один сервер, а на самом деле это другой, так как кто то, что то поменял и не задокументировал.

Значение ttl

Ранее я вам рассказывал про модель OSI, и там у сетевого пакета, есть такое значение TTL (Time To Life), если перевести, то это время жизни пакета. TTL это некий счетчик, который уменьшается на единицу, при прохождении сетевого пакета или как его еще называют, кадра через маршрутизатор, делается это для того, чтобы он, при невозможности найти пункт назначения, вечно не бегал по роутерам, создавая нагрузку и паразитный трафик.

Именно время жизни пакета (TTL) нам и поможет, определить кто там с другой стороны. У каждой операционной системы этот показатель свой, так например

  • Cisco TTL > равен 255
  • ttl windows > равен 128
  • Unix ttl > равен 64
  • Android и IOS Apple> 65
  • Lumia > 130

Как видите у всех он разный, и давайте разбираться, для примера я пропингую коммутатор Cisco, для этого открываем командную строку Windows, у вас может и linux быть.

Как видите значение ttl тут 255, что и показывает, что отвечает вам IOS у устройства Cisco, как видите команда ping отлично узнала операционную систему хоста с другой стороны.

Попробуем пропинговать unix систему, у меня например в локальной сети шлюзом выступает Kerio Control, на linux версии. Пингуем.

Как видите тут значение ttl равно 64, что означает unix платформу, так могут отвечать различные D-link устройства и другие домашние роутеры.

Давайте еще проверим Windows платформы, например у меня есть Windows 8.1 в локальной сети, сделаем пинг. И видите, что оно равно 128, как я и говорил.

Вот вам. тогда загадка, пингуем Windows Server 2012 R2, на нем есть веб сайт relay.aetp.ru. Что вы видите, а то что значение ttl равно 120, но в Windows же 128 по умолчанию идет, не стыковка 🙂

Все дело в хопах, помните в определении я вам говорил, что значение ttl уменьшается на единицу при следующем шаге и проходе через маршрутизаторы, давайте произведем трассировку до данного адреса.

Как видите сетевой пакет проходит не один хо до нужного адреса, и на определенных этапах он теряет от ttl по единичке. Все теперь вы знаете как узнать ttl windows.

Как изменить ttl windows

Давайте рассмотрим ситуацию, что вам нужно изменить ttl windows, поверьте бывают такие ситуации в жизни, примером может быть компания Yota, с ее дурацкой политикой ограничений Yota на раздачу Wi-Fi. Представим ситуацию, что взяли себе оператора Yota на телефон и решили раздать Wifi на ноутбук, но вы даже не знали подводных камней. в плане фильтрации пакетов со стороны Yota. Она жестко режет скорость, и режет она посредством значения ttl, оно должно быть 64, а если у вас дополнительное устройство, то это лишний хоп и значит ttl меньше, вот для обхода этой подставы с раздачей Wifi на ноутбук от Yota, мы и изменим ttl. Менять ttl мы будем в Windows 10, но данные действия подойдут и для Windows 7 и 8.1.

В итоге у вас откроется редактор реестра Windows. Вам нужно перейти в ветку реестра

В разделе вам нужно создать значение, все зависит от разрядности Windows, если 32 битная, то создаем параметр DWORD (32 бита), если 64 битная, то QWORD (64 бита). Я создаю QWORD.

эта лишняя единица, как раз и пойдет на лишний скачок через ваш телефон с ноутбука и Yota ничего не увидит, как видите изменить ttl windows 10, очень просто.

Как изменить ttl Ubuntu, Debian

И так с Windows мы уже научились, менять ttl, но не у всех стоит именно он, есть люди с Ubuntu например, давайте учиться как обойти ограничение на раздачу интернета через телефон на компьютер с Ubuntu на борту, в случае, если ваш оператор Йота, вы должны сделать несколько простых вещей.

1) Нажать одновременно Ctrl+Alt+T. Так вы вызовете терминал.

2) Ввести первую команду:

3) Попросит ваш пароль, вводим, жмем Enter, далее жмем i — это введет редактор vi в режим редактирования.

4) Вводим сам скрипт фиксирования TTL Ubuntu на значении 65, если у вас Android или iOS (у них стандартный TTL=64), если вы обладатель Люмии, где стандартный TTL равен 128, вам вместо 65 нужно прописать 129. Все это по простейшей формуле, ttl на компе должен быть на 1 больше, чем ttl на телефоне, с которого вы раздаете. Теорию я вам рассказал, а теперь сам скрипт:

5) Далее, для окончания редактирования жмем Esc. Потом сохраняем файл, зажимая Shift+ZZ.

6) Теперь необходимо проставить скрипту права на запуск:

7) Теперь последнее, добавляем все это дело в автозапуск:

8) Нажимаем Enter. Все будет делаться автоматически и без вашего участия.

Как изменить ttl MacOS

Ну и конечно, нельзя обижать яблочников 🙂 Для изменения ttl на mac делаем следующее

Идем в /Library/StartupItems. Открываем терминал и прописываем:

Создаем там папку (например, это будет yota). В терминале пишем: /Library/StartupItems> sudo mkdir yota

Идем туда. В терминал вставляем: /Library/StartupItems> cd yota/

4) Создаем там скрипт (он должен называться так же как и папка), который хотим выполнять.
Для создания скрипта в терминал вбиваем:
/Library/StartupItems/yota> sudo vim yota
И тут откроется редактор Vim! Сюда копируем сам скрипт:

# Скрипт смены ttl на Mac OS X:

И закрываем Vim с сохранением результата, вводим в виме (редакторе): yota

5) Создаем файл параметров StartupParameters.plist.
/Library/StartupItems/yota> sudo vim StartupParameters.plist

И тут опять откроется редактор Vim! Сюда копируем содержание файла параметров:
Самое главное, чтобы в строчке Provides было прописано то же имя, что и название скрипта и название папки:

И опять закрываем Vim с сохранением результата, для этого вводим: w! StartupParameters.plist

6) Выставляем права на выполнение нашему скрипту.
/Library/StartupItems/fuckingyota> sudo chmod 755 yota

7) в итоге получаем: /Library/StartupItems/yota> ll

9) А сейчас, мы не будем перезагружать комп, а просто стартанем скрипт, чтобы убедиться в его работоспособности:
/Library/StartupItems/yota> sudo SystemStarter start fyota

Резюмируя мы с вами рассмотрели какие значения ttl у каждой операционной системы, рассмотрели для чего они. Мы научились менять ttl на самых распространенных системах, если есть вопросы пишите их в комментариях.

Популярные Похожие записи:

22 Responses to Как по ping узнать операционную систему хоста

Прикольное использование команды пинг

Привет! Я играю в варфейс. TTL на альфа 56. У меня винда 7 (там 128TTL). Какое значение TTL мне выставить в винде. Заранее спс.

Я если честно не игрок и не знаю, что такое варфейс, в Windows уже ttl сделан таким какой он должен быть, а в чем проблема оставаться с параметром 128?

А как изменить TTL Android? И сколько поставить, что бы нормально раздавать wi-fi?

Есть приложение TTL Editor, но там требуются root права.

Это приложение не работает для оператора мтс. Пришло мне уведомление, что с 10.11.2016 за раздачу инета на тарифе «безлимитище» будут снимать 30 зублей. Я установил это приложение. Сегодня пришло уведомление, что я использую передачу инета. И с меня сняли 30 р..

Уроды, что сказать, я поищу еще варианты, если найдете что то рабочее, напишите в комментарии

Здравствуйте! Подскажите, у меня симка вставлена в роутер от МТС 823F, я с ним не чего не делал, я раздаю по WiFi подключаю ноутбук, я на ноутбуки сменил TTL 65, и бывает подключаются смартфон к роутеру, и мне приходят смс Что я раздаю интернет, не подскажите сто сделать? Спасибо!

Возможно у них еще по каким то параметрам идет определение, я поизучаю данный вопрос

Почему для виндовс указываем 130, а для ибунту 129.

Товарищи помогите. Я с макбуками не знаком вообще. задача — TTL поменять на постоянный равный 65. НО что то у меня не работает смена TTL. Делаю все по инструкции, все получается. создаю файл в папке etc, прописываю туда net.inet.ip.ttl=65. перезагружаю проверяю Ping-ом в терминале, пишет ttl=51, причем пингую разные сайты и он каждый раз разный ТТЛ показывает, то 55, то 51, то 53! как так то?! пробую в терминале сменить TTL командой net.inet.ip.ttl=65 (как в инструкции в инете), он пишет что все отлично ttl сменил со стандратного 64 на 65. Не перезагружаясь сразу иду проверять командой ping и он опять пишет каждый раз разный ттл, например пинг до google.com ТТЛ=55, до яндекса ТТЛ=51 и т.д. мак бук эйр — os el capitan 10.11.2 Помогите победить этот дьявольский аппарат. (блин как же на винде все легко, а тут я только полчаса потратил чтоб понять как попасть в папку etc). помогите

Разные ttl До сайтов, разные потому, что до них ваш пакет идет через разное количество узлов, и на каждым ttl уменьшается на 1.

Источник

Как навсегда изменить TTL в Ubuntu?

Пробовал делать вот так, но увы, после перезагрузки ttl=64.

Попробовал вот так:

В нормальных дистрах есть /etc/sysctl.conf, не знаю как там в убунте.

А, да, извини. Это временная установка.

Лучший вариант, наверное, это создать файл, какой-нибудь /etc/sysctl.d/99_default_ttl.conf, в который добавить net.ipv4.ip_default_ttl=65. Затем sudo sysctl —system.

Спасибо, это помогло =)

Это во всех дистрах

Это linux? Ща я с Соляры вывод принесу.

Ого, в Генту файл /etc/sysctl.conf считается legacy. А современным подходом считаются конфиги в /etc/sysctl.d/ ?

Хз почему у тебя так, но вот:

Понятно, причина в этом:

жизнь спас 🙂 Спасибо

нормальные это те, с которыми ты сталкивался?

Всё помогло лучший вариант что можно было придумать

Не во всех, в генту делали так что этот файл не читался. Там патч для какого-то древнего бага в procps был, из генту патч выкинули и всё, файл больше не считывается. Обнаружить это конечно можно только постфактум и опытным путём.

Источник

If the dynamic DNS service you’re using only allows TTL’s of 3600, then your only option is to switch providers. There really isn’t any way to control the TTL unless the DDNS service provider gives you an option to control it.

Checking TTL’s

Incidentally to check what the TTL is for a given entry you can use dig with the following switches.

Example

$ dig +nocmd www.google.com +noall +answer | tail -1
www.google.com.     137 IN  A   74.125.225.82

$ dig +nocmd www.google.com +noall +answer | tail -1
www.google.com.     135 IN  A   74.125.225.115

So the TTL for this response is 137 seconds. Waiting ~2 seconds and running it again shows 135 seconds. The TTL means how much time is left until the DNS entry expires, and we need to go query the authoritative server for the domain.

Checking Max TTL’s

If we were to query the authoritative server.

$ dig @ns1.google.com +nocmd www.google.com +noall +answer | tail -1
www.google.com.     300 IN  A   74.125.225.210

So the actual TTL for this entry is 300 seconds.

NOTE: The authoritative server is also known as the SOA — Start of Authority.

SOA information

You can query the domain further for SOA information.

$ dig +nocmd dyndns.org any +multiline +noall +answer
dyndns.org.     596 IN SOA ns1.dyndns.org. hostmaster.dyndns.org. (
                863998266  ; serial
                600        ; refresh (10 minutes)
                300        ; retry (5 minutes)
                604800     ; expire (1 week)
                600        ; minimum (10 minutes)
                )
dyndns.org.     85904 IN NS ns5.dyndns.org.
dyndns.org.     85904 IN NS ns1.dyndns.org.
dyndns.org.     85904 IN NS ns2.dyndns.org.
dyndns.org.     85904 IN NS ns3.dyndns.org.
dyndns.org.     85904 IN NS ns4.dyndns.org.
dyndns.org.     12268 IN MX 10 mail.dyndns.com.
dyndns.org.     12268 IN MX 20 mx2.mailhop.org.
dyndns.org.     179 IN A 204.13.248.116

Changing TTLs

The only way to change a DNS entry’s TTL (outside of some sort of API that your registrar might provide) is through the server.

Example

Within Bind you could setup your zone file like so:

;Zone file for liquidweb.com
$TTL 14400
@      86400    IN      SOA     ns.liquidweb.com. admin.liquidweb.com. (
2009022402      ; serial, todays date+todays
86400           ; refresh, seconds
7200            ; retry, seconds
3600000         ; expire, seconds
86400 )         ; minimum, seconds
liquidweb.com. 86400 IN NS   ns.liquidweb.com.
liquidweb.com. 86400 IN NS   ns1.liquidweb.com.
liquidweb.com.  IN A   209.59.139.21
localhost  IN A   127.0.0.1
liquidweb.com.  IN MX 0   liquidweb.com.
mail  IN CNAME  liquidweb.com.
www  IN CNAME   liquidweb.com.
ftp  IN A   209.59.139.21
cpanel  IN A   209.59.139.21
webmail  IN A   209.59.139.21

The above macro, $TTL would set the TTL to 14400 seconds for any entries, unless it get’s overridden for particular entries.

References

  • HOWTO: Using dig(1) to Find DNS Time to Live (TTL) Values
  • Dig HOWTO
  • Name Server Operations Guide for BIND Release 4.9.5
  • How To: Lowering Your DNS TTLs

If the dynamic DNS service you’re using only allows TTL’s of 3600, then your only option is to switch providers. There really isn’t any way to control the TTL unless the DDNS service provider gives you an option to control it.

Checking TTL’s

Incidentally to check what the TTL is for a given entry you can use dig with the following switches.

Example

$ dig +nocmd www.google.com +noall +answer | tail -1
www.google.com.     137 IN  A   74.125.225.82

$ dig +nocmd www.google.com +noall +answer | tail -1
www.google.com.     135 IN  A   74.125.225.115

So the TTL for this response is 137 seconds. Waiting ~2 seconds and running it again shows 135 seconds. The TTL means how much time is left until the DNS entry expires, and we need to go query the authoritative server for the domain.

Checking Max TTL’s

If we were to query the authoritative server.

$ dig @ns1.google.com +nocmd www.google.com +noall +answer | tail -1
www.google.com.     300 IN  A   74.125.225.210

So the actual TTL for this entry is 300 seconds.

NOTE: The authoritative server is also known as the SOA — Start of Authority.

SOA information

You can query the domain further for SOA information.

$ dig +nocmd dyndns.org any +multiline +noall +answer
dyndns.org.     596 IN SOA ns1.dyndns.org. hostmaster.dyndns.org. (
                863998266  ; serial
                600        ; refresh (10 minutes)
                300        ; retry (5 minutes)
                604800     ; expire (1 week)
                600        ; minimum (10 minutes)
                )
dyndns.org.     85904 IN NS ns5.dyndns.org.
dyndns.org.     85904 IN NS ns1.dyndns.org.
dyndns.org.     85904 IN NS ns2.dyndns.org.
dyndns.org.     85904 IN NS ns3.dyndns.org.
dyndns.org.     85904 IN NS ns4.dyndns.org.
dyndns.org.     12268 IN MX 10 mail.dyndns.com.
dyndns.org.     12268 IN MX 20 mx2.mailhop.org.
dyndns.org.     179 IN A 204.13.248.116

Changing TTLs

The only way to change a DNS entry’s TTL (outside of some sort of API that your registrar might provide) is through the server.

Example

Within Bind you could setup your zone file like so:

;Zone file for liquidweb.com
$TTL 14400
@      86400    IN      SOA     ns.liquidweb.com. admin.liquidweb.com. (
2009022402      ; serial, todays date+todays
86400           ; refresh, seconds
7200            ; retry, seconds
3600000         ; expire, seconds
86400 )         ; minimum, seconds
liquidweb.com. 86400 IN NS   ns.liquidweb.com.
liquidweb.com. 86400 IN NS   ns1.liquidweb.com.
liquidweb.com.  IN A   209.59.139.21
localhost  IN A   127.0.0.1
liquidweb.com.  IN MX 0   liquidweb.com.
mail  IN CNAME  liquidweb.com.
www  IN CNAME   liquidweb.com.
ftp  IN A   209.59.139.21
cpanel  IN A   209.59.139.21
webmail  IN A   209.59.139.21

The above macro, $TTL would set the TTL to 14400 seconds for any entries, unless it get’s overridden for particular entries.

References

  • HOWTO: Using dig(1) to Find DNS Time to Live (TTL) Values
  • Dig HOWTO
  • Name Server Operations Guide for BIND Release 4.9.5
  • How To: Lowering Your DNS TTLs

Понравилась статья? Поделить с друзьями:
  • Как изменить true на false питон
  • Как изменить ttl через реестр
  • Как изменить transform position unity
  • Как изменить ttl телевизора
  • Как изменить tpl