🙆
【FreeBSD + NAT】jail からの外部通信を可能にする
やりたいこと
ipfw
の NAT 機能を使用して、jail
から外部への通信を可能にしたい。
/etc/rc.conf
に以下を追記
gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
firewall_nat_enable="YES"
firewall_nat_interface="em0"
firewall_nat_flags="unreg_only"
/etc/natd.conf
は以下の通り
deny_incoming no
use_sockets yes
same_ports yes
unregistered_only yes
dynamic yes
マシンを再起動(/etc/netstart
でもいいと思うけど、私の場合はうまくいかなかったので再起動しました)
shutdown -r now
再起動後に ipfw
は自動で起動するはずです。
[root@vitothon /jails/bin/test]# service ipfw status
ipfw is enabled
[root@vitothon /jails/bin/test]# ipfw -a list
00050 6 504 nat 123 ip4 from any to any via em0
00100 0 0 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
00400 0 0 deny ip from any to ::1
00500 0 0 deny ip from ::1 to any
00600 0 0 allow ipv6-icmp from :: to ff02::/16
00700 0 0 allow ipv6-icmp from fe80::/10 to fe80::/10
00800 0 0 allow ipv6-icmp from fe80::/10 to ff02::/16
00900 0 0 allow ipv6-icmp from any to any icmp6types 1
01000 0 0 allow ipv6-icmp from any to any icmp6types 2,135,136
65000 258 21580 allow ip from any to any
65535 0 0 deny ip from any to any
あとは、jail
のデフォルトルートとしてホストマシンを指定してあげれば OK です。
[root@vitothon /jails/bin/test]# jexec rip01 /bin/sh
# route add default 192.168.100.254
# netstat -nr
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.100.254 UG1 epair1a
...
# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=61 time=39.932 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=61 time=65.492 ms
^C
Discussion