Linux как шлюз (никакой NAT)

Укажите на DNS для тех сервисов к другому серверу на время обновления. До обновления уменьшите TTLs на записях DNS на что-то короткое.

1
задан 20 June 2012 в 11:13
2 ответа

Я предполагаю, что у вас есть один публичный IP-адрес для вашей стороны WAN и блок для стороны LAN, что-то вроде это:

ISP-----ROUTER ETH0/ROUTER ETH1------SWITCH------PCs

Вам НЕОБХОДИМО иметь общедоступный IP-адрес для интерфейса WAN, провайдер будет маршрутизировать подсеть, которую они вам предоставили, через этот IP-адрес

Просто вам нужно установить бит пересылки на 1

echo 1 > /proc/sys/net/ipv4/ip_forward

Чтобы сделать это постоянный, вам необходимо отредактировать /etc/sysctl.conf, найти эту строку:

net.ipv4.ip_forward=0

и изменить ее на

net.ipv4.ip_forward=1

. Не забудьте раскомментировать ее, если она прокомментирована.

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

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


Изменить:

Вы говорите, что ваши интерфейсы настроены следующим образом:

wan: 2800:40:403::1/48
lan: 2800:40:403::3/48

Какой у вас шлюз по умолчанию? Думаю, 2800: 40: 403 :: 2/48

На самом деле это не должно так работать. Я еще не работал с IPv6, но у вас есть два интерфейса в одной подсети, я предполагаю, что позволю вам настроить это, но скажу, что маршрутизатор Cisco по крайней мере предупредит вас о перекрытии

Самое простое решение - все ПК идут к коммутатору, подключенному к Интернет-провайдеру.

Реальное решение состоит в том, чтобы указать провайдеру предоставить вам 1 публичный адрес в своем адресном пространстве для WAN и направить блок через этот адрес. Затем все, что вам нужно сделать, это настроить:

wan: ip-from-their-space
lan: 2800:40:403::1/48

И все локальные ПК должны указывать на него по умолчанию.

У вас очень большое адресное пространство, что вы можете сделать, это добавить его в подсети.


Изменить:

Если вы действительно хотите соединить интерфейсы, вы можете сделать это без каких-либо привязок к IP. Таким образом, у вас будет только один интерфейс с IP-адресом.

Все, что вам нужно сделать, это установить bridge-utils, затем настроить его следующим образом:

ip add flush dev eth0
ip add flush dev eth1
brctl addbr br0
brctl addif br0 eth0 eth1
ip link set dev br0 up

Затем вместо этого настройте свой IPv6-адрес на br0, и теперь у вас есть прозрачный мост. Это по-прежнему не решает вашу проблему с IPv4, но вы можете решить ее следующим образом:

Настройте публичный и частный адрес IPv4 на br0 и NAT следующим образом:

iptables -t nat -A POSTROUTING -j SNAT -s / --to-source

2
ответ дан 3 December 2019 в 16:36

Включена ли пересылка?

echo 1 >  /proc/sys/net/ipv4/ip_forward
5
ответ дан 3 December 2019 в 16:36

Теги

Похожие вопросы