Vir
@Vir
Программист

Linux-машина, как роутер

Добрый день.

Есть linux-компьютер, на котором стоят две сетевые карты:
— eth0: смотрит в локальную сеть
— eth1: сюда приходит интернет

Для ясности пример ifconfig'а:

eth0 Link encap:Ethernet HWaddr 00:17:31:4b:3d:3b
inet addr:213.33.158.46 Bcast:213.33.158.255 Mask:255.255.255.0
inet6 addr: fe80::217:31ff:fe4b:3d3b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3540 errors:0 dropped:0 overruns:0 frame:0
TX packets:1427 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:322615 (322.6 KB) TX bytes:128062 (128.0 KB)
Interrupt:17 Base address:0xd400

eth1 Link encap:Ethernet HWaddr 1c:bd:b9:87:5f:47
inet addr:213.33.159.42 Bcast:213.33.159.47 Mask:255.255.255.248
inet6 addr: fe80::1ebd:b9ff:fe87:5f47/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11030 errors:0 dropped:8929145 overruns:0 frame:7339920
TX packets:13868 errors:6 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8087894 (8.0 MB) TX bytes:2447139 (2.4 MB)
Interrupt:21 Base address:0xcc00


Вот мои роуты:

zavulon vir # ip ro ls
169.254.0.0/16 dev eth1 scope link metric 1000
default via 213.33.159.41 dev eth1 proto static
zavulon vir # route -n
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
0.0.0.0 213.33.159.41 0.0.0.0 UG 0 0 0 eth1

В правилах iptables пусто:

zavulon vir # iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


Проблема в том, что интернет на компьютере есть:

zavulon vir # ping ya.ru
PING ya.ru (87.250.250.203) 56(84) bytes of data.
64 bytes from www.yandex.ru (87.250.250.203): icmp_req=1 ttl=59 time=2.81 ms
64 bytes from www.yandex.ru (87.250.250.203): icmp_req=2 ttl=59 time=2.28 ms
^C
--- ya.ru ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 2.281/2.549/2.818/0.273 ms


А вот на второй сетевой карте нет:

zavulon vir # ping -I eth0 ya.ru
PING ya.ru (77.88.21.3) from 213.33.158.46 eth0: 56(84) bytes of data.
^C
--- ya.ru ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1005ms


И, кстати форвардинг включён:

zavulon vir # cat /proc/sys/net/ipv4/ip_forward
1
zavulon vir # cat /etc/sysctl.conf | grep forward
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1


Подскажите, в чём может быть проблема?
  • Вопрос задан
  • 2884 просмотра
Пригласить эксперта
Ответы на вопрос 3
НАТ вам не пойдет

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Ответ написан
Комментировать
@GiV
В роутах не видно где искать сеть 213.33.158.*/?

Зато есть 169.254.0.0/16 которая почему-то привязана к eth1
Ответ написан
facha
@facha
Зайдите на ping.eu/ping/ или любой другой «пинг онлайн» и попробуйте запустить пинг до 213.33.158.46.

На роутере посмотрите при помощи tcpdump (tcpdump -nn -i eth1 icmp), приходят ли к Вам пинги извне. Если нет — ругайтесь с провайдером: у них нет маршрута к 213.33.158.0/24 (ну, или есть, но это не Вы).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы