метка набора iptables не работает

Моя машина имеет два сетевых интерфейса, каждый соединен (eth0) проводом, и другой является беспроводной связью (wlan0). Проводной не может соединиться ни с каким внешним сервером NTP, потому что существует брандмауэр снаружи. Беспроводная связь у каждого нет такого ограничения.

Поэтому я хочу направить весь трафик NTP к wlan0. Как я знаю, трафик NTP проходят порт UDP 123. То, что я сделал, описано ниже.

$ sudo echo "201 ntp.out" >> /etc/iproute2/rt_tables
$ sudo ip route add default via 100.75.0.1 dev wlan0 table ntp.out

$ sudo sysctl -w net.ipv4.tcp_fwmark_accept=1
$ sudo iptables -t mangle -I PREROUTING -p udp --dport 123 -j MARK --set-mark 0xfefa
$ sudo iptables -t mangle -I OUTPUT -p udp --sport 123 -j MARK --set-mark 0xfefa
$ sudo ip rule add fwmark 0xfefa lookup ntp.out

Однако это не работает. Я использовал Wireshark для отслеживания пакетов UDP:123 и нашел, что нет никакой метки ''fefa'' в пакетах.

BTW, я установил сеть ipv4.tcp_fwmark_accept, а не сеть ipv4.udp_fwmark_accept, потому что нет никакой определенной сети ipv4.udp_fwmark_accept. Я также пытался отметить пакеты TCP, но все еще не мог найти метку в тех пакетах.

Кто-либо мог помочь мне решить проблему? Я использую Ubuntu 14.04 LTS.

0
задан 3 September 2015 в 02:23

1 ответ

Я думаю, что нахожу ошибку. В не исходный порт 123 затем место назначения

Изменение

 sudo iptables -t mangle -I OUTPUT -p udp --sport 123 -j MARK --set-mark 0xfefa

к

 sudo iptables -t mangle -I OUTPUT -p udp --dport 123 -j MARK --set-mark 0xfefa

Также копия все записи кроме записи шлюза по умолчанию от основной таблицы

 sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table ntp.out $ROUTE; done
0
ответ дан 28 July 2019 в 18:00

Другие вопросы по тегам:

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