В чем разница между шлюзом и маршрутизатором?

13

Здесь мы можем видеть, что маршрутизатор 67.23.27.187(первый переход), но шлюз 67.23.27.1. В чем разница между шлюзом и маршрутизатором? Как мой компьютер узнает IP-адрес маршрутизатора, если настроен только адрес шлюза?

[root@jiaoyou ~]# tracepath google.com
 1:  67-23-27-187.static.slicehost.net (67.23.27.187)       0.000ms pmtu 1500
 1:  67-23-24-2.static.slicehost.net (67.23.24.2)           0.000ms 
 1:  67-23-24-2.static.slicehost.net (67.23.24.2)           4.000ms 
 2:  core7-aggr511a-1.dfw1.rackspace.net (98.129.84.148)  128.008ms 
 3:  bbr1-core7-vlan2007.dfw1.rackspace.net (174.143.123.117)   4.000ms 
 4:  no reply
 5:  no reply

[root@jiaoyou ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=jiaoyou
GATEWAY=67.23.27.1
masegaloeh
источник
1
вы можете показать вывод netstat -rn?
gelraen

Ответы:

19

Шлюз и маршрутизатор по сути одинаковы. Термин « шлюз по умолчанию » используется для обозначения маршрутизатора в вашей локальной сети, который отвечает за то, чтобы быть первой точкой контакта для трафика на компьютеры за пределами локальной сети.

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

Например

                   (Интернет) --- [Google]
                       | 64.20.60.99
                      [R2]
67.23.27 / 255 | 187
| ------ + -------- + ------ + ----- |
       | 9 | 1
     [ПК] [R1]
                | 67.23.28 / 255
           | ---- + ------ + ---------- |
                       | 9
                    [Сервер]

Если маршрутизатор R1 является шлюзом по умолчанию для ПК, когда ПК впервые пытается связаться с Google, ПК отправит данные на R1 (поскольку ПК знает, что IP-адрес Google отсутствует в подсети ПК), однако R1 сообщит ПК, что более подходящий маршрут к 64.20 .60.99 через роутер R2. ПК добавит это в свою таблицу маршрутизации, поэтому R1 не будет отображаться в последующей трассировке.

Команда netstat -nrна вашем ПК покажет как статические маршруты, которые она изучила из своих файлов конфигурации, так и динамические маршруты, которые она изучила при перенаправлениях ICMP или при прослушивании широковещательных / многоадресных передач протокола маршрутизации .

Термин «шлюз» имеет другие значения, которые не имеют отношения к файлу и команде в вашем вопросе.

RedGrittyBrick
источник
@Eugene: стиль построения диаграмм основан на классическом стиле построения диаграмм Ethernet 10-Base-2. Считайте это символическим. Все устройства, подключенные к горизонтальной линии, связаны с помощью коммутатора Ethernet (или концентратора, это не влияет на ответ). Сервер знает, что 60.20.60.99 находится в другой подсети (путем сравнения адресов после применения маски сети), поэтому он ищет в своей таблице маршрутизации маршрут. Вероятно, он имеет маршрут по умолчанию только для R1, поэтому он собирает пакет с данными для 60.20.60.99 с MAC-адресом R1. R1 получает пакет и обращается к его собственным таблицам маршрутизации и пересылает пакет в R2, Repeat.
RedGrittyBrick
Существует также объяснение, которое не включает никаких перенаправлений. Может быть просто, что шлюз имеет несколько адресов и использует другой адрес в качестве источника для сообщений об ошибках ICMP, чем тот, который используется клиентом в запросах ARP.
Касперд
6

@RedGrittyBrick абсолютно прав в своем ответе («маршрутизатор и шлюз по сути одинаковы»), некоторые другие респонденты путают термины или, мягко говоря, неправильно поняли вопрос (или википедию).

Что касается маршрутизации, то термин «шлюз» почти всегда используется вместе с «по умолчанию», и этот «шлюз» обеспечивает маршрут к каждой сети, для которой нет более конкретного доступного маршрута.

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

В TTL нет никакой разницы между «шлюзом по умолчанию» и маршрутизатором, когда устройство, выполняющее маршрутизацию, передает IP-пакет из одной сети / подсети в другую, оно должно уменьшить TTL, что довольно четко указано в соответствующем RFC.

Шлюз не должен выполнять NAT, обычно домашняя сеть будет иметь шлюз по умолчанию, являющийся маршрутизатором, подключенным к ADSL, устройство такого типа будет выполнять NAT, тогда как шлюз по умолчанию в вашей подсети на работе просто приведет к расширению локальной сети офиса. и не будет делать NAT.

В ответ на ваш вопрос о том, чтобы выйти куда-то, что не находится в локальной подсети, @RedGrittyBrick снова правильно говорит о перенаправлениях ICMP, кроме того, процесс, который проходит хост при отправке пакета, таков:

1 - Используйте собственный IP-адрес и маску, чтобы проверить, находится ли IP-адрес целевого пакета в локальной подсети.

2 - Если пункт назначения находится в локальной подсети, отправьте запрос ARP для MAC-адреса этого локального устройства, а затем отправьте кадр на хост.

3 - Если пункт назначения не находится в локальной подсети, отправьте ARP-запрос на MAC-адрес шлюза в эту сеть, затем отправьте кадр на шлюз для дальнейшей пересылки (в этот момент может возникнуть точка перенаправления ICMP).

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

blankabout
источник
3

Маршрутизатор служит шлюзом, но с дополнительными функциями. Согласно википедии: «Шлюз является важной функцией большинства маршрутизаторов, хотя другие устройства (например, любой ПК или сервер) могут функционировать в качестве шлюза».

Дэвидо
источник
1

Какой у тебя IP?

Пакеты, исходящие от самого маршрутизатора, не будут сокращать время жизни (TTL) при выходе из маршрутизатора.

Для пакетов из другого источника, проходящих через маршрутизатор, его TTL будет уменьшаться на 1 при каждом переходе. Если пакеты поступают в маршрутизатор с TTL, равным 1, и маршрутизатор является пунктом назначения, то трафик будет приниматься маршрутизатором. Если маршрутизатор не является пунктом назначения, для пакетов будет уменьшено значение TTL до 0 перед выходом из маршрутизатора, и они будут отброшены.

MealstroM
источник
0

Шлюз управляет доступом компьютеров в сети к другим компьютерам.

Маршрутизатор - это особая форма шлюза: он может пересылать IP-пакеты между различными сетями.

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

Аарон Дигулла
источник
0

Обычно «шлюз» - это машина, которая делает NAT «маскирующимся», и это означает, что шлюз отправляет запрос данных в виде частных IP-адресов, для которых соответствующая машина является шлюзом, и когда данные возвращаются, передают данные на эти частные IP-адреса. Если хотите, можно сказать, что шлюз «олицетворяет» частные IP-машины в отношении Интернета.

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

http://en.wikipedia.org/wiki/IP_masquerading
http://en.wikipedia.org/wiki/Routing

и конкретно ответить на ваш вопрос: «как мой компьютер узнает IP-адрес маршрутизатора, если настроен только адрес шлюза»: каждый подключенный компьютер будет знать адрес своего ip «следующего перехода» (шлюза). следующий переход шлюза - это IP-адрес подключенного интерфейса маршрутизатора, который знает, как направлять ваши пакеты на надлежащие пути для достижения сети назначения.

также: ВАШ следующий переход - 67.23.27.1.
67.23.27.187 - это либо следующий переход для 67.23.27.1, либо следующий ip для пути к google.com.

adrian_sev
источник
вы путаете более общий термин gateway с tcp / ip term gateway. Каждый маршрутизатор между подсетями является шлюзом со шлюзом по умолчанию для любого устройства, в которое отправляется любой пункт назначения, не указанный в таблице маршрутизации (обычно за пределами вашей подсети).
JamesRyan
1
ну, я хотел сказать то, что сказал Это правда, что есть «шлюзы последней инстанции» (маршрут по умолчанию) или «следующий переход», но из того, что я понял, я подумал, что вопрос был об общих терминах «шлюз» и «маршрутизатор». В основном посте 2 вопроса, и я в основном отвечал на первый. en.wikipedia.org/wiki/Default_gateway en.wikipedia.org/wiki/Router
adrian_sev
-2

хорошо, когда передача происходит в пределах одной локальной области или локальной сети, маршрутизатор в этом случае называется шлюзом для примеров. Предположим, у вас есть 6 домов в вашей местности (просто пример), теперь все хотят получить доступ к Интернету, у вас будет общий маршрутизатор. во-первых, который будет называться шлюзом. Теперь, если адрес шлюза (ip-адрес, а не mac) является чем-то вроде 192.128.1.1, тогда ваш ip-адрес будет просто расширением этого адреса, как 192.128.1.101,192.128. 1.102,192.128.1.103 ... и т. Д. Теперь шлюз далее подключен к Интернету, который имеет огромную огромную сеть шлюзов, но на этот раз они будут называться маршрутизаторами. Так что в вашем случае первый переход происходит из вашего дома в шлюз от 67.23.27.187 до 67.23.27.1, а затем к другим маршрутизаторам. Надеюсь, вы его получите.

Сахил Шарма
источник