ПРИМЕЧАНИЕ. Если клиентские устройства (
computer B
в этом примере) хотят подключиться к Интернету через компьютер шлюза, возможно, им все равно необходимо настроить разрешение сервера имен. Это не объясняется здесь (шлюз не обязательно обслуживает Интернет).
Я пытаюсь понять основы маршрутизации сетей.
Поэтому я экспериментирую с локальной сетью (сейчас мне не нужен интернет, только связь по локальной сети).
Я знаю, что конфигурация сети довольно сложная вещь, но я просто пытаюсь заставить компьютер (скажем, A) выступать в качестве шлюза для другого (скажем, B) (оба работают под управлением Ubuntu Linux).
Мне нужно только B, чтобы быть в состоянии достичь маршрутизатора, который доступен только для A.
В этом случае:
Router for computer A --> 192.168.0.1
Computer A - eth0 --> 192.168.0.2
Computer A - eth1 --> 192.168.1.1
Computer B - eth0 --> 192.168.1.2
Компьютер А нормально подключается к роутеру .
Компьютеры A и B нормально соединяются (ping, SSH ... и т. Д.) Между ними .
Компьютер B не может связаться с маршрутизатором для компьютера A.
Я думал, что простое добавление на B компьютера A в качестве шлюза по умолчанию и активация IP-пересылки на A сделает B доступным к маршрутизатору для A:
luis@ComputerB:~$ sudo route add default gw 192.168.1.1
luis@ComputerB:~$ sudo routel
target gateway source proto scope dev tbl
127.0.0.0 broadcast 127.0.0.1 kernel link lo local
127.0.0.0 8 local 127.0.0.1 kernel host lo local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
192.168.1.0 broadcast 192.168.1.2 kernel link eth0 local
192.168.1.2 local 192.168.1.2 kernel host eth0 local
192.168.1.255 broadcast 192.168.1.2 kernel link eth0 local
default 192.168.1.1 eth0
169.254.0.0 16 link eth0
192.168.1.0 24 192.168.1.2 kernel link eth0
А на компьютере А (промежуточный шлюз):
root@ComputerA:~$ echo 1 > /proc/sys/net/ipv4/ip_forward
Компьютер B все еще может пропинговать компьютер A, но маршрутизатор для A не отвечает:
luis@ComputerB:~$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
^C
(Нет ответа на пинг)
Является ли это правильной процедурой, чтобы заставить компьютер под управлением Linux действовать в качестве шлюза для другого компьютера простым способом?